{"version":3,"sources":["application/applicationConfig.js","themes/default/application/home/pages/HomeTemplate.jsx","themes/default/application/home/pages/HomeStationTemplate.jsx","themes/default/application/home/pages/HomePodcastTemplate.jsx","themes/default/application/home/pages/HomePodcastGroupTemplate.jsx","application/home/pages/Home.jsx","application/home/pages/HomeStation.jsx","application/home/pages/HomePodcast.jsx","application/home/pages/HomePodcastGroup.jsx","themes/default/application/torah-anytime/components/content-loader/TorahAnyTimeLoaderTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeWizardLayoutTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeAvailabilityModalTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeCollectionListItemTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeCreatePlaylistTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeHeaderTemplate.jsx","application/torah-anytime/components/content-loader/TorahAnyTimeLoader.jsx","themes/default/application/torah-anytime/components/TorahAnytimeSelectTopicsTemplate.jsx","themes/default/application/torah-anytime/components/TorahAnytimeSelectSpeakersTemplate.jsx","application/torah-anytime/components/TorahAnytimeWizardLayout.jsx","application/torah-anytime/components/TorahAnytimeAvailabilityModal.jsx","application/torah-anytime/forms/TorahAnytimeCollectionEditForm.js","application/torah-anytime/stores/TorahAnytimeCollectionEditViewStore.js","application/torah-anytime/stores/TorahAnytimeCollectionListItemViewStore.js","application/torah-anytime/stores/TorahAnytimeSelectionViewStore.js","application/torah-anytime/filters/TorahAnytimeSpeakersFilter.js","application/torah-anytime/filters/TorahAnytimeTopicsFilter.js","application/torah-anytime/stores/TorahAnytimeSelectSpeakersViewStore.js","application/torah-anytime/stores/TorahAnytimeSelectTopicsViewStore.js","application/torah-anytime/stores/TorahAnytimeRouteStore.js","application/torah-anytime/models/TorahAnytimeCollectionGridItemDecorator.js","application/torah-anytime/stores/TorahAnytimeViewStore.js","application/torah-anytime/stores/TorahAnytimeWizardViewStore.js","application/torah-anytime/stores/TorahAnytimeWizardRouteStore.js","application/torah-anytime/components/TorahAnytimeCollectionListItem.jsx","application/torah-anytime/components/TorahAnytimeCreatePlaylist.jsx","application/torah-anytime/components/TorahAnytimeHeader.jsx","application/torah-anytime/components/TorahAnytimeSelectSpeakers.jsx","application/torah-anytime/components/TorahAnytimeSelectTopics.jsx","themes/default/application/torah-anytime/pages/TorahAnytimeTemplate.jsx","themes/default/application/torah-anytime/pages/TorahAnytimeWizardTemplate.jsx","application/torah-anytime/pages/TorahAnytime.jsx","application/torah-anytime/pages/TorahAnytimeWizard.jsx","application/home/applicationHomeConfig.js","themes/default/application/producer/components/ProducerRevenueTransferSuccessModalTemplate.jsx","themes/default/application/producer/components/ProducerSummaryPreviewTemplate.jsx","themes/default/application/producer/components/ProducerTopTrendingEmptyStateTemplate.jsx","themes/default/application/producer/components/content-loader/ProducerRevenueLoaderTemplate.jsx","themes/default/application/producer/components/content-loader/ProducerStatsLoaderTemplate.jsx","themes/default/application/producer/components/content-loader/ProducerTotalLoaderTemplate.jsx","application/producer/components/ProducerRevenueTransferSuccessModal.jsx","application/producer/components/ProducerSummaryPreview.jsx","application/producer/components/content-loader/ProducerRevenueLoader.jsx","application/producer/components/content-loader/ProducerStatsLoader.jsx","application/producer/components/content-loader/ProducerTotalLoader.jsx","common/hooks/useElementScrollPosition.js","common/hooks/useWindowSize.js","common/hooks/useSideScroll.js","common/components/tabs/Tabs.jsx","themes/default/application/producer/pages/ProducerRevenueTemplate.jsx","themes/default/application/producer/pages/ProducerRevenueReportTemplate.jsx","themes/default/application/producer/pages/ProducerRevenueTransferTemplate.jsx","themes/default/application/producer/pages/ProducerPreviewTemplate.jsx","themes/default/application/producer/pages/ProducerDashboardTemplate.jsx","application/producer/stores/revenue/ProducerRevenueRouteStore.js","application/producer/stores/revenue/ProducerRevenueViewStore.js","application/producer/stores/revenue-report/ProducerRevenueReportRouteStore.js","application/producer/stores/revenue-report/ProducerRevenueReportViewStore.js","application/producer/stores/revenue-transfer/ProducerRevenueTransferRouteStore.js","application/producer/forms/ProducerRevenueTransferForm.js","application/producer/stores/revenue-transfer/ProducerRevenueTransferViewStore.js","application/producer/stores/dashboard/ProducerDashboardRouteStore.js","application/producer/stores/dashboard/ProducerDashboardTimeRangeViewStore.js","application/producer/stores/dashboard/ProducerDashboardInfiniteScrollStore.js","application/producer/stores/dashboard/ProducerDashboardViewStore.js","application/producer/stores/preview/ProducerPreviewViewStore.js","application/producer/stores/preview/ProducerPreviewRouteStore.js","application/producer/pages/ProducerRevenue.jsx","application/producer/pages/ProducerRevenueReport.jsx","application/producer/pages/ProducerRevenueTransfer.jsx","application/producer/pages/ProducerPreview.jsx","application/producer/pages/ProducerDashboard.jsx","application/producer/applicationProducerConfig.js","themes/default/application/naki-nigun/components/NakiNigunArtistAlbumTemplate.jsx","application/naki-nigun/models/NakiNigunAlbum.js","application/naki-nigun/models/NakiNigunArtist.js","application/naki-nigun/models/nakiNigunContentType.js","application/naki-nigun/models/NakiNigunBulkSelect.js","application/naki-nigun/utils/getContentActivityStatusIcon.js","themes/default/application/naki-nigun/components/NakiNigunHomeGridCellTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunSearchResultGridCellTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunHomePageHeaderTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunHomeFeaturedTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunHomeMainViewTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunHomeSearchResultsTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunManageSelectedItemsTemplate.jsx","themes/default/application/naki-nigun/components/NakiNigunHomeCategoryTemplate.jsx","application/naki-nigun/stores/NakiNigunArtistAlbumViewStore.js","application/naki-nigun/stores/NakiNigunArtistRouteStore.js","application/naki-nigun/stores/NakiNigunArtistViewStore.js","application/naki-nigun/stores/NakiNigunHomeFeaturedContentViewStore.js","application/naki-nigun/stores/NakiNigunHomeRouteStore.js","application/naki-nigun/filters/NakiNigunHomeContentFilter.js","application/naki-nigun/stores/NakiNigunHomeViewStore.js","application/naki-nigun/stores/NakiNigunGenericSearchViewStore.js","application/naki-nigun/stores/NakiNigunAlbumBulkEditViewStore.js","application/naki-nigun/stores/NakiNigunArtistBulkEditViewStore.js","application/naki-nigun/stores/NakiNigunManageSelectedItemsViewStore.js","application/naki-nigun/components/NakiNigunArtistAlbum.jsx","application/naki-nigun/components/NakiNigunHomeGridCell.jsx","application/naki-nigun/components/NakiNigunSearchResultGridCell.jsx","application/naki-nigun/components/NakiNigunHomeFeatured.jsx","application/naki-nigun/components/NakiNigunHomeMainView.jsx","application/naki-nigun/components/NakiNigunHomePageHeader.jsx","application/naki-nigun/components/NakiNigunHomeSearchResults.jsx","application/naki-nigun/components/NakiNigunManageSelectedItems.jsx","application/naki-nigun/components/NakiNigunHomeCategory.jsx","themes/default/application/naki-nigun/pages/NakiNigunArtistTemplate.jsx","themes/default/application/naki-nigun/pages/NakiNigunHomeTemplate.jsx","application/naki-nigun/pages/NakiNigunArtist.jsx","application/naki-nigun/pages/NakiNigunHome.jsx","application/naki-nigun/applicationNakiNigunConfig.js","themes/default/assets/images/device-info.png","themes/default/application/device-settings/pages/DeviceCreateTemplate.jsx","themes/default/application/device-settings/pages/DeviceEditTemplate.jsx","themes/default/application/device-settings/pages/DeviceListTemplate.jsx","application/device-settings/stores/device-create/DeviceCreateRouteStore.js","application/device-settings/forms/DeviceCreateForm.js","application/device-settings/forms/DeviceEditForm.js","application/device-settings/stores/device-create/DeviceCreateViewStore.js","application/device-settings/stores/device-edit/DeviceDowntimeEditViewStore.js","application/device-settings/stores/device-edit/DeviceEditRouteStore.js","application/device-settings/stores/device-edit/DeviceEditViewStore.js","application/device-settings/stores/device-list/DeviceListRouteStore.js","application/device-settings/stores/device-list/DeviceListViewStore.js","application/device-settings/pages/DeviceCreate.jsx","application/device-settings/pages/DeviceEdit.jsx","application/device-settings/pages/DeviceList.jsx","application/device-settings/applicationDeviceSettingsConfig.js","application/user-settings/forms/UserProfileEditForm.js","application/user-settings/forms/UserProfileChangePasswordForm.js","application/user-settings/stores/edit/UserProfileEditViewStore.js","application/user-settings/stores/edit/UserProfileEditRouteStore.js","application/user-settings/stores/user-password-change/UserProfilePasswordChangeViewStore.js","themes/default/application/user-settings/components/UserProfilePasswordChangeTemplate.jsx","themes/default/application/user-settings/components/UserProfileGeneralInfoTemplate.jsx","application/user-settings/components/UserProfilePasswordChange.jsx","application/user-settings/components/UserProfileGeneralInfo.jsx","themes/default/application/user-settings/pages/UserProfileEditTemplate.jsx","application/user-settings/pages/UserProfileEdit.jsx","application/user-settings/applicationUserSettingsConfig.js","themes/default/application/payment/pages/ActivateTrialTemplate.jsx","themes/default/application/payment/pages/ChangeSubscriptionPlanPreviewTemplate.jsx","themes/default/application/payment/pages/ChangeSubscriptionPlanTemplate.jsx","themes/default/application/payment/pages/TakePaymentTemplate.jsx","themes/default/application/payment/pages/UpgradeTrialTemplate.jsx","themes/default/application/payment/pages/PremiumSubscriptionsTemplate.jsx","themes/default/application/payment/pages/UserSubscriptionsPreviewTemplate.jsx","application/payment/pages/ActivateTrial.jsx","application/payment/pages/ChangeSubscriptionPlan.jsx","application/payment/pages/ChangeSubscriptionPlanPreview.jsx","application/payment/pages/TakePayment.jsx","application/payment/pages/UpgradeTrial.jsx","application/payment/pages/PremiumSubscriptions.jsx","application/payment/pages/UserSubscriptionsPreview.jsx","application/payment/applicationPaymentConfig.js"],"names":["moduleProviderFactory","module","register","name","routes","pattern","component","MainLayout","store","MainRouteStore","beforeEnter","fromState","toState","routerStore","userStore","rootStore","isAdministrator","Promise","reject","notFoundState","ResultsContainer","observer","_ref2","homeViewStore","t","inSearchMode","homeGenericSearchViewStore","_jsx","React","Fragment","children","HomeSearchResults","HomeMainView","defaultTemplate","_ref","connectDeviceModal","_jsxs","HomePageLayout","MrbPageHeader","classNameExtend","HomePageHeader","ConnectDeviceModal","modalParams","StationInfo","item","loaderStore","className","MrbContentLoader","loaderRender","DescriptionLoader","HTMLRender","alternativeDescription","HomePreviewStationsLoader","location","language","genres","homeStationViewStore","coverImageUrl","premiumSubscriptionStore","contentAccessResult","MrbPreviewPage","contentClassNameExtend","HomePreviewHeader","MrbPageContentHeader","classNameOverride","MrbHeaderLoader","mergeCss","canAccessOnSelectedDevice","Image","src","PremiumBadge","isPremium","isPremiumSubscriptionValid","canAccessPremium","title","StationUnavailableInApp","isLegacySubscriptionActive","legacySubscriptionExpirationDate","dateFormatter","format","applicationDefaults","formats","date","descriptionLink","href","target","rel","PodcastInfo","homePodcastViewStore","PodcastUnavailableInApp","SubPodcasts","HomePreviewSubPodcastListLoader","subPodcasts","length","map","subPodcast","HomeSubPodcast","subPodcastId","id","_ref3","canAccessPremiumContent","hideStatusButton","Home","setCurrentView","componentProps","HomeViewStore","_dec","_class","Component","render","HomeTemplate","this","props","HomeStation","HomeStationViewStore","HomeStationTemplate","HomePodcast","HomePodcastViewStore","HomePodcastTemplate","HomePodcastGroup","HomePodcastGroupViewStore","HomePodcastGroupTemplate","TorahAnyTimeLoaderTemplate","row","backgroundColor","foregroundColor","ref","useRef","loaderWidth","setLoaderWidth","useState","useEffect","current","offsetWidth","screenwidth","window","innerWidth","list","cardSpace","cardSize","col","setX","x","y1","Math","floor","i","j","push","y","rx","ry","width","height","concat","ContentLoader","speed","viewBox","WizardHeader","steps","currentStep","stepIndex","step","WizardStep","index","lastStep","isActive","WizardControls","_ref4","nextStep","previousStep","hasPreviousStep","MrbButton","label","backButtonLabel","onClick","nextButtonLabel","TorahAnytimeWizardLayoutTemplate","controlsRenderer","TorahAnytimeAvailabilityModalTemplate","MrbModal","shouldCloseOnOverlayClick","params","disableTorahAnytimeAvailabilityModal","close","PanelHeader","isCollapsed","actions","isTurnedOn","isDisabled","toggleCollectionStatus","hasTopics","hasSpeakers","torahAnytimeViewStore","torahAnytimePodcast","userDeviceStore","deviceCount","TogglePremium","value","disabled","onAction","event","preventDefault","stopPropagation","icon","delete","edit","SpeakersList","speakers","speakersLength","orderBy","speaker","_speaker$speaker","_speaker$speaker2","_speaker$speaker3","firstName","lastName","join","TopicsList","topics","topicsLength","topic","_topic$topic","torahAnytimeCollectionListItemViewStore","collection","toggleCollapse","MrbCollapsiblePanel","onChangeCollapse","headerClassNameExtend","headerRender","CreatePlaylistWizardControls","isEdit","onSubmit","type","torahAnytimeCollectionEditViewStore","torahAnytimeWizardViewStore","form","MrbRouterLink","routeName","podcastId","MrbEditFormLayout","layoutFooterVisible","TorahAnytimeWizardLayout","MrbFieldInput","field","$","deviceSelectStore","HomeDeviceSelect","TorahAnyTimeLoader","TopicCell","torahAnytimeSelectionViewStore","selectedTopics","selectTopic","deselectTopic","isSelected","findIndex","selectedTopic","topicId","EnabledIndicator","DisabledIndicator","imageUrl","NoDataEmptyState","queryUtility","filter","isEmpty","search","SelectTopicsWizardControls","torahAnytimeSelectTopicsViewStore","isTopicSelectionEmpty","gridStore","MrbQuerySearchInput","placeholder","showSearchButton","maxLength","maxCharactersLength","MrbGrid","cellRender","emptyStateRender","pagerRender","MrbPager","hideItemsPerPage","hidePagerIfUnderLimit","pageSize","SpeakerCell","torahAnytimeSelectSpeakersViewStore","selectedSpeakers","selectSpeaker","deselectSpeaker","defaultSpeakerImageUrl","selectedSpeaker","speakerId","SelectSpeakersWizardControls","isSpeakerSelectionEmpty","selectSpeakersByGender","clearSelection","TorahAnytimeAvailabilityModal","TorahAnytimeCollectionEditForm","LocalizedForm","constructor","hooks","super","setup","fields","rules","TorahAnytimeCollectionEditViewStore","MrbBaseEditViewStore","routeStore","collectionId","FormClass","autoFocusField","successCreateNotification","successUpdateNotification","redirectOnCreateSuccess","goTo","redirectOnUpdateSuccess","runInAction","setItem","updateForm","resetForm","create","data","createCollection","updateCollection","onCreateError","err","notificationStore","error","onUpdateError","TorahAnytimeCollectionListItemViewStore","action","bound","_dec2","_dec3","_dec4","MrbBaseViewStore","some","isNil","find","evaluateContentAccess","isUpdating","userDeviceCollection","collectionStatusItem","selectedDevice","device","systemType","abrv","nakiRadioSystemTypes","venice","isTurnedOnByDefault","mobile","isTurnedOnByDefaultInApp","_defineProperty","_initializerDefineProperty","_descriptor","_descriptor2","makeObservable","setIsUpdating","updateCollectionTurnedOnStatus","options","UpdateTorahAnytimeCollectionStatusOptions","isVisibleInApp","userContentManagerStore","updateTorahAnytimeCollectionsStatus","console","log","contentAccessValidator","canAccessPodcast","unavailableInMobileApp","_applyDecoratedDescriptor","prototype","observable","configurable","enumerable","writable","initializer","computed","Object","getOwnPropertyDescriptor","TorahAnytimeSelectionViewStore","_dec5","_dec6","_dec7","initializeSelection","arguments","undefined","selectSpeakers","forEach","clearSelectedSpeakers","existingItemIndex","pullAt","TorahAnytimeSpeakersFilter","MrbFilterParameters","reset","calculateNumberOfColumns","calculateNumberOfTorahAnytimeWizardRows","TorahAnytimeTopicsFilter","TorahAnytimeSelectSpeakersViewStore","MrbBaseListViewStore","podcast","coverImageId","coverImageFactory","createPodcastCoverImageUrl","queryConfig","setGridStore","MrbGridViewStore","onCellClick","onClickCellItem","reaction","trim","fetch","delay","bind","onInit","initialize","isFemale","topicIds","suspend","speakerIds","findSpeakersByGender","resume","abortExistingRequest","_abortController","AbortController","validateSpeakers","findSpeakers","allSpeakerIdsByTopics","selectedTopicsSpeakerIds","speakersForDeselect","includes","abort","onFetchError","statusCode","httpStatusCodes","CanceledRequest","onDestroy","TorahAnytimeSelectTopicsViewStore","findTopics","TorahAnytimeRouteStore","MrbBaseRouteStore","service","createApplicationService","UserTorahAnytimeCollectionService","userContentService","UserContentService","deviceId","findWthDeviceSettings","getPodcast","TorahAnytimeCollectionGridItemDecorator","obj","key","setIsTurnedOn","_userDeviceCollection","setUserDeviceCollection","TorahAnytimeViewStore","routerState","embed","orderDirection","confirmDialogStore","showConfirm","message","onConfirm","async","deleteUserTorahAnytimeCollection","yesLabel","noLabel","description","goToWizardPage","mapper","MrbSimpleSelectStore","textKey","valueKey","onChange","option","setSelectedDevice","devices","setSelectedItem","goToCreateNewCollectionPage","displayTorahAnytimeAvailabilityModal","disableTorahAnytimeAvailability","torahAnytimeAvailabilityModal","MrbModalParams","onClose","all","fetchTorahAnytimePodcast","findUserTorahAnytimeCollections","setTorahAnytimePodcast","isTorahAnytimeAvailabilityVisible","open","mainLoaderStore","TorahAnytimeWizardViewStore","_dec8","resource","findSpeakerIdsByTopicIds","maximumNumberOfSteps","TorahAnytimeSelectTopics","TorahAnytimeSelectSpeakers","TorahAnytimeCreatePlaylist","_descriptor3","_descriptor4","_descriptor5","_descriptor6","initializeResource","getTorahAnytimePodcast","hasNextStep","goToStep","toJS","newCollection","prepareCollectionResource","createUserTorahAnytimeCollection","updateUserTorahAnytimeCollection","getResource","NotFound","goToNotFound","getUserTorahAnytimeCollection","TorahAnytimeWizardRouteStore","TorahAnytimeService","userTorahAnytimeCollectionService","abortController","update","get","TorahAnytimeCollectionListItem","TorahAnytimeCollectionListItemTemplate","TorahAnytimeCreatePlaylistTemplate","TorahAnytimeHeader","TorahAnytimeHeaderTemplate","TorahAnytimeSelectSpeakersTemplate","TorahAnytimeSelectTopicsTemplate","GridHeader","dataInitialized","hasData","onClickCreateNew","MrbLineContentLoader","rows","lineheight","setY","TorahAnytime","TorahAnytimeTemplate","TorahAnytimeWizard","TorahAnytimeWizardTemplate","HomeRouteStore","HomeStationRouteStore","HomePodcastRouteStore","HomePodcastGroupRouteStore","menu","order","route","formattedPrice","currencyFormatter","amount","currency","displayCloseIcon","onClickGoToProducerAccount","producerRevenueViewStore","summaryData","producers","AdminProducerSummaryLoader","isUser","producerName","accountBalance","ProducerTopTrendingEmptyStateTemplate","ProducerRevenueLoaderTemplate","useCallback","node","getBoundingClientRect","ProducerStatsLoaderTemplate","loadMore","noButton","rest","items","loaderSml","imgY","textWidth","random","ProducerTotalLoaderTemplate","ProducerRevenueTransferSuccessModal","ProducerRevenueTransferSuccessModalTemplate","ProducerSummaryPreview","ProducerSummaryPreviewTemplate","ProducerRevenueLoader","ProducerStatsLoader","ProducerTotalLoader","useElementScrollPosition","elem","elemScrollPosition","setElemScrollPosition","updatePosition","scrollLeft","addEventListener","removeEventListener","useWindowSize","windowSize","setWindowSize","handleResize","innerHeight","useSideScroll","element","direction","distance","scrollAmount","slideTimer","setInterval","clearInterval","Tabs","disabledArrows","setDisabledArrows","tabsRef","setTabsRef","scrollPosition","setScrollPosition","start","end","handleChangeOnResize","scrollStart","scrollEnd","scrollWidth","ceil","clientWidth","timer","setTimeout","clearTimeout","handleScrollAction","itemId","isChecked","checked","tabIndex","htmlFor","Actions","completedOnboarding","isStripeAccountConnected","createStripeAccount","stripeAccountLink","isCreateStripeAccountButtonDisabled","aria-busy","reportsGridStore","revenueGridStore","balanceGridStore","selectedProducerId","selectProducer","ProducerReportsTable","emptyStateRenderer","TableNoDataOverlay","ProducerAccountPreviewRevenueTransaction","ProducerAccountPreviewBalance","BackButton","producerId","queryParams","producerRevenueReportViewStore","ProducerReportLayout","producerReportViewStore","backButtonRenderer","ProducerReport","ProducerPaymentReportSummary","producerPaymentReportPreviewViewStore","producerRevenueTransferViewStore","currentAccountBalance","newAccountBalance","transferRevenueSuccessModal","MrbPage","submitLabel","CurrencyInputField","allowNegativeValue","producerPreviewViewStore","renderChildRoute","selectedTab","setSelectedTab","producerTypeSlug","producerTypes","podcasterSlug","artistSlug","DatePickerTemplate","producerDashboardTimeRangeViewStore","maxDate","minDate","applyFilter","setToDate","setFromDate","isDateRangeDisabled","timeRangeSelectStore","MrbSimpleSelect","MrbDatePicker","from","selectsStart","isClearable","timeZone","startDate","endDate","to","selectsEnd","NakiTalesStats","nakiTalesStatsInfiniteScrollStore","statsFilterOptions","nakiTalesFilterSelectedOptionValue","setNakiTalesFilterSelectedOptionValue","totalListeners","scrollParentRef","MrbRadioButtons","inputClassNameExtend","numberFormatter","MrbInfiniteScrollGrid","loaderRenderer","loadMoreLoader","StatsWidgetEmptyState","scrollParent","cellRenderer","score","NakiNigunStats","nakiNigunStatsInfiniteScrollStore","nakiNigunFilterSelectedOptionValue","setNakiNigunFilterSelectedOptionValue","producerDashboardViewStore","nakiNigunTotalListeners","nakiTalesTotalListeners","_Fragment","ProducerRevenueRouteStore","ProducerReportService","producerUserAccountService","ProducerUserAccountService","podcastAnalyticsService","PodcastAnalyticsService","nakiNigunAnalyticsService","NakiNigunAnalyticsService","findProducerReports","getProducerAccountSummary","getStripeConnectOnboardingStatus","createStripeConnectLink","getProducerAccountBalance","getProducerAccountRevenueTransaction","getProducers","ProducerRevenueViewStore","_dec9","_dec10","_dec11","_dec12","_dec13","stripeAccountId","_descriptor7","_descriptor8","_descriptor9","_descriptor10","revenueQueryUtility","MrbQueryUtility","revenueFetchResources","ignoreQueryParams","disableUpdateQueryParams","balanceQueryUtility","balanceFetchResources","reportsQueryUtility","reportsFetchResources","moment","utc","subtract","startOf","isoDate","range","setReportsGridStore","MrbTableViewStore","onRowClick","monthOfYear","columns","sortable","cell","ProducerPreviewReportPeriodCell","ProducerPreviewReportPlaybackTimeCell","mrbDefaultFormats","setRevenueGridStore","dateTime","setBalanceGridStore","cellClass","response","fetchReportsData","setData","fetchRevenueData","fetchBalanceData","fetchProducers","fetchAccountSummaryData","setStripeAccountOnboardingStatus","onboardingStatus","setCompletedOnboarding","chargesEnabled","detailsSubmitted","state","setStripeAccountLink","setSummaryData","setProducers","setIsCreateStripeAccountButtonDisabled","returnUrl","generateCurrentUrl","refreshUrl","fetchStripeAccountOnboardingStatus","fetchStripeAccountLink","origin","ProducerRevenueReportRouteStore","getProducerPaymentSummary","findProducerReportItems","findProducerReportPayoutUserEvents","ProducerRevenueReportViewStore","BaseProducerRevenueReportViewStore","maskUserNames","getSumaryData","ProducerRevenueTransferRouteStore","accountId","processPayoutToBankAccount","ProducerRevenueTransferForm","ProducerRevenueTransferViewStore","producerUserAccount","isString","parseFloat","max","onSuccess","values","transferRevenue","goToProducerAccount","getProducerUserAccount","invalidate","producerUserAccountId","errorCode","applicationErrorCodes","producer","insufficientAccountBalance","stripeConnectAccountNotExists","producerUserAccountNotExists","stripeConnectAccountNotEnabled","account","setProducerUserAccount","ProducerDashboardRouteStore","getTrendingPodcastsForProducer","getTrendingAlbumsForProducer","getTrendingAlbumsTotalStreamsForProducer","getTrendingPodcastsTotalStreamsForProducer","timeRangeType","defaultDropdownOptions","tz","guess","ProducerDashboardTimeRangeViewStore","toDate","setDateFilter","newOption","updateFilter","now","endOf","toISOString","previousCycleTo","previousCycleFrom","ProducerDashboardInfiniteScrollStore","MrbBaseInfiniteScrollListViewStore","setPagingFilter","fetchData","MrbInfiniteScrollGridViewStore","generateKey","_item$nakiNigunAlbum","_item$podcast","nakiNigunAlbum","_item$nakiNigunAlbum2","currentCycleScore","page","pageNumber","rpp","ProducerDashboardViewStore","_this$rootStore$userS","_this$rootStore$userS2","producerType","slug","uniqueListeners","dateFilter","nakiNigunPagingFilter","nakiTalesPagingFilter","setNakiNigunPagingFilter","fetchTrendingAlbums","setNakiTalesPagingFilter","fetchTrendingPodcasts","refreshData","fetchTrendingAlbumsTotalStreams","fetchTrendingPodcastsTotalStreams","setNakiNigunTotalListeners","setNakiTalesTotalListeners","getTrendingPodcasts","nakiTalesFilter","getTrendingAlbums","nakiNigunFilter","getTrendingAlbumsTotalStreams","getTrendingPodcastsTotalStreams","ProducerPreviewViewStore","currentRoute","getCurrentRoute","onViewUpdate","prevProps","newProps","tabs","ProducerPreviewRouteStore","ProducerRevenue","ProducerRevenueTemplate","ProducerRevenueReport","ProducerRevenueReportTemplate","ProducerRevenueTransfer","ProducerRevenueTransferTemplate","ProducerPreview","ProducerPreviewTemplate","ProducerDashboard","ProducerDashboardTemplate","authorization","_userStore$applicatio","applicationUser","_userStore$producerTy","_userStore$producerTy2","AlbumPanelHeader","nakiNigunArtistAlbumViewStore","album","toggleAlbumStatus","NakiNigunAlbumUnavailableInApp","setPanelRef","innerRef","year","NakiNigunAlbum","_isTurnedOn","NakiNigunArtist","setNumberOfEnabledAlbums","_numberOfEnabledAlbums","numberOfAlbums","nakiNigunContentType","artists","albums","NakiNigunBulkSelect","shallow","selectAll","isAllSelected","selectedIds","deselectedIds","deselectAll","addSelectedItem","selectedId","deselectedItemIndex","deselectedId","addDeselectedItem","selectedItemIndex","getContentActivityStatusIcon","numberOfEnabledAlbums","NakiNigunArtistCell","nakiNigunManageSelectedItemsViewStore","useCanAccessContent","nakiRadioContentType","nakiNigun","unavailableInNakiTouch","isVisibleInEmbeddedApp","isBulk","artistBulkEditViewStore","getBulkModeSelectIndicatorValue","canAccessArtist","selectedArtistIds","deselectedArtistIds","selectedItemId","artistId","deselectedItemId","canAccess","deselectItem","selectItem","bulkSelectOrDeselect","bulkSelection","NakiNigunAlbumCell","albumBulkEditViewStore","canAccessAlbum","selectedAlbumIds","deselectedAlbumIds","albumId","NakiNigunHomeGridCellTemplate","NakiNigunSearchResultGridCellTemplate","canAccessContent","artistName","nakiNigunHomeViewStore","anyDevice","contentTypeOptions","changeContentTypeFilter","nakiNigunGenericSearchViewStore","subscriptionExist","contentType","nakiNigunHomeFeaturedContentViewStore","isFeaturedScrollable","scrollFeaturedLeft","scrollFeaturedRight","setFeaturedContainerRef","HomeListLoader","bulk","NakiNigunHomeGridCell","orderBySelectStore","NakiNigunManageSelectedItems","NakiNigunHomeFeatured","HomeOrderBySelect","NakiNigunHomeCategory","HomeEmptyState","ArtistsList","onClickArtist","isAppearsInScrollable","setAppearsInContainerRef","artist","Artist","isArtistPremium","hasItems","HomeListSearchLoader","NakiNigunSearchResultGridCell","changeIsBulk","saveSelection","genreName","homeContents","NakiNigunArtistAlbumViewStore","createNakiNigunAlbumCoverImageUrl","nakiNigunArtistViewStore","updatingStatus","userDeviceAlbum","albumStatusItem","mobile_embedded","isTurnedOnByDefaultInEmbeddedApp","createRef","panelRef","scrollIntoView","behavior","block","resolve","updateAlbumTurnedOnStatus","canAccessNakiNigun","NakiNigunArtistRouteStore","NakiNigunUserContentService","getNakiNigunArtistWthDeviceSettings","getNakiNigunArtist","getUserDeviceAlbumsByArtist","NakiNigunArtistViewStore","BaseHomePreviewViewStore","createNakiNigunArtistCoverImageUrl","navigateBack","statusToggleLoader","albumIndex","UpdateNakiNigunAlbumStatusOptions","updateNakiNigunAlbumsStatus","getStatusItem","resourceId","setStatusItem","statusItem","override","NakiNigunHomeFeaturedContentViewStore","toggleFeaturedArtistTurnedOn","toggleFeaturedAlbumTurnedOn","groups","container","featuredContainerRef","context","fetchResources","getFeaturedArtists","getFeaturedAlbums","setFeaturedArtists","setFeaturedAlbums","onAlbumTurnedOnStatusChange","changedAlbum","onArtistTurnedOnStatusChange","changedArtist","newValue","onFeaturedAlbumTurnedOnStatusChange","UpdateNakiNigunArtistStatusOptions","updateNakiNigunAlbumsStatusByArtist","onFeaturedArtistTurnedOnStatusChange","onFeaturedArtistBulkEditSuccess","artistsBulkEdit","onFeaturedAlbumBulkEditSuccess","albumsBulkEdit","resetItems","createArtistCoverImageUrl","createAlbumCoverImageUrl","sideScroll","NakiNigunHomeRouteStore","findArtists","findAlbums","genericSearch","NakiNigunHomeContentFilter","NakiNigunHomeViewStore","showSearchView","nakiNigunContentTypeMode","artistOrderOptions","albumOrderOptions","queryParamMap","toQuery","toggleArtistTurnedOn","toggleAlbumTurnedOn","NakiNigunGenericSearchViewStore","NakiNigunManageSelectedItemsViewStore","disableConnectDeviceMessage","goToConnectDevice","content","MrbQuerySimpleSelectStore","selectedOrder","orderOptions","isConnectDeviceMessageVisible","isFirstPageLoad","onAlbumBulkEditSuccess","onArtistBulkEditSuccess","duplicateAlbums","duplicateArtists","set","destroy","initializeSortingDefault","searchPhrase","appearsInContainerRef","setShowSearchView","_isInitialLoad","setArtists","uniqBy","artistCoverImageId","orderOption","NakiNigunAlbumBulkEditViewStore","updateNakiNigunAlbumsStatusBulk","NakiNigunArtistBulkEditViewStore","updateNakiNigunAlbumsStatusByArtistBulk","isSelectedItemsAny","setIsBulk","success","changeTurnOn","NakiNigunArtistAlbum","NakiNigunArtistAlbumTemplate","NakiNigunHomeFeaturedTemplate","NakiNigunHomeMainView","NakiNigunHomeMainViewTemplate","NakiNigunHomePageHeader","NakiNigunHomePageHeaderTemplate","NakiNigunHomeSearchResults","NakiNigunHomeSearchResultsTemplate","NakiNigunManageSelectedItemsTemplate","NakiNigunHomeCategoryTemplate","Albums","NakiNigunArtistUnavailableInApp","NakiNigunArtistTemplate","NakiNigunHome","NakiNigunHomeTemplate","InfoLabelRenderer","infoLabel","DeviceIdInfoModal","deviceInfo","alt","deviceCreateViewStore","deviceTemporaryCodeToUpper","onClickDeviceIdInfo","deviceIdInfoModal","MrbEditPage","infoLabelRenderer","deviceEditViewStore","deviceDowntimeEditViewStore","cancelLabel","onClickCancel","layoutActions","navigationOptions","isDowntimeDisabled","DeviceEditPageHeader","MrbFormFieldContentLoader","disableNight","disableShabbos","loading","_initial","DowntimeNoteLoader","fieldWidth","DeviceDowntimeLoader","DeviceDowntimeEdit","deviceEmptyStateRender","DeviceCounter","deviceListViewStore","deviceLimit","recordCount","HeaderActions","goToAddNewDevice","isAddDeviceEnabled","MrbListPage","DeviceGridCell","MrbRectangleContentLoader","spacing","xBase","yBase","DeviceCreateRouteStore","DeviceService","registerUserDevice","loadUserDevices","onBeforeEnter","isDeviceSlotAvailable","DeviceCreateForm","extra","DeviceEditForm","DeviceCreateViewStore","inputValue","toUpperCase","localizationService","notExists","alreadyRegistered","toggleCurrentDeviceGuideImage","currentDeviceGuideImage","DeviceDowntimeEditViewStore","searchTerm","timeZones","toLowerCase","indexOf","take","has","add","names","isAllDayChecked","weekDays","dayHours","getWeekDays","getDayHours","sortBy","timeZoneOptions","timezoneSelectStore","MrbFieldSelectStore","isSearchable","isMulti","virtualized","buildForm","day","generateTimeFrameFields","hour","hourAbrv","disableEntireDay","selectedDay","days","disableActionOccured","nightTime","v","shabbosTimeFriday","shabbosTimeSaturday","processFormResult","deviceDowntime","dayTimeFrames","dayAbrv","timeFrames","reduce","result","DeviceEditRouteStore","dayHourService","DayHourCacheService","weekDayService","WeekDayCacheService","updateUserDevice","deleteUserDevice","getUserDevice","getItems","DeviceEditViewStore","registerRouteExitBlocking","changed","isChanged","isFormChanged","prohibitedTime","setIsRouteExitBlocked","DeviceListRouteStore","findUserDeviceForAuthenticatedUser","DeviceListViewStore","joyrideSteps","findUserDevices","DeviceCreate","DeviceCreateTemplate","DeviceEdit","DeviceEditTemplate","DeviceList","DeviceListTemplate","UserProfileEditForm","UserProfileChangePasswordForm","UserProfileEditViewStore","user","merge","email","roles","userProfile","BadRequest","UserProfileEditRouteStore","application","baasic","membershipModule","updateAccountInfo","changeUserPassword","userId","changePassword","UserProfilePasswordChangeViewStore","newPassword","password","siteUrl","onCreateSuccess","notifySuccessCreate","clear","userProfilePasswordChangeViewStore","autoComplete","PasswordFieldInfo","userProfileEditViewStore","UserProfilePasswordChange","UserProfilePasswordChangeTemplate","UserProfileGeneralInfo","UserProfileGeneralInfoTemplate","UserEditLoader","button","ChangePasswordLoader","UserProfileEdit","UserProfileEditTemplate","subMenu","SubscriptionPlan","subscriptionPlan","premiumBadge","subscriptionPlans","nakiRadioPremium","NakiRadioPremiumBadge","NakiNigunPremiumBadge","trialPeriodDays","activateTrialViewStore","activateTrial","isSubmitDisabled","trialActivatedModal","SubscriptionPlanLoader","TrialActivatedModal","changeSubscriptionPlanPreviewViewStore","subscription","SubscriptionPlanCard","isPremiumTrialPeriodUsed","product","isNew","price","subscriptionPlanColor","subscriptionPlanIcon","SubscriptionPrice","SubscriptionPolicies","subscriptionChangePreview","currentSubscription","subscriptionStatus","subscriptionStatuses","trial","paymentPolicy","nextBillingDate","newSubscriptionPlan","createTrialSubscriptionPaymentPolicy","isUpgrade","dateOfChange","SubscriptionStartDate","createSubscriptionPaymentPolicy","ProratedInvoicePreview","_ref5","invoicePreview","totalAmount","lineItems","lineItem","UpgradeSuccessModal","_ref6","confirmLabel","billingStartDate","longDate","onClickExplorePremium","changeSubscriptionPlanViewStore","changePlanSuccessModal","isChangePlanDisabled","customerPaymentMethod","changePlan","ChangeSubscriptionPlanLoader","proratedInvoicePreview","CreditCardInfo","creditCard","CreditCard","stripeField","paymentMethodExist","StripeCreditCardField","takePaymentViewStore","stripe","useStripe","elements","useElements","setStripe","isPaymentDisabled","paymentSuccessModal","subscribe","cardElement","getElement","CardElement","onClickSubscribe","TakePaymentHeader","PaymentSuccessModal","activeClassName","iconSize","upgradeTrialViewStore","SubscriptionPlans","premiumSubscriptionsViewStore","setSelectedSubscriptionPlan","isInternalSubscriptionActive","isSubscriptionBundleActive","onClickExploreContent","PremiumContentList","userSubscriptionsPreviewViewStore","UserSubscriptionInfo","pendingSubscription","CustomerPaymentMethodInfo","ActivateTrial","ActivateTrialViewStore","stripeProvider","ActivateTrialTemplate","ChangeSubscriptionPlan","ChangeSubscriptionPlanViewStore","ChangeSubscriptionPlanTemplate","ChangeSubscriptionPlanPreview","ChangeSubscriptionPlanPreviewViewStore","ChangeSubscriptionPlanPreviewTemplate","TakePayment","TakePaymentViewStore","TakePaymentTemplate","UpgradeTrial","UpgradeTrialViewStore","UpgradeTrialTemplate","PremiumSubscriptions","PremiumSubscriptionsViewStore","PremiumSubscriptionsTemplate","UserSubscriptionsPreview","UserSubscriptionsPreviewViewStore","UserSubscriptionsPreviewTemplate","ActivateTrialRouteStore","TakePaymentRouteStore","UpgradeTrialRouteStore","UserSubscriptionsPreviewRouteStore","PremiumSubscriptionsRouteStore","ChangeSubscriptionPlanRouteStore"],"mappings":"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","file":"static/js/appModules.0f7d34be.chunk.js","sourcesContent":["import { moduleProviderFactory } from \"mrb/core\";\r\nimport { MainLayout } from \"common/layouts\";\r\nimport { MainRouteStore } from \"common/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"application\",\r\n routes: [\r\n {\r\n name: \"master.application\",\r\n pattern: \"\",\r\n component: MainLayout,\r\n store: MainRouteStore,\r\n beforeEnter: (fromState, toState, routerStore) => {\r\n const { userStore } = routerStore.rootStore;\r\n if (userStore.isAdministrator) {\r\n return Promise.reject(routerStore.notFoundState);\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 {\r\n HomePageLayout,\r\n HomePageHeader,\r\n HomeMainView,\r\n HomeSearchResults,\r\n ConnectDeviceModal,\r\n} from \"application/home/components\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction HomeTemplate({ homeViewStore, t }) {\r\n const { connectDeviceModal } = homeViewStore;\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\nHomeTemplate.propTypes = {\r\n homeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst ResultsContainer = observer(function ResultsContainer({\r\n homeViewStore,\r\n t,\r\n}) {\r\n const { inSearchMode, homeGenericSearchViewStore } = homeViewStore;\r\n return (\r\n \r\n {inSearchMode ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nexport default defaultTemplate(HomeTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { HomePreviewStationsLoader, HomePreviewHeader } from \"application/home/components\";\r\nimport { HTMLRender, DescriptionLoader, PremiumBadge, Image } from \"common/components\";\r\nimport { StationUnavailableInApp } from \"application/common/components\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction HomeStationTemplate({ homeStationViewStore, t }) {\r\n const {\r\n loaderStore,\r\n item,\r\n coverImageUrl,\r\n rootStore: { premiumSubscriptionStore },\r\n contentAccessResult,\r\n } = homeStationViewStore;\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 {t(\"APPLICATION.HOME.STATION.FIELDS.TITLE\")}\r\n

\r\n \r\n {item.title}\r\n

\r\n {!contentAccessResult.canAccessOnSelectedDevice && }\r\n {premiumSubscriptionStore.isLegacySubscriptionActive(\r\n item.legacySubscriptionExpirationDate\r\n ) && (\r\n \r\n

\r\n Old subscription until:{\" \"}\r\n \r\n {dateFormatter.format(item.legacySubscriptionExpirationDate, {\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 {t(\"APPLICATION.HOME.STATION.FIELDS.DESCRIPTION_LINK\")}\r\n

\r\n {item.descriptionLink && (\r\n \r\n {item.descriptionLink}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nHomeStationTemplate.propTypes = {\r\n homeStationViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction StationInfo({ store, item, t }) {\r\n const { loaderStore } = store;\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 {t(\"APPLICATION.HOME.STATION.FIELDS.DESCRIPTION\")}\r\n

\r\n \r\n {item.alternativeDescription}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.LOCATION\")}\r\n

\r\n

{item.location && item.location.name}

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

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.LANGUAGE\")}\r\n

\r\n

{item.language && item.language.name}

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

\r\n {t(\"APPLICATION.HOME.STATION.FIELDS.GENRES\")}\r\n

\r\n {item.genres}\r\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 defaultTemplate(HomeStationTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { HomePreviewStationsLoader, HomePreviewHeader } from \"application/home/components\";\r\nimport { HTMLRender, DescriptionLoader, PremiumBadge, Image } from \"common/components\";\r\nimport { PodcastUnavailableInApp } from \"application/common/components\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction HomePodcastTemplate({ homePodcastViewStore, t }) {\r\n const {\r\n loaderStore,\r\n item,\r\n coverImageUrl,\r\n rootStore: { premiumSubscriptionStore },\r\n contentAccessResult,\r\n } = homePodcastViewStore;\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 {t(\"APPLICATION.HOME.PODCAST.FIELDS.TITLE\")}\r\n

\r\n \r\n {item.title}\r\n

\r\n {!contentAccessResult.canAccessOnSelectedDevice && }\r\n {premiumSubscriptionStore.isLegacySubscriptionActive(\r\n item.legacySubscriptionExpirationDate\r\n ) && (\r\n \r\n

\r\n Old subscription until:{\" \"}\r\n \r\n {dateFormatter.format(item.legacySubscriptionExpirationDate, {\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 {t(\"APPLICATION.HOME.PODCAST.FIELDS.DESCRIPTION_LINK\")}\r\n

\r\n {item.descriptionLink && (\r\n \r\n {item.descriptionLink}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nHomePodcastTemplate.propTypes = {\r\n homePodcastViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction PodcastInfo({ store, item, t }) {\r\n const { loaderStore } = store;\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 {t(\"APPLICATION.HOME.STATION.FIELDS.DESCRIPTION\")}\r\n

\r\n \r\n {item.alternativeDescription}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n

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

\r\n

{item.location && item.location.name}

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

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

\r\n

{item.language && item.language.name}

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

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

\r\n {item.genres}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(HomePodcastTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { HomePreviewHeader, HomeSubPodcast, HomePreviewSubPodcastListLoader } from \"application/home/components\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nimport { HTMLRender, DescriptionLoader, PremiumBadge, Image } from \"common/components\";\r\n\r\nfunction HomePodcastGroupTemplate({ homePodcastViewStore, t }) {\r\n const { loaderStore, item, coverImageUrl, canAccessPremiumContent } = homePodcastViewStore;\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 {t(\"APPLICATION.HOME.PODCAST.FIELDS.GROUP_TITLE\")}\r\n

\r\n

{item.title}

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

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

\r\n {item.descriptionLink && (\r\n \r\n {item.descriptionLink}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nHomePodcastGroupTemplate.propTypes = {\r\n homePodcastViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst SubPodcasts = observer(function SubPodcasts({ store, t }) {\r\n const { item, loaderStore } = store;\r\n\r\n return (\r\n }>\r\n {() => (\r\n \r\n {item && item.subPodcasts && item.subPodcasts.length > 0 && (\r\n
\r\n
\r\n
\r\n {map(item.subPodcasts, (subPodcast) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n});\r\n\r\nfunction PodcastInfo({ store, item, t }) {\r\n const { loaderStore } = store;\r\n\r\n return (\r\n \r\n {!item || (item && item.alternativeDescription) ? (\r\n \r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n
\r\n
\r\n

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

\r\n \r\n {item.alternativeDescription}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n ) : null}\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(HomePodcastGroupTemplate);\r\n","import React from \"react\";\r\nimport { HomeTemplate } from \"themes/application/home/pages\";\r\nimport { HomeViewStore } from \"application/home/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new HomeViewStore(rootStore, componentProps),\r\n \"homeViewStore\"\r\n)\r\nclass Home extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default Home;\r\n","import React from \"react\";\r\nimport { HomeStationTemplate } from \"themes/application/home/pages\";\r\nimport { HomeStationViewStore } from \"application/home/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new HomeStationViewStore(rootStore, componentProps),\r\n \"homeStationViewStore\"\r\n)\r\nclass HomeStation extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default HomeStation;\r\n","import React from \"react\";\r\nimport { HomePodcastTemplate } from \"themes/application/home/pages\";\r\nimport { HomePodcastViewStore } from \"application/home/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new HomePodcastViewStore(rootStore, componentProps),\r\n \"homePodcastViewStore\"\r\n)\r\nclass HomePodcast extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default HomePodcast;\r\n","import React from \"react\";\r\nimport { HomePodcastGroupTemplate } from \"themes/application/home/pages\";\r\nimport { HomePodcastGroupViewStore } from \"application/home/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new HomePodcastGroupViewStore(rootStore, componentProps),\r\n \"homePodcastViewStore\"\r\n)\r\nclass HomePodcastGroup extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default HomePodcastGroup;\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst TorahAnyTimeLoaderTemplate = ({ row = 6, props, backgroundColor = \"#3C3D3E\", foregroundColor = \"#404143\" }) => {\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\r\n const list = [];\r\n\r\n // prettier-ignore\r\n const cardSpace = screenwidth > 540 ? 188 : 148;\r\n const cardSize = screenwidth > 540 ? 140 : 100;\r\n\r\n let x = 0;\r\n let y1 = 0;\r\n\r\n let col;\r\n let setX;\r\n\r\n if (screenwidth > 988) {\r\n row = 5;\r\n col = Math.floor((screenwidth - 200) / 150);\r\n setX = Math.floor((screenwidth - 55) / col);\r\n } else if (screenwidth > 540) {\r\n col = Math.floor((screenwidth - 32) / 150);\r\n setX = Math.floor(screenwidth / col / col) + 136;\r\n row = 3;\r\n } else {\r\n col = Math.floor((screenwidth - 32) / 103);\r\n setX = Math.floor(screenwidth / col / col) + 86;\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 y1 += cardSpace;\r\n }\r\n y1 = 0;\r\n\r\n x += setX;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {list}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default TorahAnyTimeLoaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction TorahAnytimeWizardLayoutTemplate({ store, children, controlsRenderer, t }) {\r\n return (\r\n
\r\n \r\n {children}\r\n {controlsRenderer ? controlsRenderer({ store }) : }\r\n
\r\n );\r\n}\r\n\r\nconst WizardHeader = observer(function WizardHeader({ store, t }) {\r\n const { steps, currentStep, stepIndex } = store;\r\n return (\r\n
\r\n {map(steps, (step, i) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n );\r\n});\r\n\r\nfunction WizardStep({ step, t, isActive, lastStep, stepIndex }) {\r\n return (\r\n
\r\n \r\n {t(step.title)}\r\n \r\n {!lastStep && }\r\n
\r\n );\r\n}\r\n\r\nconst WizardControls = observer(function WizardControls({ store, t }) {\r\n const { nextStep, currentStep, previousStep, hasPreviousStep } = store;\r\n return (\r\n
\r\n
\r\n \r\n {hasPreviousStep && (\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n});\r\n\r\nTorahAnytimeWizardLayoutTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default TorahAnytimeWizardLayoutTemplate;\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 TorahAnytimeAvailabilityModalTemplate({ modalParams, t }) {\r\n return (\r\n \r\n \r\n
\r\n
\r\n

TorahAnytime Availability

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

\r\n The TorahAnytime feature is available on the following Naki devices:\r\n

\r\n
    \r\n
  • NakiRadio Solo
  • \r\n
  • NakiRadio Duo
  • \r\n
  • NakiRadio (2023)
  • \r\n {/*
  • Naki Go App
  • */}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nTorahAnytimeAvailabilityModalTemplate.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 TorahAnytimeAvailabilityModalTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbCollapsiblePanel } from \"mrb/components/collapsible-panel\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { TogglePremium } from \"application/home/components\";\r\nimport { PodcastUnavailableInApp } from \"application/common/components\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map, orderBy } from \"lodash\";\r\n\r\nfunction TorahAnytimeCollectionListItemTemplate({ torahAnytimeCollectionListItemViewStore, actions, t }) {\r\n const { collection, isCollapsed, toggleCollapse, speakersLength, topicsLength } =\r\n torahAnytimeCollectionListItemViewStore;\r\n\r\n return (\r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n
\r\n {collection.speakers && speakersLength > 0 && (\r\n \r\n )}\r\n {collection.topics && topicsLength > 0 && (\r\n \r\n )}\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nTorahAnytimeCollectionListItemTemplate.propTypes = {\r\n torahAnytimeCollectionListItemViewStore: PropTypes.object.isRequired,\r\n onCellClick: PropTypes.func.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst PanelHeader = observer(function PanelHeader({ title, store, t, isCollapsed, item, actions }) {\r\n const {\r\n isTurnedOn,\r\n isDisabled,\r\n toggleCollectionStatus,\r\n contentAccessResult,\r\n hasTopics,\r\n hasSpeakers,\r\n torahAnytimeViewStore: { torahAnytimePodcast },\r\n rootStore: { userDeviceStore },\r\n } = store;\r\n return (\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n

\r\n {title}\r\n

\r\n {torahAnytimePodcast &&\r\n torahAnytimePodcast.isPremium &&\r\n !contentAccessResult.canAccessPremium && (\r\n \r\n )}\r\n
\r\n {!contentAccessResult.canAccessOnSelectedDevice && }\r\n
\r\n
\r\n\r\n
\r\n
\r\n {(!hasTopics || !hasSpeakers) && (\r\n

\r\n {!hasSpeakers && !hasTopics\r\n ? t(\"APPLICATION.TORAH_ANYTIME.LIST.REMOVED_DATA.SPEAKERS_AND_TOPICS\")\r\n : !hasSpeakers\r\n ? t(\"APPLICATION.TORAH_ANYTIME.LIST.REMOVED_DATA.SPEAKERS\")\r\n : t(\"APPLICATION.TORAH_ANYTIME.LIST.REMOVED_DATA.TOPICS\")}\r\n

\r\n )}\r\n
\r\n {userDeviceStore.deviceCount > 0 && contentAccessResult.canAccessOnSelectedDevice && (\r\n \r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n toggleCollectionStatus(!isTurnedOn);\r\n }}\r\n icon=\"u-icon u-icon--med u-icon--premium--white\"\r\n classNameOverride={mergeCss(\r\n \"c-btn c-btn--status--sml\",\r\n isTurnedOn ? \"c-btn--status--enabled\" : \"c-btn--status--disabled\"\r\n )}\r\n />\r\n \r\n )}\r\n {actions.delete && (\r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n actions.delete.onClick(item);\r\n }}\r\n />\r\n )}\r\n {actions.edit && (\r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n actions.edit.onClick(item);\r\n }}\r\n />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nfunction SpeakersList({ speakers, speakersLength }) {\r\n speakers = orderBy(speakers, [\"speaker.title\", \"speaker.firstName\", \"speaker.lastName\"]);\r\n return (\r\n
\r\n
\r\n

Speakers ({speakersLength})

\r\n
\r\n
\r\n {map(\r\n speakers,\r\n (speaker) =>\r\n speaker?.speaker && (\r\n
\r\n {[\r\n speaker?.speaker?.title,\r\n speaker?.speaker?.firstName,\r\n speaker?.speaker?.lastName,\r\n ].join(\" \")}\r\n
\r\n )\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction TopicsList({ topics, topicsLength }) {\r\n topics = orderBy(topics, [\"topic.title\"]);\r\n return (\r\n
\r\n
\r\n

Topics ({topicsLength})

\r\n
\r\n
\r\n {map(topics, (topic) => topic?.topic &&
{topic?.topic?.title}
)}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default observer(TorahAnytimeCollectionListItemTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbEditFormLayout, MrbButton } from \"mrb/components\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { TorahAnytimeWizardLayout } from \"application/torah-anytime/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\n\r\nfunction TorahAnytimeCreatePlaylistTemplate({ torahAnytimeCollectionEditViewStore, torahAnytimeWizardViewStore, t }) {\r\n const { form, isEdit } = torahAnytimeCollectionEditViewStore;\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n Back\r\n \r\n
\r\n
\r\n \r\n (\r\n \r\n )}\r\n t={t}\r\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 CreatePlaylistWizardControls = observer(function CreatePlaylistWizardControls({ store, isEdit, onSubmit, t }) {\r\n const { currentStep, previousStep } = store;\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\nTorahAnytimeCreatePlaylistTemplate.propTypes = {\r\n torahAnytimeCollectionEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(TorahAnytimeCreatePlaylistTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { HomeDeviceSelect } from \"application/home/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction TorahAnytimeHeaderTemplate({ store, t }) {\r\n const {\r\n deviceSelectStore,\r\n torahAnytimePodcast,\r\n rootStore: { userDeviceStore },\r\n } = store;\r\n\r\n return (\r\n
\r\n
{torahAnytimePodcast && torahAnytimePodcast.title}
\r\n {userDeviceStore.deviceCount > 0 && (\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nTorahAnytimeHeaderTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(TorahAnytimeHeaderTemplate);\r\n","import React from \"react\";\r\nimport { TorahAnyTimeLoaderTemplate } from \"themes/application/torah-anytime/components\";\r\n\r\nfunction TorahAnyTimeLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default TorahAnyTimeLoader;\r\n","import React from \"react\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { Image } from \"common/components\";\r\nimport { TorahAnytimeWizardLayout } from \"application/torah-anytime/components\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbPager } from \"mrb/components/pager\";\r\nimport { findIndex, isEmpty } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { TorahAnyTimeLoader } from \"application/torah-anytime/components/content-loader\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { applicationDefaults } from \"common/constants\";\r\n\r\nfunction TorahAnytimeSelectTopicsTemplate({ torahAnytimeSelectTopicsViewStore, torahAnytimeWizardViewStore, t }) {\r\n const { gridStore, torahAnytimeSelectionViewStore, queryUtility } = torahAnytimeSelectTopicsViewStore;\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n Back\r\n \r\n \r\n
\r\n
\r\n (\r\n \r\n )}\r\n t={t}\r\n >\r\n
\r\n }\r\n cellRender={(props) => (\r\n \r\n )}\r\n emptyStateRender={() => }\r\n pagerRender={(props) => (\r\n \r\n )}\r\n />\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nconst TopicCell = observer(function TopicCell({ item, torahAnytimeSelectionViewStore }) {\r\n const { selectedTopics, selectTopic, deselectTopic } = torahAnytimeSelectionViewStore;\r\n const isSelected = findIndex(selectedTopics, (selectedTopic) => selectedTopic.topicId === item.id) !== -1;\r\n return (\r\n
\r\n deselectTopic(item) : () => selectTopic(item)}\r\n >\r\n {isSelected ? : }\r\n\r\n
\r\n \r\n
\r\n
\r\n
{item.title}
\r\n \r\n );\r\n});\r\n\r\nfunction EnabledIndicator() {\r\n return
;\r\n}\r\n\r\nfunction DisabledIndicator() {\r\n return
;\r\n}\r\n\r\nfunction NoDataEmptyState({ queryUtility, t }) {\r\n const { filter } = queryUtility;\r\n const title = isEmpty(filter.search)\r\n ? t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_TOPICS.NO_DATA.TITLE\")\r\n : t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_TOPICS.NO_DATA.TITLE_WTH_SEARCH\", { search: filter.search });\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{title}

\r\n

{t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.NO_DATA.DESCRIPTION\")}

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst SelectTopicsWizardControls = observer(function SelectTopicsWizardControls({\r\n store,\r\n torahAnytimeSelectTopicsViewStore,\r\n t,\r\n}) {\r\n const { nextStep, currentStep, previousStep, hasPreviousStep } = store;\r\n const { isTopicSelectionEmpty } = torahAnytimeSelectTopicsViewStore;\r\n return (\r\n
\r\n
\r\n \r\n {hasPreviousStep && (\r\n \r\n )}\r\n
\r\n {isTopicSelectionEmpty && (\r\n
\r\n

\r\n {t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_TOPICS.VALIDATION.NOTHING_SELECTED\")}\r\n

\r\n
\r\n )}\r\n \r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nexport default observer(TorahAnytimeSelectTopicsTemplate);\r\n","import React from \"react\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { Image } from \"common/components\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbPager } from \"mrb/components/pager\";\r\nimport { TorahAnytimeWizardLayout } from \"application/torah-anytime/components\";\r\nimport { findIndex, isEmpty } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { TorahAnyTimeLoader } from \"application/torah-anytime/components/content-loader\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { applicationDefaults } from \"common/constants\";\r\n\r\nfunction TorahAnytimeSelectSpeakersTemplate({ torahAnytimeSelectSpeakersViewStore, torahAnytimeWizardViewStore, t }) {\r\n const { gridStore, torahAnytimeSelectionViewStore, queryUtility, selectSpeakersByGender, clearSelection } =\r\n torahAnytimeSelectSpeakersViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n Back\r\n \r\n \r\n
\r\n
\r\n {\r\n selectSpeakersByGender(false);\r\n }}\r\n t={t}\r\n />\r\n {\r\n selectSpeakersByGender(true);\r\n }}\r\n t={t}\r\n />\r\n \r\n
\r\n
\r\n (\r\n \r\n )}\r\n t={t}\r\n >\r\n
\r\n }\r\n cellRender={(props) => (\r\n \r\n )}\r\n emptyStateRender={() => }\r\n pagerRender={(props) => (\r\n \r\n )}\r\n />\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nconst SpeakerCell = observer(function SpeakerCell({\r\n item,\r\n torahAnytimeSelectionViewStore,\r\n torahAnytimeSelectSpeakersViewStore,\r\n}) {\r\n const { selectedSpeakers, selectSpeaker, deselectSpeaker } = torahAnytimeSelectionViewStore;\r\n const { defaultSpeakerImageUrl } = torahAnytimeSelectSpeakersViewStore;\r\n const isSelected = findIndex(selectedSpeakers, (selectedSpeaker) => selectedSpeaker.speakerId === item.id) !== -1;\r\n return (\r\n
\r\n deselectSpeaker(item) : () => selectSpeaker(item)}\r\n >\r\n {isSelected ? : }\r\n\r\n
\r\n \r\n
\r\n
\r\n
{[item.title, item.firstName, item.lastName].join(\" \")}
\r\n \r\n );\r\n});\r\n\r\nfunction EnabledIndicator() {\r\n return
;\r\n}\r\n\r\nfunction DisabledIndicator() {\r\n return
;\r\n}\r\n\r\nfunction NoDataEmptyState({ queryUtility, t }) {\r\n const { filter } = queryUtility;\r\n const title = isEmpty(filter.search)\r\n ? t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.NO_DATA.TITLE\")\r\n : t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.NO_DATA.TITLE_WTH_SEARCH\", { search: filter.search });\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

{title}

\r\n

{t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.NO_DATA.DESCRIPTION\")}

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst SelectSpeakersWizardControls = observer(function SelectSpeakersWizardControls({\r\n store,\r\n torahAnytimeSelectSpeakersViewStore,\r\n t,\r\n}) {\r\n const { nextStep, currentStep, previousStep, hasPreviousStep } = store;\r\n const { isSpeakerSelectionEmpty } = torahAnytimeSelectSpeakersViewStore;\r\n return (\r\n
\r\n
\r\n \r\n {hasPreviousStep && (\r\n \r\n )}\r\n
\r\n {isSpeakerSelectionEmpty && (\r\n
\r\n

\r\n {t(\"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.VALIDATION.NOTHING_SELECTED\")}\r\n

\r\n
\r\n )}\r\n \r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nexport default observer(TorahAnytimeSelectSpeakersTemplate);\r\n","import React from \"react\";\r\nimport { TorahAnytimeWizardLayoutTemplate } from \"themes/application/torah-anytime/components\";\r\n\r\nfunction TorahAnytimeWizardLayout(props) {\r\n return ;\r\n}\r\n\r\nexport default TorahAnytimeWizardLayout;\r\n","import React from \"react\";\r\nimport { TorahAnytimeAvailabilityModalTemplate } from \"themes/application/torah-anytime/components\";\r\n\r\nfunction TorahAnytimeAvailabilityModal(props) {\r\n return ;\r\n}\r\n\r\nexport default TorahAnytimeAvailabilityModal;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class TorahAnytimeCollectionEditForm 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: \"APPLICATION.TORAH_ANYTIME.EDIT.FIELDS.NAME_LABEL\",\r\n placeholder: \"APPLICATION.TORAH_ANYTIME.EDIT.FIELDS.NAME_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { runInAction } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { TorahAnytimeCollectionEditForm } from \"application/torah-anytime/forms\";\r\n\r\nclass TorahAnytimeCollectionEditViewStore extends MrbBaseEditViewStore {\r\n constructor(rootStore, { routeStore, torahAnytimeWizardViewStore }) {\r\n super(rootStore, {\r\n id: torahAnytimeWizardViewStore.collectionId,\r\n name: \"torah-anytime-collection\",\r\n FormClass: TorahAnytimeCollectionEditForm,\r\n autoFocusField: \"name\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n redirectOnCreateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime\", {\r\n id: torahAnytimeWizardViewStore.podcastId,\r\n }),\r\n redirectOnUpdateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime\", {\r\n id: torahAnytimeWizardViewStore.podcastId,\r\n }),\r\n });\r\n this.routeStore = routeStore;\r\n this.torahAnytimeWizardViewStore = torahAnytimeWizardViewStore;\r\n }\r\n\r\n async initializeResource() {\r\n if (this.id) {\r\n runInAction(() => {\r\n const item = this.torahAnytimeWizardViewStore.item;\r\n this.setItem(item);\r\n this.updateForm(item);\r\n });\r\n } else {\r\n this.resetForm();\r\n }\r\n }\r\n\r\n create(data) {\r\n return this.torahAnytimeWizardViewStore.createCollection(data);\r\n }\r\n\r\n async update(data) {\r\n await this.torahAnytimeWizardViewStore.updateCollection(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 TorahAnytimeCollectionEditViewStore;\r\n","import { action, computed, makeObservable, observable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { nakiRadioSystemTypes } from \"common/constants\";\r\nimport { UpdateTorahAnytimeCollectionStatusOptions } from \"application/common/models\";\r\nimport { find, isNil, filter, some } from \"lodash\";\r\n\r\nclass TorahAnytimeCollectionListItemViewStore extends MrbBaseViewStore {\r\n collectionId;\r\n\r\n @observable isCollapsed = false;\r\n @observable isUpdating = false;\r\n\r\n @computed get hasTopics() {\r\n return some(this.collection.topics, (topic) => !isNil(topic?.topic));\r\n }\r\n\r\n @computed get hasSpeakers() {\r\n return some(this.collection.speakers, (speaker) => !isNil(speaker?.speaker));\r\n }\r\n\r\n @computed get speakersLength() {\r\n const speakers = filter(this.collection.speakers, (speaker) => {\r\n return !isNil(speaker?.speaker);\r\n });\r\n\r\n return speakers.length;\r\n }\r\n\r\n @computed get topicsLength() {\r\n const topics = filter(this.collection.topics, (topic) => {\r\n return !isNil(topic?.topic);\r\n });\r\n\r\n return topics.length;\r\n }\r\n\r\n @computed get collection() {\r\n return find(this.torahAnytimeViewStore.gridStore.data, (item) => item.id === this.collectionId);\r\n }\r\n\r\n @computed get contentAccessResult() {\r\n return this.evaluateContentAccess(this.torahAnytimeViewStore.torahAnytimePodcast);\r\n }\r\n\r\n @computed get isDisabled() {\r\n return this.isUpdating;\r\n }\r\n\r\n @computed get collectionStatusItem() {\r\n if (this.collection) {\r\n return this.collection.userDeviceCollection;\r\n }\r\n return null;\r\n }\r\n\r\n @computed get isTurnedOn() {\r\n if (!isNil(this.collectionStatusItem)) {\r\n return this.collectionStatusItem.isTurnedOn;\r\n } else if (this.torahAnytimeViewStore.torahAnytimePodcast) {\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.torahAnytimeViewStore.torahAnytimePodcast.isTurnedOnByDefault;\r\n case nakiRadioSystemTypes.mobile:\r\n return this.torahAnytimeViewStore.torahAnytimePodcast.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, { collectionId, torahAnytimeViewStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.collectionId = collectionId;\r\n this.torahAnytimeViewStore = torahAnytimeViewStore;\r\n }\r\n\r\n @action.bound\r\n async toggleCollectionStatus(isTurnedOn) {\r\n this.setIsUpdating(true);\r\n await this.updateCollectionTurnedOnStatus(isTurnedOn);\r\n this.setIsUpdating(false);\r\n }\r\n\r\n @action.bound\r\n async updateCollectionTurnedOnStatus(isTurnedOn) {\r\n try {\r\n const options = new UpdateTorahAnytimeCollectionStatusOptions(\r\n this.collection.id,\r\n this.collection.name,\r\n this.torahAnytimeViewStore.torahAnytimePodcast.id,\r\n this.torahAnytimeViewStore.torahAnytimePodcast.title,\r\n this.torahAnytimeViewStore.torahAnytimePodcast.isPremium,\r\n this.torahAnytimeViewStore.torahAnytimePodcast.isVisibleInApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateTorahAnytimeCollectionsStatus(options, isTurnedOn);\r\n runInAction(() => {\r\n if (this.collection.userDeviceCollection) {\r\n this.collection.userDeviceCollection.isTurnedOn = isTurnedOn;\r\n } else {\r\n this.collection.userDeviceCollection = { isTurnedOn: isTurnedOn };\r\n }\r\n });\r\n } catch (err) {\r\n console.log(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 toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n @action.bound\r\n setIsUpdating(isUpdating) {\r\n this.isUpdating = isUpdating;\r\n }\r\n\r\n evaluateContentAccess(torahAnytimePodcast) {\r\n if (isNil(torahAnytimePodcast)) {\r\n return false;\r\n }\r\n\r\n return this.rootStore.contentAccessValidator.canAccessPodcast({\r\n isPremium: torahAnytimePodcast.isPremium,\r\n unavailableInMobileApp: torahAnytimePodcast.isVisibleInApp === false,\r\n });\r\n }\r\n}\r\n\r\nexport default TorahAnytimeCollectionListItemViewStore;\r\n","import { observable, action, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { pullAt, findIndex, forEach } from \"lodash\";\r\n\r\nclass TorahAnytimeSelectionViewStore extends MrbBaseViewStore {\r\n @observable selectedSpeakers = [];\r\n @observable selectedTopics = [];\r\n\r\n constructor(rootStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n initializeSelection(topics = [], speakers = []) {\r\n this.selectedTopics = topics;\r\n this.selectedSpeakers = speakers;\r\n }\r\n\r\n @action.bound\r\n selectSpeakers(speakers) {\r\n forEach(speakers, (speaker) => {\r\n const existingItemIndex = findIndex(\r\n this.selectedSpeakers,\r\n (selectedSpeaker) => selectedSpeaker.speakerId === speaker.id\r\n );\r\n if (existingItemIndex === -1) {\r\n this.selectedSpeakers.push({\r\n speakerId: speaker.id,\r\n speaker: speaker,\r\n });\r\n }\r\n });\r\n }\r\n\r\n @action.bound\r\n clearSelectedSpeakers() {\r\n this.selectedSpeakers = [];\r\n }\r\n\r\n @action.bound\r\n selectSpeaker(speaker) {\r\n const existingItemIndex = findIndex(\r\n this.selectedSpeakers,\r\n (selectedSpeaker) => selectedSpeaker.speakerId === speaker.id\r\n );\r\n if (existingItemIndex === -1) {\r\n this.selectedSpeakers.push({\r\n speakerId: speaker.id,\r\n speaker: speaker,\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectSpeaker(speaker) {\r\n const existingItemIndex = findIndex(\r\n this.selectedSpeakers,\r\n (selectedSpeaker) => selectedSpeaker.speakerId === speaker.id\r\n );\r\n if (existingItemIndex !== -1) {\r\n pullAt(this.selectedSpeakers, existingItemIndex);\r\n }\r\n }\r\n\r\n @action.bound\r\n selectTopic(topic) {\r\n const existingItemIndex = findIndex(this.selectedTopics, (selectedTopic) => selectedTopic.topicId === topic.id);\r\n if (existingItemIndex === -1) {\r\n this.selectedTopics.push({\r\n topicId: topic.id,\r\n topic: topic,\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectTopic(topic) {\r\n const existingItemIndex = findIndex(this.selectedTopics, (selectedTopic) => selectedTopic.topicId === topic.id);\r\n if (existingItemIndex !== -1) {\r\n pullAt(this.selectedTopics, existingItemIndex);\r\n }\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSelectionViewStore;\r\n","import { MrbFilterParameters } from \"mrb/core/filter\";\r\nimport { calculateNumberOfColumns, calculateNumberOfTorahAnytimeWizardRows } from \"common/utils\";\r\n\r\nclass TorahAnytimeSpeakersFilter extends MrbFilterParameters {\r\n constructor() {\r\n super();\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n super.reset();\r\n this.pageSize =\r\n calculateNumberOfColumns(window.innerWidth) * calculateNumberOfTorahAnytimeWizardRows(window.innerWidth);\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSpeakersFilter;\r\n","import { MrbFilterParameters } from \"mrb/core/filter\";\r\nimport { calculateNumberOfColumns, calculateNumberOfTorahAnytimeWizardRows } from \"common/utils\";\r\n\r\nclass TorahAnytimeTopicsFilter extends MrbFilterParameters {\r\n constructor() {\r\n super();\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n super.reset();\r\n this.pageSize =\r\n calculateNumberOfColumns(window.innerWidth) * calculateNumberOfTorahAnytimeWizardRows(window.innerWidth);\r\n }\r\n}\r\n\r\nexport default TorahAnytimeTopicsFilter;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { TorahAnytimeSpeakersFilter } from \"application/torah-anytime/filters\";\r\nimport { map, filter, forEach, includes } from \"lodash\";\r\n\r\nclass TorahAnytimeSelectSpeakersViewStore extends MrbBaseListViewStore {\r\n _abortController = null;\r\n\r\n @computed get isSpeakerSelectionEmpty() {\r\n return this.torahAnytimeSelectionViewStore.selectedSpeakers.length === 0;\r\n }\r\n\r\n @computed get defaultSpeakerImageUrl() {\r\n const podcast = this.torahAnytimeWizardViewStore.torahAnytimePodcast;\r\n if (podcast && podcast.coverImageId) {\r\n return this.rootStore.coverImageFactory.createPodcastCoverImageUrl(podcast.coverImageId, 200, 200);\r\n }\r\n return null;\r\n }\r\n\r\n constructor(rootStore, { routeStore, torahAnytimeSelectionViewStore, torahAnytimeWizardViewStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new TorahAnytimeSpeakersFilter(),\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.torahAnytimeSelectionViewStore = torahAnytimeSelectionViewStore;\r\n this.torahAnytimeWizardViewStore = torahAnytimeWizardViewStore;\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.onClickCellItem(item),\r\n })\r\n );\r\n\r\n this.reaction(\r\n () => (this.queryUtility.filter.search || \"\").trim(),\r\n () => {\r\n this.queryUtility.fetch();\r\n },\r\n {\r\n delay: 300,\r\n }\r\n );\r\n this.selectSpeakersByGender = this.selectSpeakersByGender.bind(this);\r\n this.clearSelection = this.clearSelection.bind(this);\r\n }\r\n\r\n onInit() {\r\n return this.queryUtility.initialize(true, true);\r\n }\r\n\r\n async selectSpeakersByGender(isFemale) {\r\n const topicIds = map(this.torahAnytimeSelectionViewStore.selectedTopics, (topic) => topic.topicId);\r\n const params = { topicIds: topicIds, isFemale: isFemale };\r\n\r\n try {\r\n this.loaderStore.suspend();\r\n const speakerIds = await this.routeStore.findSpeakersByGender(params);\r\n const speakers = map(speakerIds, (speakerId) => {\r\n return { id: speakerId };\r\n });\r\n\r\n if (speakerIds.length > 0) {\r\n this.torahAnytimeSelectionViewStore.selectSpeakers(speakers);\r\n }\r\n } catch (error) {\r\n this.rootStore.notificationStore.error(\"Error while selecting all rabbis or rebbetzins\");\r\n } finally {\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n clearSelection() {\r\n this.torahAnytimeSelectionViewStore.clearSelectedSpeakers();\r\n }\r\n\r\n async find(params) {\r\n this.abortExistingRequest();\r\n const topicIds = map(this.torahAnytimeSelectionViewStore.selectedTopics, (topic) => topic.topicId);\r\n params.topicIds = topicIds;\r\n this._abortController = new AbortController();\r\n\r\n if (this.torahAnytimeWizardViewStore.currentStep.id === \"speakers\") {\r\n if (this.torahAnytimeSelectionViewStore.selectedSpeakers.length > 0) {\r\n await this.validateSpeakers();\r\n }\r\n }\r\n\r\n return await this.routeStore.findSpeakers(params, this._abortController);\r\n }\r\n\r\n async validateSpeakers() {\r\n let allSpeakerIdsByTopics = await this.torahAnytimeWizardViewStore.selectedTopicsSpeakerIds;\r\n\r\n const speakersForDeselect = filter(\r\n this.torahAnytimeSelectionViewStore.selectedSpeakers,\r\n (speaker) => !includes(allSpeakerIdsByTopics, speaker.speakerId)\r\n );\r\n\r\n forEach(speakersForDeselect, (speaker) => {\r\n this.torahAnytimeSelectionViewStore.deselectSpeaker({ id: speaker.speakerId });\r\n });\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 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 onDestroy() {\r\n this.abortExistingRequest();\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSelectSpeakersViewStore;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { TorahAnytimeTopicsFilter } from \"application/torah-anytime/filters\";\r\n\r\nclass TorahAnytimeSelectTopicsViewStore extends MrbBaseListViewStore {\r\n _abortController = null;\r\n\r\n @computed get isTopicSelectionEmpty() {\r\n return this.torahAnytimeSelectionViewStore.selectedTopics.length === 0;\r\n }\r\n\r\n constructor(rootStore, { routeStore, torahAnytimeSelectionViewStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new TorahAnytimeTopicsFilter(),\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.torahAnytimeSelectionViewStore = torahAnytimeSelectionViewStore;\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.onClickCellItem(item),\r\n })\r\n );\r\n\r\n this.reaction(\r\n () => (this.queryUtility.filter.search || \"\").trim(),\r\n () => {\r\n this.queryUtility.fetch();\r\n },\r\n {\r\n delay: 300,\r\n }\r\n );\r\n }\r\n\r\n onInit() {\r\n return this.queryUtility.initialize(true, true);\r\n }\r\n\r\n find(params) {\r\n this.abortExistingRequest();\r\n this._abortController = new AbortController();\r\n return this.routeStore.findTopics(params, this._abortController);\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 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 onDestroy() {\r\n this.abortExistingRequest();\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSelectTopicsViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { UserTorahAnytimeCollectionService, UserContentService } from \"common/services\";\r\n\r\nclass TorahAnytimeRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(UserTorahAnytimeCollectionService);\r\n this.userContentService = rootStore.createApplicationService(UserContentService);\r\n }\r\n\r\n async findUserTorahAnytimeCollections(deviceId, params) {\r\n const response = await this.service.findWthDeviceSettings(deviceId, params);\r\n return response.data;\r\n }\r\n\r\n async deleteUserTorahAnytimeCollection(item) {\r\n const response = await this.service.delete(item);\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 return response.data;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeRouteStore;\r\n","import { action, computed, makeObservable, observable } from \"mobx\";\r\nimport { forEach } from \"lodash\";\r\n\r\nclass TorahAnytimeCollectionGridItemDecorator {\r\n @observable _userDeviceCollection = null;\r\n\r\n constructor(obj) {\r\n makeObservable(this);\r\n forEach(obj, (value, key) => {\r\n if (key === \"_userDeviceCollection\") {\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 userDeviceCollection() {\r\n return this._userDeviceCollection;\r\n }\r\n\r\n set userDeviceCollection(value) {\r\n this.setUserDeviceCollection(value);\r\n }\r\n\r\n @action.bound\r\n setUserDeviceCollection(value) {\r\n this._userDeviceCollection = value;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeCollectionGridItemDecorator;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { MrbSimpleSelectStore } from \"mrb/components/select\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { TorahAnytimeCollectionGridItemDecorator } from \"application/torah-anytime/models\";\r\n\r\nclass TorahAnytimeViewStore extends MrbBaseListViewStore {\r\n id = null;\r\n @observable torahAnytimePodcast;\r\n\r\n @computed get selectedDevice() {\r\n return this.rootStore.userDeviceStore.selectedDevice;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n queryConfig: {\r\n embed: \"speakers,speakers.speaker,topics,topics.topic\",\r\n orderBy: \"name\",\r\n orderDirection: \"asc\",\r\n },\r\n });\r\n makeObservable(this);\r\n this.id = id;\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.goToWizardPage(item),\r\n actions: {\r\n edit: {\r\n onClick: (item) => this.goToWizardPage(item),\r\n },\r\n delete: {\r\n onClick: (item) => this.delete(item),\r\n },\r\n },\r\n mapper: (item) => {\r\n return new TorahAnytimeCollectionGridItemDecorator({\r\n ...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.rootStore.userDeviceStore.selectedDevice);\r\n\r\n this.goToCreateNewCollectionPage = this.goToCreateNewCollectionPage.bind(this);\r\n this.displayTorahAnytimeAvailabilityModal = this.displayTorahAnytimeAvailabilityModal.bind(this);\r\n this.disableTorahAnytimeAvailability = this.disableTorahAnytimeAvailability.bind(this);\r\n\r\n this.torahAnytimeAvailabilityModal = new MrbModalParams(\r\n {\r\n onClose: () => {},\r\n },\r\n {\r\n disableTorahAnytimeAvailabilityModal: this.disableTorahAnytimeAvailability,\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.selectedDevice,\r\n () => {\r\n this.queryUtility.fetch();\r\n }\r\n );\r\n }\r\n\r\n onInit() {\r\n this.displayTorahAnytimeAvailabilityModal();\r\n return Promise.all([this.queryUtility.initialize(), this.fetchTorahAnytimePodcast(this.id)]);\r\n }\r\n\r\n find(params) {\r\n params.podcastId = this.id;\r\n return this.routeStore.findUserTorahAnytimeCollections(this.selectedDevice.id, params);\r\n }\r\n\r\n delete = (item) => {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete playlist?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deleteUserTorahAnytimeCollection(item);\r\n this.queryUtility.fetch();\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred. Unable to delete playlist.\",\r\n err\r\n );\r\n }\r\n },\r\n yesLabel: \"Delete\",\r\n noLabel: \"Cancel\",\r\n description: \"You won't be able to revert this action.\",\r\n });\r\n };\r\n\r\n goToCreateNewCollectionPage() {\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime.create\", { id: this.id });\r\n }\r\n\r\n goToWizardPage = (item) => {\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime.edit\", {\r\n id: this.id,\r\n collectionId: item.id,\r\n });\r\n };\r\n\r\n async fetchTorahAnytimePodcast(id) {\r\n try {\r\n const data = await this.routeStore.getPodcast(id);\r\n this.setTorahAnytimePodcast(data);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n displayTorahAnytimeAvailabilityModal() {\r\n if (this.rootStore.userStore.isTorahAnytimeAvailabilityVisible) {\r\n this.torahAnytimeAvailabilityModal.open();\r\n }\r\n }\r\n\r\n async disableTorahAnytimeAvailability() {\r\n try {\r\n this.torahAnytimeAvailabilityModal.close();\r\n this.rootStore.mainLoaderStore.suspend();\r\n await this.rootStore.userStore.disableTorahAnytimeAvailability();\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 @action.bound\r\n setTorahAnytimePodcast(item) {\r\n this.torahAnytimePodcast = item;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeViewStore;\r\n","import { computed, observable, action, makeObservable, toJS } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport {\r\n TorahAnytimeCreatePlaylist,\r\n TorahAnytimeSelectSpeakers,\r\n TorahAnytimeSelectTopics,\r\n} from \"application/torah-anytime/components\";\r\nimport { TorahAnytimeSelectionViewStore } from \"application/torah-anytime/stores\";\r\nimport { forEach, map } from \"lodash\";\r\n\r\nclass TorahAnytimeWizardViewStore extends MrbBaseViewStore {\r\n collectionId = null;\r\n podcastId = null;\r\n steps = [\r\n {\r\n title: \"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_TOPICS.STEP_TITLE\",\r\n id: \"topics\",\r\n component: TorahAnytimeSelectTopics,\r\n },\r\n {\r\n title: \"APPLICATION.TORAH_ANYTIME.EDIT.SELECT_SPEAKERS.STEP_TITLE\",\r\n id: \"speakers\",\r\n component: TorahAnytimeSelectSpeakers,\r\n },\r\n {\r\n title: \"APPLICATION.TORAH_ANYTIME.EDIT.CREATE_PLAYLIST.STEP_TITLE\",\r\n id: \"playlist\",\r\n component: TorahAnytimeCreatePlaylist,\r\n },\r\n ];\r\n\r\n @observable selectedSpeakers = [];\r\n @observable selectedTopics = [];\r\n @observable item = null;\r\n @observable torahAnytimePodcast = null;\r\n @observable selectedTopicsSpeakerIds = [];\r\n\r\n get maximumNumberOfSteps() {\r\n return this.steps.length;\r\n }\r\n\r\n @observable stepIndex = 0;\r\n\r\n @computed get currentStep() {\r\n if (this.steps[this.stepIndex].id === \"speakers\") {\r\n const topicIds = map(this.torahAnytimeSelectionViewStore.selectedTopics, (topic) => topic.topicId);\r\n const resource = { topicIds: topicIds };\r\n this.selectedTopicsSpeakerIds = this.routeStore.findSpeakerIdsByTopicIds(resource);\r\n }\r\n return this.steps[this.stepIndex];\r\n }\r\n\r\n @computed get hasNextStep() {\r\n return this.stepIndex < this.maximumNumberOfSteps - 1;\r\n }\r\n\r\n @computed get hasPreviousStep() {\r\n return this.stepIndex > 0;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const collectionId = rootStore.routerStore.routerState.params.collectionId;\r\n const podcastId = rootStore.routerStore.routerState.params.id;\r\n super(rootStore);\r\n makeObservable(this);\r\n this.collectionId = collectionId;\r\n this.podcastId = podcastId;\r\n this.routeStore = routeStore;\r\n this.torahAnytimeSelectionViewStore = new TorahAnytimeSelectionViewStore(rootStore);\r\n }\r\n\r\n onInit() {\r\n return Promise.all([this.initializeResource(), this.getTorahAnytimePodcast(this.podcastId)]);\r\n }\r\n\r\n @action.bound\r\n nextStep() {\r\n if (this.hasNextStep) {\r\n this.goToStep(this.stepIndex + 1);\r\n }\r\n }\r\n\r\n @action.bound\r\n previousStep() {\r\n if (this.hasPreviousStep) {\r\n this.goToStep(this.stepIndex - 1);\r\n }\r\n }\r\n\r\n @action.bound\r\n goToStep(step) {\r\n this.stepIndex = step;\r\n }\r\n\r\n @action.bound\r\n createCollection(data) {\r\n const speakers = toJS(this.torahAnytimeSelectionViewStore.selectedSpeakers);\r\n const topics = toJS(this.torahAnytimeSelectionViewStore.selectedTopics);\r\n const newCollection = this.prepareCollectionResource(data.name, topics, speakers);\r\n return this.routeStore.createUserTorahAnytimeCollection(newCollection);\r\n }\r\n\r\n @action.bound\r\n updateCollection(data) {\r\n const speakers = toJS(this.torahAnytimeSelectionViewStore.selectedSpeakers);\r\n const topics = toJS(this.torahAnytimeSelectionViewStore.selectedTopics);\r\n const newCollection = this.prepareCollectionResource(data.name, topics, speakers);\r\n newCollection.id = this.item.id;\r\n return this.routeStore.updateUserTorahAnytimeCollection(newCollection);\r\n }\r\n\r\n async initializeResource() {\r\n if (this.collectionId) {\r\n try {\r\n await this.getResource(this.collectionId);\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.routeStore.getUserTorahAnytimeCollection(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 this.torahAnytimeSelectionViewStore.initializeSelection(this.item.topics, this.item.speakers);\r\n }\r\n\r\n @action.bound\r\n async getTorahAnytimePodcast(podcastId) {\r\n if (podcastId) {\r\n try {\r\n const torahAnytimePodcast = await this.routeStore.getPodcast(podcastId);\r\n this.setTorahAnytimePodcast(torahAnytimePodcast);\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 @action.bound\r\n setTorahAnytimePodcast(podcast) {\r\n this.torahAnytimePodcast = podcast;\r\n }\r\n\r\n prepareCollectionResource(name, selectedTopics, selectedSpeakers) {\r\n if (selectedSpeakers) {\r\n forEach(selectedSpeakers, (speaker) => {\r\n speaker.speaker = null;\r\n });\r\n }\r\n if (selectedTopics) {\r\n forEach(selectedTopics, (topic) => {\r\n topic.topic = null;\r\n });\r\n }\r\n const collection = {\r\n name: name,\r\n podcastId: this.podcastId,\r\n speakers: selectedSpeakers,\r\n topics: selectedTopics,\r\n };\r\n\r\n return collection;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeWizardViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { TorahAnytimeService, UserTorahAnytimeCollectionService, UserContentService } from \"common/services\";\r\n\r\nclass TorahAnytimeWizardRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(TorahAnytimeService);\r\n this.userTorahAnytimeCollectionService = rootStore.createApplicationService(UserTorahAnytimeCollectionService);\r\n this.userContentService = rootStore.createApplicationService(UserContentService);\r\n }\r\n\r\n async findTopics(params, abortController) {\r\n const response = await this.service.findTopics(params, abortController);\r\n return response.data;\r\n }\r\n\r\n async findSpeakers(params, abortController) {\r\n const response = await this.service.findSpeakers(params, abortController);\r\n return response.data;\r\n }\r\n\r\n async findSpeakersByGender(filter) {\r\n const response = await this.service.findSpeakersByGender(filter);\r\n return response.data;\r\n }\r\n\r\n async findSpeakerIdsByTopicIds(filter) {\r\n const response = await this.service.findSpeakerIdsByTopicIds(filter);\r\n return response.data;\r\n }\r\n\r\n async createUserTorahAnytimeCollection(data) {\r\n const response = await this.userTorahAnytimeCollectionService.create(data);\r\n return response.data;\r\n }\r\n\r\n async updateUserTorahAnytimeCollection(data) {\r\n const response = await this.userTorahAnytimeCollectionService.update(data);\r\n return response.data;\r\n }\r\n\r\n async getUserTorahAnytimeCollection(id) {\r\n const response = await this.userTorahAnytimeCollectionService.get(id, {\r\n embed: \"topics,topics.topic,speakers,speakers.speaker\",\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 return response.data;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeWizardRouteStore;\r\n","import React from \"react\";\r\nimport { TorahAnytimeCollectionListItemTemplate } from \"themes/application/torah-anytime/components\";\r\nimport { TorahAnytimeCollectionListItemViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeCollectionListItemViewStore(rootStore, componentProps),\r\n \"torahAnytimeCollectionListItemViewStore\"\r\n)\r\nclass TorahAnytimeCollectionListItem extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeCollectionListItem;\r\n","import React from \"react\";\r\nimport { TorahAnytimeCreatePlaylistTemplate } from \"themes/application/torah-anytime/components\";\r\nimport { TorahAnytimeCollectionEditViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeCollectionEditViewStore(rootStore, componentProps),\r\n \"torahAnytimeCollectionEditViewStore\"\r\n)\r\nclass TorahAnytimeCreatePlaylist extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeCreatePlaylist;\r\n","import React from \"react\";\r\nimport { TorahAnytimeHeaderTemplate } from \"themes/application/torah-anytime/components\";\r\n\r\nfunction TorahAnytimeHeader(props) {\r\n return ;\r\n}\r\n\r\nexport default TorahAnytimeHeader;\r\n","import React from \"react\";\r\nimport { TorahAnytimeSelectSpeakersTemplate } from \"themes/application/torah-anytime/components\";\r\nimport { TorahAnytimeSelectSpeakersViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeSelectSpeakersViewStore(rootStore, componentProps),\r\n \"torahAnytimeSelectSpeakersViewStore\"\r\n)\r\nclass TorahAnytimeSelectSpeakers extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSelectSpeakers;\r\n","import React from \"react\";\r\nimport { TorahAnytimeSelectTopicsTemplate } from \"themes/application/torah-anytime/components\";\r\nimport { TorahAnytimeSelectTopicsViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeSelectTopicsViewStore(rootStore, componentProps),\r\n \"torahAnytimeSelectTopicsViewStore\"\r\n)\r\nclass TorahAnytimeSelectTopics extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeSelectTopics;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { HomePageLayout } from \"application/home/components\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport {\r\n TorahAnytimeHeader,\r\n TorahAnytimeCollectionListItem,\r\n TorahAnytimeAvailabilityModal,\r\n} from \"application/torah-anytime/components\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbLineContentLoader } from \"baasic-react-bootstrap/src\";\r\n\r\nfunction TorahAnytimeTemplate({ torahAnytimeViewStore, t }) {\r\n const { gridStore, goToCreateNewCollectionPage, torahAnytimeAvailabilityModal } = torahAnytimeViewStore;\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n (\r\n \r\n )}\r\n t={t}\r\n cellRender={({ item, ...props }) => (\r\n \r\n )}\r\n emptyStateRender={() => }\r\n />\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nTorahAnytimeTemplate.propTypes = {\r\n torahAnytimeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst GridHeader = observer(function GridHeader({ torahAnytimeViewStore, t }) {\r\n const { gridStore, goToCreateNewCollectionPage } = torahAnytimeViewStore;\r\n return (\r\n gridStore.dataInitialized &&\r\n gridStore.hasData && (\r\n
\r\n

{t(\"APPLICATION.TORAH_ANYTIME.LIST.MY_PLAYLISTS\")}

\r\n \r\n
\r\n )\r\n );\r\n});\r\n\r\nfunction NoDataEmptyState({ onClickCreateNew, t }) {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

{t(\"APPLICATION.TORAH_ANYTIME.LIST.NO_DATA.TITLE\")}

\r\n

{t(\"APPLICATION.TORAH_ANYTIME.LIST.NO_DATA.DESCRIPTION\")}

\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(TorahAnytimeTemplate);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { HomePageLayout } from \"application/home/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction TorahAnytimeWizardTemplate({ torahAnytimeWizardViewStore, t }) {\r\n const { currentStep, routeStore, torahAnytimeSelectionViewStore } = torahAnytimeWizardViewStore;\r\n return (\r\n \r\n {\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nTorahAnytimeWizardTemplate.propTypes = {\r\n torahAnytimeWizardViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(TorahAnytimeWizardTemplate);\r\n","import React from \"react\";\r\nimport { TorahAnytimeTemplate } from \"themes/application/torah-anytime/pages\";\r\nimport { TorahAnytimeViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeViewStore(rootStore, componentProps),\r\n \"torahAnytimeViewStore\"\r\n)\r\nclass TorahAnytime extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytime;\r\n","import React from \"react\";\r\nimport { TorahAnytimeWizardTemplate } from \"themes/application/torah-anytime/pages\";\r\nimport { TorahAnytimeWizardViewStore } from \"application/torah-anytime/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TorahAnytimeWizardViewStore(rootStore, componentProps),\r\n \"torahAnytimeWizardViewStore\"\r\n)\r\nclass TorahAnytimeWizard extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TorahAnytimeWizard;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { Home, HomeStation, HomePodcast, HomePodcastGroup } from \"application/home/pages\";\r\nimport { TorahAnytime, TorahAnytimeWizard } from \"application/torah-anytime/pages\";\r\nimport {\r\n HomeRouteStore,\r\n HomeStationRouteStore,\r\n HomePodcastRouteStore,\r\n HomePodcastGroupRouteStore,\r\n} from \"application/home/stores\";\r\nimport { TorahAnytimeRouteStore, TorahAnytimeWizardRouteStore } from \"application/torah-anytime/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"application.home\",\r\n routes: [\r\n {\r\n name: \"master.application.home\",\r\n pattern: \"/home\",\r\n children: [\r\n {\r\n name: \"master.application.home.list\",\r\n pattern: \"\",\r\n component: Home,\r\n store: HomeRouteStore,\r\n data: {\r\n title: \"APPLICATION.HOME.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.application.home.station\",\r\n pattern: \"/station/:id\",\r\n component: HomeStation,\r\n store: HomeStationRouteStore,\r\n },\r\n {\r\n name: \"master.application.home.podcast\",\r\n pattern: \"/podcast/:id\",\r\n component: HomePodcast,\r\n store: HomePodcastRouteStore,\r\n },\r\n {\r\n name: \"master.application.home.podcast-group\",\r\n pattern: \"/podcast/:id/group\",\r\n component: HomePodcastGroup,\r\n store: HomePodcastGroupRouteStore,\r\n },\r\n {\r\n name: \"master.application.home.torah-anytime\",\r\n pattern: \"/torahanytime/:id\",\r\n component: TorahAnytime,\r\n store: TorahAnytimeRouteStore,\r\n },\r\n {\r\n name: \"master.application.home.torah-anytime.create\",\r\n pattern: \"torahanytime/:id/collection/create\",\r\n component: TorahAnytimeWizard,\r\n store: TorahAnytimeWizardRouteStore,\r\n },\r\n {\r\n name: \"master.application.home.torah-anytime.edit\",\r\n pattern: \"/torahanytime/:id/collection/:collectionId/edit\",\r\n component: TorahAnytimeWizard,\r\n store: TorahAnytimeWizardRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.HOME\",\r\n order: 2,\r\n icon: \"home\",\r\n route: \"master.application.home.list\",\r\n },\r\n ],\r\n });\r\n})();\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 { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction ProducerRevenueTransferSuccessModalTemplate({ modalParams, t }) {\r\n const { params, data = {} } = modalParams;\r\n const formattedPrice = currencyFormatter.format(data.amount, {\r\n currency: \"USD\",\r\n });\r\n return (\r\n \r\n
\r\n
\r\n

Success!

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

{formattedPrice} has been transferred to your Stripe Connect account.

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerRevenueTransferSuccessModalTemplate.propTypes = {\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(ProducerRevenueTransferSuccessModalTemplate);\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\n\r\nfunction ProducerSummaryPreviewTemplate({ producerRevenueViewStore, t }) {\r\n const { summaryData, loaderStore, producers } = producerRevenueViewStore;\r\n return (\r\n
\r\n

Summary

\r\n
\r\n }>\r\n {() => (\r\n
\r\n {summaryData && (\r\n
\r\n {producers.length === 1 && (\r\n \r\n
\r\n
\r\n

Producer

\r\n\r\n

\r\n {summaryData.producerName}\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 ? summaryData.accountBalance : 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\nProducerSummaryPreviewTemplate.propTypes = {\r\n producerPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(ProducerSummaryPreviewTemplate);\r\n","import React from \"react\";\r\n\r\nconst ProducerTopTrendingEmptyStateTemplate = () => {\r\n return (\r\n
\r\n \r\n

No stats

\r\n

No content found.

\r\n
\r\n );\r\n};\r\n\r\nexport default ProducerTopTrendingEmptyStateTemplate;\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ProducerRevenueLoaderTemplate = (props) => {\r\n const loaderHeight = 110;\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 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 ProducerRevenueLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ProducerStatsLoaderTemplate = (props) => {\r\n const { row = 10, 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 ? 30 : 2;\r\n let imgY = loadMore ? 16 : 3;\r\n\r\n for (let i = 0; i < row; i++) {\r\n let textWidth = Math.random() * 120 + 60;\r\n items.push(\r\n \r\n {loadMore && i === 0 && }\r\n \r\n\r\n \r\n\r\n \r\n {loaderSml && }\r\n \r\n \r\n );\r\n\r\n y += 56;\r\n imgY += 56.33;\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 ProducerStatsLoaderTemplate;\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ProducerTotalLoaderTemplate = () => {\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 return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProducerTotalLoaderTemplate;\r\n","import React from \"react\";\r\nimport { ProducerRevenueTransferSuccessModalTemplate } from \"themes/application/producer/components\";\r\n\r\nfunction ProducerRevenueTransferSuccessModal(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerRevenueTransferSuccessModal;\r\n","import React from \"react\";\r\nimport { ProducerSummaryPreviewTemplate } from \"themes/application/producer/components\";\r\n\r\nfunction ProducerSummaryPreview(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerSummaryPreview;\r\n","import React from \"react\";\r\nimport { ProducerRevenueLoaderTemplate } from \"themes/application/producer/components\";\r\n\r\nfunction ProducerRevenueLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerRevenueLoader;\r\n","import React from \"react\";\r\nimport { ProducerStatsLoaderTemplate } from \"themes/application/producer/components\";\r\n\r\nfunction ProducerStatsLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerStatsLoader;\r\n","import React from \"react\";\r\nimport { ProducerTotalLoaderTemplate } from \"themes/application/producer/components\";\r\n\r\nfunction ProducerTotalLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerTotalLoader;\r\n","import { useEffect, useState } from \"react\";\r\n\r\nconst useElementScrollPosition = (elem) => {\r\n const [elemScrollPosition, setElemScrollPosition] = useState(0);\r\n\r\n useEffect(() => {\r\n if (!elem) return;\r\n\r\n const updatePosition = () => {\r\n setElemScrollPosition(elem.scrollLeft);\r\n }\r\n\r\n elem.addEventListener(\"scroll\", updatePosition);\r\n\r\n updatePosition();\r\n\r\n return () => elem.removeEventListener(\"scroll\", updatePosition);\r\n }, [elem]);\r\n\r\n return elemScrollPosition;\r\n};\r\n\r\nexport default useElementScrollPosition;","import { useEffect, useState } from \"react\";\r\n\r\n\r\nfunction useWindowSize() {\r\n // Initialize state with undefined width/height so server and client renders match\r\n // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/\r\n const [windowSize, setWindowSize] = useState({\r\n width: 0,\r\n height: 0,\r\n });\r\n\r\n useEffect(() => {\r\n // Handler to call on window resize\r\n function handleResize() {\r\n // Set window width/height to state\r\n setWindowSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n }\r\n // Add event listener\r\n window.addEventListener(\"resize\", handleResize);\r\n // Call handler right away so state gets updated with initial window size\r\n handleResize();\r\n // Remove event listener on cleanup\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []); // Empty array ensures that effect is only run on mount\r\n\r\n return windowSize;\r\n}\r\n\r\nexport default useWindowSize;","const useSideScroll = ({ element, direction, speed, distance, step }) => {\r\n let scrollAmount = 0;\r\n\r\n const 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\r\n scrollAmount += step;\r\n\r\n if (scrollAmount >= distance) {\r\n window.clearInterval(slideTimer);\r\n }\r\n }, speed);\r\n}\r\n\r\nexport default useSideScroll;\r\n\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\n/* eslint-disable react-hooks/rules-of-hooks */\r\nimport { mergeCss } from \"baasic-react-bootstrap/src/common\";\r\nimport { useElementScrollPosition, useSideScroll, useWindowSize } from \"common/hooks\";\r\n\r\nconst Tabs = (props) => {\r\n const { value, id, options, disabled, onChange } = props;\r\n\r\n const [disabledArrows, setDisabledArrows] = useState(false);\r\n const [tabsRef, setTabsRef] = useState();\r\n const [scrollPosition, setScrollPosition] = useState({ start: true, end: false });\r\n\r\n const elemScrollPosition = useElementScrollPosition(tabsRef || null);\r\n const { width } = useWindowSize();\r\n\r\n const handleChangeOnResize = useCallback(() => {\r\n if (!tabsRef) return;\r\n const scrollStart = tabsRef.scrollLeft === 0;\r\n const scrollEnd = tabsRef.scrollWidth <= Math.ceil(tabsRef.scrollLeft) + Math.ceil(tabsRef.clientWidth) + 12;\r\n\r\n if (tabsRef.scrollLeft > 0 && !scrollEnd) {\r\n setScrollPosition({ start: false, end: false });\r\n } else if (scrollStart) {\r\n setScrollPosition({ start: true, end: false });\r\n } else if (scrollEnd) {\r\n setScrollPosition({ start: false, end: true });\r\n }\r\n }, [tabsRef]);\r\n\r\n useEffect(() => {\r\n handleChangeOnResize();\r\n }, [elemScrollPosition, handleChangeOnResize]);\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n handleChangeOnResize();\r\n }, 400);\r\n\r\n return () => clearTimeout(timer);\r\n }, [width, tabsRef, handleChangeOnResize]);\r\n\r\n const handleScrollAction = (direction) => {\r\n if (\r\n !tabsRef ||\r\n (direction === \"left\" && scrollPosition.start) ||\r\n (direction === \"right\" && scrollPosition.end)\r\n ) {\r\n return;\r\n }\r\n\r\n useSideScroll({\r\n element: tabsRef,\r\n direction: direction,\r\n speed: 20,\r\n distance: 400,\r\n step: 20,\r\n });\r\n\r\n setTimeout(() => {\r\n handleChangeOnResize();\r\n }, 400);\r\n };\r\n\r\n return (\r\n
\r\n {disabledArrows ? null : (\r\n handleScrollAction(\"left\")}\r\n >\r\n \r\n \r\n )}\r\n\r\n {\r\n if (!tabsRef) return;\r\n setTabsRef(tabsRef);\r\n setDisabledArrows(tabsRef.scrollWidth <= tabsRef.clientWidth);\r\n }}\r\n >\r\n {options.map((option, index) => {\r\n const itemId = `${id}_${option.id}`;\r\n const isChecked = value === option.id;\r\n\r\n return (\r\n \r\n onChange(option.id)}\r\n tabIndex={0}\r\n className={mergeCss(\r\n \"c-segmented c-segmented--secondary c-segmented--secondary--lrg\",\r\n index === 0 ? \"c-segmented--first\" : \"\",\r\n index === options.length - 1 ? \"c-segmented--last\" : \"\",\r\n isChecked ? \"active\" : \"\"\r\n )}\r\n />\r\n\r\n \r\n \r\n );\r\n })}\r\n
\r\n\r\n {disabledArrows ? null : (\r\n handleScrollAction(\"right\")}\r\n >\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Tabs;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { ProducerReportsTable } from \"common/components/producer\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { ProducerRevenueLoader, ProducerSummaryPreview } from \"application/producer/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { ProducerAccountPreviewBalance, ProducerAccountPreviewRevenueTransaction } from \"common/components/producer\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbButton } from \"baasic-react-bootstrap/src\";\r\nimport Tabs from \"common/components/tabs/Tabs\";\r\n\r\nfunction ProducerRevenueTemplate({ producerRevenueViewStore, t }) {\r\n const { reportsGridStore, revenueGridStore, balanceGridStore, producers, selectedProducerId, selectProducer } =\r\n producerRevenueViewStore;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.PRODUCER.REVENUE.REPORTS_TITLE\")}\r\n

\r\n {producers && producers.length > 1 && (\r\n
\r\n {\r\n selectProducer(value);\r\n }}\r\n />\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerRevenueTemplate.propTypes = {\r\n producerRevenueViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst Actions = observer(function Actions({ producerRevenueViewStore, t }) {\r\n const {\r\n completedOnboarding,\r\n isStripeAccountConnected,\r\n createStripeAccount,\r\n stripeAccountLink,\r\n isCreateStripeAccountButtonDisabled,\r\n loaderStore,\r\n } = producerRevenueViewStore;\r\n return (\r\n
\r\n

Actions

\r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n {completedOnboarding && (\r\n \r\n Pay out balance\r\n \r\n )}\r\n {!completedOnboarding && !isStripeAccountConnected && (\r\n
\r\n \r\n
\r\n )}\r\n {!completedOnboarding && isStripeAccountConnected && (\r\n
\r\n

\r\n Please click button below to complete account creation\r\n

\r\n (window.location.href = stripeAccountLink)}\r\n className=\"c-btn c-btn--base c-btn--primary c-btn--full u-mar--bottom--xsml\"\r\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 defaultTemplate(ProducerRevenueTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { ProducerPaymentReportSummary } from \"administration/producer/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { ProducerReportLayout, ProducerReport } from \"common/components/producer\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction ProducerRevenueReportTemplate({ producerRevenueReportViewStore, t }) {\r\n return (\r\n }\r\n t={t}\r\n >\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nProducerRevenueReportTemplate.propTypes = {\r\n producerRevenueReportViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction BackButton({ producerId }) {\r\n return (\r\n \r\n \r\n \r\n \r\n Back\r\n \r\n );\r\n}\r\n\r\nexport default defaultTemplate(ProducerRevenueReportTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbEditFormLayout } from \"mrb/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { CurrencyInputField } from \"common/components\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { ProducerRevenueTransferSuccessModal } from \"application/producer/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction ProducerRevenueTransferTemplate({ producerRevenueTransferViewStore, t }) {\r\n const { form, currentAccountBalance, newAccountBalance, transferRevenueSuccessModal } =\r\n producerRevenueTransferViewStore;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Producer Account\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

Current Account Balance

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

New Account Balance

\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\n );\r\n}\r\nProducerRevenueTransferTemplate.propTypes = {\r\n producerRevenueTransferViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(ProducerRevenueTransferTemplate);\r\n","import React from \"react\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport PropTypes from \"prop-types\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { producerTypes } from \"common/constants\";\r\n\r\nfunction ProducerPreviewTemplate({ producerPreviewViewStore, renderChildRoute, t, ...props }) {\r\n const { selectedTab, setSelectedTab, producerTypeSlug } = producerPreviewViewStore;\r\n\r\n function getHeaderTitle() {\r\n if (producerTypeSlug === producerTypes.podcasterSlug) {\r\n return t(\"APPLICATION.PRODUCER.PREVIEW.PODCASTER_HEADER_TITLE\");\r\n } else if (producerTypeSlug === producerTypes.artistSlug) {\r\n return t(\"APPLICATION.PRODUCER.PREVIEW.ARTIST_HEADER_TITLE\");\r\n } else {\r\n return \"Producer Account\";\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
{getHeaderTitle()}
\r\n
\r\n\r\n
\r\n {producerTypeSlug !== producerTypes.podcasterSlug && (\r\n \r\n setSelectedTab(1)}\r\n className={mergeCss(\r\n \"c-tabs__item\",\r\n selectedTab.title === \"Dashboard\" && \"c-tabs__item--active\"\r\n )}\r\n routeName=\"master.application.producer.preview.dashboard\"\r\n >\r\n {t(\"APPLICATION.PRODUCER.PREVIEW.DASHBOARD_TITLE\")}\r\n \r\n setSelectedTab(2)}\r\n className={mergeCss(\r\n \"c-tabs__item\",\r\n selectedTab.title === \"Revenue\" && \"c-tabs__item--active\"\r\n )}\r\n routeName=\"master.application.producer.preview.revenue\"\r\n >\r\n {t(\"APPLICATION.PRODUCER.PREVIEW.REVENUE_TITLE\")}\r\n \r\n \r\n )}\r\n
\r\n\r\n {renderChildRoute(props)}\r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerPreviewTemplate.propTypes = {\r\n producerPreviewViewStore: PropTypes.object.isRequired,\r\n renderChildRoute: PropTypes.func,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(ProducerPreviewTemplate);\r\n","import React, { useRef } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { producerTypes } from \"common/constants\";\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\nimport { MrbRadioButtons } from \"baasic-react-bootstrap/src\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { ProducerStatsLoader, ProducerTotalLoader } from \"application/producer/components\";\r\nimport { StatsWidgetEmptyState } from \"common/components/empty-state\";\r\n\r\nfunction ProducerDashboardTemplate({ producerDashboardViewStore, t }) {\r\n const {\r\n nakiNigunStatsInfiniteScrollStore,\r\n nakiTalesStatsInfiniteScrollStore,\r\n producerTypeSlug,\r\n producerDashboardTimeRangeViewStore,\r\n statsFilterOptions,\r\n nakiNigunFilterSelectedOptionValue,\r\n nakiTalesFilterSelectedOptionValue,\r\n setNakiNigunFilterSelectedOptionValue,\r\n setNakiTalesFilterSelectedOptionValue,\r\n nakiNigunTotalListeners,\r\n nakiTalesTotalListeners,\r\n } = producerDashboardViewStore;\r\n\r\n function getHeaderTitle() {\r\n if (producerTypeSlug === producerTypes.podcasterSlug) {\r\n return t(\"APPLICATION.PRODUCER.PREVIEW.PODCASTER_HEADER_TITLE\");\r\n } else if (producerTypeSlug === producerTypes.artistSlug) {\r\n return t(\"APPLICATION.PRODUCER.PREVIEW.ARTIST_HEADER_TITLE\");\r\n } else {\r\n return \"Producer Account\";\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n {getHeaderTitle()}\r\n \r\n
\r\n
\r\n
\r\n {producerTypeSlug === producerTypes.podcasterSlug ? (\r\n
\r\n \r\n
\r\n ) : producerTypeSlug === producerTypes.artistSlug ? (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n ) : (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerDashboardTemplate.propTypes = {\r\n producerDashboardViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst DatePickerTemplate = observer(function DatePickerTemplate({ producerDashboardTimeRangeViewStore, t }) {\r\n const { filter, maxDate, minDate, applyFilter, setToDate, setFromDate, isDateRangeDisabled, timeRangeSelectStore } =\r\n producerDashboardTimeRangeViewStore;\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\nconst NakiTalesStats = observer(function NakiTalesStats({\r\n nakiTalesStatsInfiniteScrollStore,\r\n title,\r\n statsFilterOptions,\r\n nakiTalesFilterSelectedOptionValue,\r\n setNakiTalesFilterSelectedOptionValue,\r\n totalListeners,\r\n t,\r\n}) {\r\n const { gridStore } = nakiTalesStatsInfiniteScrollStore;\r\n const scrollParentRef = useRef(null);\r\n return (\r\n
\r\n
\r\n

{title}

\r\n \r\n
\r\n {totalListeners != null ? (\r\n nakiTalesFilterSelectedOptionValue === 1 ? (\r\n
\r\n

{t(\"APPLICATION.PRODUCER.DASHBOARD.TOTAL.STREAMS\")}

\r\n

{numberFormatter.format(totalListeners)}

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

{t(\"APPLICATION.PRODUCER.DASHBOARD.TOTAL.LISTENERS\")}

\r\n

{numberFormatter.format(totalListeners)}

\r\n
\r\n )\r\n ) : (\r\n \r\n )}\r\n
\r\n }\r\n loadMoreLoader={}\r\n emptyStateRenderer={() => (\r\n \r\n )}\r\n classNameOverride=\"\"\r\n store={gridStore}\r\n scrollParent={scrollParentRef.current}\r\n cellRenderer={(props) => (\r\n
\r\n
\r\n
\r\n {props.index + 1}.\r\n {props.item.title ?

{props.item.title}

: Unknown podcast}\r\n
\r\n
\r\n

{numberFormatter.format(props.item.score)}

\r\n
\r\n
\r\n )}\r\n />\r\n
\r\n
\r\n );\r\n});\r\n\r\nconst NakiNigunStats = observer(function NakiNigunStats({\r\n nakiNigunStatsInfiniteScrollStore,\r\n title,\r\n statsFilterOptions,\r\n nakiNigunFilterSelectedOptionValue,\r\n setNakiNigunFilterSelectedOptionValue,\r\n totalListeners,\r\n t,\r\n}) {\r\n const { gridStore } = nakiNigunStatsInfiniteScrollStore;\r\n const scrollParentRef = useRef(null);\r\n\r\n return (\r\n
\r\n
\r\n

{title}

\r\n \r\n
\r\n {totalListeners != null ? (\r\n nakiNigunFilterSelectedOptionValue === 1 ? (\r\n
\r\n

{t(\"APPLICATION.PRODUCER.DASHBOARD.TOTAL.STREAMS\")}

\r\n

{numberFormatter.format(totalListeners)}

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

{t(\"APPLICATION.PRODUCER.DASHBOARD.TOTAL.LISTENERS\")}

\r\n

{numberFormatter.format(totalListeners)}

\r\n
\r\n )\r\n ) : (\r\n \r\n )}\r\n\r\n
\r\n }\r\n loadMoreLoader={}\r\n emptyStateRenderer={() => (\r\n \r\n )}\r\n classNameOverride=\"\"\r\n store={gridStore}\r\n scrollParent={scrollParentRef.current}\r\n cellRenderer={(props) => (\r\n
\r\n
\r\n
\r\n {props.index + 1}.\r\n {props.item.title ?

{props.item.title}

: Unknown album}\r\n
\r\n
\r\n

{numberFormatter.format(props.item.score)}

\r\n
\r\n
\r\n )}\r\n />\r\n
\r\n
\r\n );\r\n});\r\n\r\nexport default defaultTemplate(ProducerDashboardTemplate);\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport {\r\n NakiNigunAnalyticsService,\r\n PodcastAnalyticsService,\r\n ProducerReportService,\r\n ProducerUserAccountService,\r\n} from \"common/services\";\r\n\r\nclass ProducerRevenueRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(ProducerReportService);\r\n this.producerUserAccountService = rootStore.createApplicationService(ProducerUserAccountService);\r\n this.podcastAnalyticsService = rootStore.createApplicationService(PodcastAnalyticsService);\r\n this.nakiNigunAnalyticsService = rootStore.createApplicationService(NakiNigunAnalyticsService);\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 getProducerAccountSummary() {\r\n const response = await this.producerUserAccountService.getProducerAccountSummary();\r\n return response.data;\r\n }\r\n\r\n async getStripeConnectOnboardingStatus() {\r\n const response = await this.producerUserAccountService.getStripeConnectOnboardingStatus();\r\n return response.data;\r\n }\r\n\r\n async createStripeConnectLink(resource) {\r\n const response = await this.producerUserAccountService.createStripeConnectLink(resource);\r\n return response.data;\r\n }\r\n\r\n async getProducerAccountBalance(filter) {\r\n const response = await this.producerUserAccountService.getProducerAccountBalance(filter);\r\n return response.data;\r\n }\r\n\r\n async getProducerAccountRevenueTransaction(filter) {\r\n const response = await this.producerUserAccountService.getProducerAccountRevenueTransaction(filter);\r\n return response.data;\r\n }\r\n\r\n async getProducers() {\r\n const response = await this.producerUserAccountService.getProducers();\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueRouteStore;\r\n","import { action, computed, makeObservable, observable, 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 { ProducerPreviewReportPeriodCell, ProducerPreviewReportPlaybackTimeCell } from \"common/components/producer\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { MrbQueryUtility } from \"mrb/core/filter\";\r\nimport { isNil } from \"lodash\";\r\nimport moment from \"moment\";\r\n\r\nclass ProducerRevenueViewStore extends MrbBaseViewStore {\r\n range = null;\r\n @observable.ref summaryData = null;\r\n @observable reportsGridStore = null;\r\n @observable revenueGridStore = null;\r\n @observable balanceGridStore = null;\r\n reportsQueryUtility = null;\r\n revenueQueryUtility = null;\r\n balanceQueryUtility = null;\r\n @observable producers = null;\r\n @observable selectedProducerId = null;\r\n @observable completedOnboarding = false;\r\n @observable.ref onboardingStatus = null;\r\n @observable stripeAccountLink;\r\n @observable isCreateStripeAccountButtonDisabled = false;\r\n\r\n producerId = null;\r\n\r\n @computed get isStripeAccountConnected() {\r\n if (this.summaryData) {\r\n return !isNil(this.summaryData.stripeAccountId);\r\n }\r\n return false;\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 this.producerId = this.rootStore.routerStore.routerState.queryParams.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\r\n this.reportsQueryUtility = new MrbQueryUtility(\r\n this.rootStore,\r\n async (filter) => {\r\n this.reportsFetchResources(filter);\r\n },\r\n {\r\n orderBy: \"monthOfYear\",\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 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.setReportsGridStore(\r\n new MrbTableViewStore(this.rootStore, this.reportsQueryUtility, {\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.application.producer.report\",\r\n {\r\n id: this.selectedProducerId,\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 sortable: true,\r\n cell: ProducerPreviewReportPlaybackTimeCell,\r\n },\r\n {\r\n key: \"totalProducerPlaybacks\",\r\n title: \"Playback Points\",\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.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\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 },\r\n ],\r\n })\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 reportsFetchResources(filter) {\r\n this.reportsGridStore.suspend();\r\n try {\r\n filter.producerId = this.selectedProducerId;\r\n const response = await this.fetchReportsData(filter);\r\n runInAction(() => {\r\n this.reportsGridStore.setData(response);\r\n this.reportsGridStore.resume();\r\n });\r\n } catch (err) {\r\n this.reportsGridStore.resume();\r\n this.onFetchError(err);\r\n }\r\n }\r\n\r\n async revenueFetchResources(filter) {\r\n this.revenueGridStore.suspend();\r\n try {\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 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 fetchReportsData(filter) {\r\n try {\r\n return this.routeStore.findProducerReports(filter);\r\n } catch (error) {\r\n this.onFetchError(error);\r\n }\r\n }\r\n\r\n async fetchRevenueData(filter) {\r\n try {\r\n return await this.routeStore.getProducerAccountRevenueTransaction(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.getProducerAccountBalance(filter);\r\n } catch (error) {\r\n this.onFetchError(error);\r\n }\r\n }\r\n\r\n async onInit() {\r\n await Promise.all([\r\n this.fetchProducers(),\r\n this.fetchAccountSummaryData(),\r\n this.revenueQueryUtility.initialize(),\r\n this.balanceQueryUtility.initialize(),\r\n ]);\r\n }\r\n\r\n @action.bound\r\n setStripeAccountOnboardingStatus(data) {\r\n this.onboardingStatus = data;\r\n this.setCompletedOnboarding(data.chargesEnabled && data.detailsSubmitted);\r\n }\r\n\r\n @action.bound\r\n setCompletedOnboarding(state) {\r\n this.completedOnboarding = state;\r\n }\r\n\r\n @action.bound\r\n setStripeAccountLink(data) {\r\n this.stripeAccountLink = data;\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 setReportsGridStore(reportsGridStore) {\r\n this.reportsGridStore = reportsGridStore;\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 setProducers(producers) {\r\n this.producers = producers;\r\n }\r\n\r\n @action.bound\r\n setIsCreateStripeAccountButtonDisabled(state) {\r\n this.isCreateStripeAccountButtonDisabled = state;\r\n }\r\n\r\n @action.bound\r\n async selectProducer(producerId) {\r\n this.selectedProducerId = producerId;\r\n await this.reportsQueryUtility.initialize();\r\n }\r\n\r\n @action.bound\r\n async createStripeAccount() {\r\n try {\r\n this.setIsCreateStripeAccountButtonDisabled(true);\r\n const resource = { returnUrl: this.generateCurrentUrl(), refreshUrl: this.generateCurrentUrl() };\r\n const data = await this.routeStore.createStripeConnectLink(resource);\r\n this.setStripeAccountLink(data);\r\n\r\n await this.fetchAccountSummaryData();\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 fetchAccountSummaryData() {\r\n try {\r\n const data = await this.routeStore.getProducerAccountSummary();\r\n this.setSummaryData(data);\r\n if (this.isStripeAccountConnected) {\r\n await this.fetchStripeAccountOnboardingStatus();\r\n\r\n if (isNil(this.stripeAccountLink) && !this.completedOnboarding) {\r\n await this.fetchStripeAccountLink();\r\n }\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 }\r\n }\r\n\r\n async fetchStripeAccountOnboardingStatus() {\r\n try {\r\n const data = await this.routeStore.getStripeConnectOnboardingStatus();\r\n this.setStripeAccountOnboardingStatus(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 fetchStripeAccountLink() {\r\n try {\r\n const resource = { returnUrl: this.generateCurrentUrl(), refreshUrl: this.generateCurrentUrl() };\r\n const data = await this.routeStore.createStripeConnectLink(resource);\r\n this.setStripeAccountLink(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 fetchProducers() {\r\n try {\r\n const producers = await this.routeStore.getProducers();\r\n this.setProducers(producers);\r\n if (!isNil(this.producerId)) {\r\n this.selectProducer(this.producerId);\r\n } else {\r\n this.selectProducer(producers[0].id);\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 }\r\n }\r\n\r\n generateCurrentUrl() {\r\n return `${window.location.origin}/producer/revenue`;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProducerReportService } from \"common/services\";\r\n\r\nclass ProducerRevenueReportRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(ProducerReportService);\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 ProducerRevenueReportRouteStore;\r\n","import { BaseProducerRevenueReportViewStore } from \"common/stores/producer\";\r\n\r\nclass ProducerRevenueReportViewStore extends BaseProducerRevenueReportViewStore {\r\n producerId = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, { maskUserNames: true });\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 ProducerRevenueReportViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProducerUserAccountService } from \"common/services\";\r\n\r\nclass ProducerRevenueTransferRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.producerUserAccountService = rootStore.createApplicationService(ProducerUserAccountService);\r\n }\r\n\r\n async getProducerAccountSummary() {\r\n const response = await this.producerUserAccountService.getProducerAccountSummary();\r\n return response.data;\r\n }\r\n\r\n async processPayoutToBankAccount(accountId, resource) {\r\n const response = await this.producerUserAccountService.processPayoutToBankAccount(accountId, resource);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueTransferRouteStore;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class ProducerRevenueTransferForm 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: \"APPLICATION.PRODUCER.REVENUE_TRANSFER.FIELDS.AMOUNT_LABEL\",\r\n placeholder: \"APPLICATION.PRODUCER.REVENUE_TRANSFER.FIELDS.AMOUNT_PLACEHOLDER\",\r\n rules: \"required|numeric|min:1\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { computed, action, makeObservable, observable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { ProducerRevenueTransferForm } from \"application/producer/forms\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { isString } from \"lodash\";\r\n\r\nclass ProducerRevenueTransferViewStore extends MrbBaseViewStore {\r\n onSubmit = null;\r\n @observable.ref producerUserAccount = null;\r\n\r\n @computed get currentAccountBalance() {\r\n if (this.producerUserAccount) {\r\n return this.producerUserAccount.accountBalance;\r\n }\r\n return 0;\r\n }\r\n\r\n @computed get newAccountBalance() {\r\n let amount = this.form.$(\"amount\").value || 0;\r\n if (isString(amount)) {\r\n amount = parseFloat(amount);\r\n }\r\n\r\n return Math.max(this.currentAccountBalance - amount, 0);\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 this.form = new ProducerRevenueTransferForm({\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 return this.transferRevenue(item);\r\n },\r\n });\r\n\r\n this.transferRevenueSuccessModal = new MrbModalParams(null, {\r\n onClickGoToProducerAccount: this.goToProducerAccount,\r\n });\r\n }\r\n\r\n async onInit() {\r\n await this.getProducerUserAccount();\r\n }\r\n\r\n @action.bound\r\n async transferRevenue(resource) {\r\n const amount = resource.amount;\r\n if (amount > this.currentAccountBalance) {\r\n this.form.invalidate(\"Insufficient amount in your account.\");\r\n return;\r\n }\r\n\r\n const formattedPrice = currencyFormatter.format(resource.amount, {\r\n currency: \"USD\",\r\n });\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Transfer revenue?\",\r\n description: `${formattedPrice} will be transferred to your Stripe Connect account.`,\r\n yesLabel: `Transfer ${formattedPrice}`,\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.processPayoutToBankAccount(\r\n this.producerUserAccount.producerUserAccountId,\r\n resource\r\n );\r\n\r\n this.transferRevenueSuccessModal.open({ amount: amount });\r\n } catch (err) {\r\n if (err.data.errorCode === applicationErrorCodes.producer.insufficientAccountBalance) {\r\n this.form.invalidate(\"Insufficient amount in your account.\");\r\n } else if (err.data.errorCode === applicationErrorCodes.producer.stripeConnectAccountNotExists) {\r\n this.form.invalidate(\"Stripe Connect account does not exists.\");\r\n } else if (err.data.errorCode === applicationErrorCodes.producer.producerUserAccountNotExists) {\r\n this.form.invalidate(\"Producer account does not exists.\");\r\n } else if (err.data.errorCode === applicationErrorCodes.producer.stripeConnectAccountNotEnabled) {\r\n this.form.invalidate(\"Stripe Connect account is not enabled.\");\r\n } else {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to transfer revenu. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n },\r\n });\r\n }\r\n\r\n @action.bound\r\n goToProducerAccount() {\r\n this.rootStore.routerStore.goTo(\"master.application.producer.preview.revenue\");\r\n }\r\n\r\n async getProducerUserAccount() {\r\n try {\r\n const account = await this.routeStore.getProducerAccountSummary();\r\n this.setProducerUserAccount(account);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load account. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n setProducerUserAccount(account) {\r\n this.producerUserAccount = account;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueTransferViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunAnalyticsService, PodcastAnalyticsService } from \"common/services\";\r\n\r\nclass ProducerDashboardRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.podcastAnalyticsService = rootStore.createApplicationService(PodcastAnalyticsService);\r\n this.nakiNigunAnalyticsService = rootStore.createApplicationService(NakiNigunAnalyticsService);\r\n }\r\n\r\n async getTrendingPodcasts(filter) {\r\n const response = await this.podcastAnalyticsService.getTrendingPodcastsForProducer(filter);\r\n return response.data;\r\n }\r\n\r\n async getTrendingAlbums(filter) {\r\n const response = await this.nakiNigunAnalyticsService.getTrendingAlbumsForProducer(filter);\r\n return response.data;\r\n }\r\n\r\n async getTrendingAlbumsTotalStreams(filter) {\r\n const response = await this.nakiNigunAnalyticsService.getTrendingAlbumsTotalStreamsForProducer(filter);\r\n return response.data;\r\n }\r\n\r\n async getTrendingPodcastsTotalStreams(filter) {\r\n const response = await this.podcastAnalyticsService.getTrendingPodcastsTotalStreamsForProducer(filter);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ProducerDashboardRouteStore;\r\n","import { action, makeObservable, observable, computed } from \"mobx\";\r\nimport { MrbSimpleSelectStore } from \"baasic-react-bootstrap/src\";\r\nimport moment from \"moment\";\r\nimport { find } from \"lodash\";\r\nimport \"moment-timezone\";\r\n\r\nconst 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\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\nconst timeZone = moment.tz.guess();\r\n\r\nclass ProducerDashboardTimeRangeViewStore {\r\n @observable filter = {\r\n to: moment().utc().tz(timeZone).endOf(\"week\").toISOString(),\r\n from: moment().utc().tz(timeZone).startOf(\"week\").toISOString(),\r\n previousCycleTo: moment().utc().tz(timeZone).subtract(1, \"week\").endOf(\"week\").toISOString(),\r\n previousCycleFrom: moment().utc().tz(timeZone).subtract(1, \"week\").startOf(\"week\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n\r\n maxDate = null;\r\n fetchTrendingAlbums = null;\r\n fetchTrendingPodcasts = null;\r\n\r\n @computed get isDateRangeDisabled() {\r\n return this.timeRangeSelectStore.value !== timeRangeType.custom;\r\n }\r\n\r\n @computed get minDate() {\r\n return moment(this.filter.from).toDate();\r\n }\r\n\r\n constructor(rootStore, { setDateFilter }) {\r\n this.rootStore = rootStore;\r\n makeObservable(this);\r\n this.maxDate = moment().startOf(\"day\").toDate();\r\n this.setDateFilter = setDateFilter;\r\n\r\n this.timeRangeSelectStore = new MrbSimpleSelectStore(\r\n {\r\n textKey: \"label\",\r\n valueKey: \"value\",\r\n actions: {\r\n onChange: async (newOption) => {\r\n this.timeRangeSelectStore.setSelectedItem(\r\n find(defaultDropdownOptions, (option) => option.value === newOption.value)\r\n );\r\n if (newOption.value !== timeRangeType.custom) {\r\n this.updateFilter(newOption.value);\r\n }\r\n },\r\n },\r\n },\r\n defaultDropdownOptions\r\n );\r\n this.timeRangeSelectStore.setSelectedItem(\r\n find(defaultDropdownOptions, (option) => option.value === timeRangeType.thisWeek)\r\n );\r\n }\r\n\r\n @action.bound\r\n updateFilter(value) {\r\n const now = moment().utc().tz(timeZone);\r\n switch (value) {\r\n case timeRangeType.today:\r\n this.filter = {\r\n to: moment(now).endOf(\"day\").toISOString(),\r\n from: moment(now).startOf(\"day\").toISOString(),\r\n previousCycleTo: moment(now).subtract(1, \"day\").endOf(\"day\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(1, \"day\").startOf(\"day\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.yesterday:\r\n this.filter = {\r\n to: moment(now).subtract(1, \"day\").endOf(\"day\").toISOString(),\r\n from: moment(now).subtract(1, \"day\").startOf(\"day\").toISOString(),\r\n previousCycleTo: moment(now).subtract(2, \"day\").endOf(\"day\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(2, \"day\").startOf(\"day\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.last3Days:\r\n this.filter = {\r\n to: moment(now).endOf(\"day\").toISOString(),\r\n from: moment(now).subtract(2, \"days\").startOf(\"day\").toISOString(),\r\n previousCycleTo: moment(now).subtract(2, \"days\").endOf(\"day\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(4, \"days\").startOf(\"day\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.thisWeek:\r\n this.filter = {\r\n to: moment(now).endOf(\"week\").toISOString(),\r\n from: moment(now).startOf(\"week\").toISOString(),\r\n previousCycleTo: moment(now).subtract(1, \"week\").endOf(\"week\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(1, \"week\").startOf(\"week\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.lastWeek:\r\n this.filter = {\r\n to: moment(now).subtract(1, \"week\").endOf(\"week\").toISOString(),\r\n from: moment(now).subtract(1, \"week\").startOf(\"week\").toISOString(),\r\n previousCycleTo: moment(now).subtract(2, \"weeks\").endOf(\"week\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(2, \"weeks\").startOf(\"week\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.thisMonth:\r\n this.filter = {\r\n to: moment(now).endOf(\"month\").toISOString(),\r\n from: moment(now).startOf(\"month\").toISOString(),\r\n previousCycleTo: moment(now).subtract(1, \"month\").endOf(\"month\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(1, \"month\").startOf(\"month\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n\r\n case timeRangeType.lastMonth:\r\n this.filter = {\r\n to: moment(now).subtract(1, \"month\").endOf(\"month\").toISOString(),\r\n from: moment(now).subtract(1, \"month\").startOf(\"month\").toISOString(),\r\n previousCycleTo: moment(now).subtract(2, \"months\").endOf(\"month\").toISOString(),\r\n previousCycleFrom: moment(now).subtract(2, \"months\").startOf(\"month\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n this.setDateFilter(this.filter);\r\n }\r\n\r\n @action.bound\r\n setFromDate(value) {\r\n this.filter.from = moment.utc(value).tz(this.filter.timeZone).startOf(\"day\").toISOString();\r\n }\r\n\r\n @action.bound\r\n setToDate(value) {\r\n this.filter.to = moment.utc(value).tz(this.filter.timeZone).endOf(\"day\").toISOString();\r\n }\r\n\r\n @action.bound\r\n applyFilter() {\r\n this.setDateFilter(this.filter);\r\n }\r\n}\r\n\r\nexport default ProducerDashboardTimeRangeViewStore;\r\n","import { MrbBaseInfiniteScrollListViewStore } from \"baasic-react-bootstrap/src\";\r\nimport \"moment-timezone\";\r\nimport { MrbInfiniteScrollGridViewStore } from \"mrb/components/infinite-scroll-grid\";\r\n\r\nclass ProducerDashboardInfiniteScrollStore extends MrbBaseInfiniteScrollListViewStore {\r\n constructor(rootStore, { setPagingFilter, fetchData }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n pageSize: 30,\r\n ignoreQueryParams: [\"page\", \"timeZone\", \"rpp\"],\r\n },\r\n });\r\n this.setPagingFilter = setPagingFilter;\r\n this.fetchData = fetchData;\r\n\r\n this.setGridStore(\r\n new MrbInfiniteScrollGridViewStore(this.rootStore, this.queryUtility, {\r\n generateKey: (item) => item.nakiNigunAlbum?.id || item.podcast?.id,\r\n mapper: (item) => {\r\n return {\r\n id: item.nakiNigunAlbum?.id || item.podcast.id,\r\n title: item.nakiNigunAlbum ? item.nakiNigunAlbum.title : item.podcast.title,\r\n isPremium:\r\n (item.nakiNigunAlbum && item.nakiNigunAlbum.isPremium) ||\r\n (item.podcast && item.podcast.isPremium),\r\n score: item.currentCycleScore,\r\n };\r\n },\r\n })\r\n );\r\n }\r\n\r\n find(params) {\r\n this.setPagingFilter({ page: params.pageNumber, rpp: params.pageSize });\r\n return this.fetchData();\r\n }\r\n}\r\n\r\nexport default ProducerDashboardInfiniteScrollStore;\r\n","import { action, makeObservable, observable, computed } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"baasic-react-bootstrap/src\";\r\nimport moment from \"moment\";\r\nimport \"moment-timezone\";\r\nimport ProducerDashboardTimeRangeViewStore from \"./ProducerDashboardTimeRangeViewStore\";\r\nimport ProducerDashboardInfiniteScrollStore from \"./ProducerDashboardInfiniteScrollStore\";\r\n\r\nconst timeZone = moment.tz.guess();\r\n\r\nclass ProducerDashboardViewStore extends MrbBaseViewStore {\r\n @observable dateFilter = {\r\n to: moment().utc().tz(timeZone).endOf(\"week\").toISOString(),\r\n from: moment().utc().tz(timeZone).startOf(\"week\").toISOString(),\r\n previousCycleTo: moment().utc().tz(timeZone).subtract(1, \"week\").endOf(\"week\").toISOString(),\r\n previousCycleFrom: moment().utc().tz(timeZone).subtract(1, \"week\").startOf(\"week\").toISOString(),\r\n timeZone: timeZone,\r\n };\r\n @observable nakiNigunPagingFilter = { rpp: 30, page: 1 };\r\n @observable nakiTalesPagingFilter = { rpp: 30, page: 1 };\r\n\r\n statsFilterOptions = [\r\n { value: 1, label: \"Streams\" },\r\n { value: 2, label: \"Unique Listeners\" },\r\n ];\r\n\r\n @observable nakiNigunFilterSelectedOptionValue = 1;\r\n @observable nakiTalesFilterSelectedOptionValue = 1;\r\n\r\n @observable nakiNigunTotalListeners = null;\r\n @observable nakiTalesTotalListeners = null;\r\n\r\n @computed get producerTypeSlug() {\r\n return this.rootStore.userStore?.producerType?.slug;\r\n }\r\n\r\n @computed get nakiNigunFilter() {\r\n const uniqueListeners = this.nakiNigunFilterSelectedOptionValue === 2;\r\n return { ...this.dateFilter, ...this.nakiNigunPagingFilter, uniqueListeners };\r\n }\r\n\r\n @computed get nakiTalesFilter() {\r\n const uniqueListeners = this.nakiTalesFilterSelectedOptionValue === 2;\r\n return { ...this.dateFilter, ...this.nakiTalesPagingFilter, uniqueListeners };\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 this.producerDashboardTimeRangeViewStore = new ProducerDashboardTimeRangeViewStore(this.rootStore, {\r\n setDateFilter: (filter) => this.setDateFilter(filter),\r\n });\r\n\r\n this.nakiNigunStatsInfiniteScrollStore = new ProducerDashboardInfiniteScrollStore(this.rootStore, {\r\n setPagingFilter: (filter) => this.setNakiNigunPagingFilter(filter),\r\n fetchData: () => this.fetchTrendingAlbums(),\r\n });\r\n\r\n this.nakiTalesStatsInfiniteScrollStore = new ProducerDashboardInfiniteScrollStore(this.rootStore, {\r\n setPagingFilter: (filter) => this.setNakiTalesPagingFilter(filter),\r\n fetchData: () => this.fetchTrendingPodcasts(),\r\n });\r\n\r\n this.refreshData = this.refreshData.bind(this);\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 onInit() {\r\n await this.refreshData();\r\n }\r\n\r\n async refreshData() {\r\n await Promise.all([\r\n this.fetchTrendingAlbumsTotalStreams(),\r\n this.fetchTrendingPodcastsTotalStreams(),\r\n this.nakiNigunStatsInfiniteScrollStore.queryUtility.fetch(),\r\n this.nakiTalesStatsInfiniteScrollStore.queryUtility.fetch(),\r\n ]);\r\n }\r\n\r\n @action.bound\r\n async setDateFilter(filter) {\r\n this.dateFilter = filter;\r\n await this.refreshData();\r\n }\r\n\r\n @action.bound\r\n setNakiNigunPagingFilter(filter) {\r\n this.nakiNigunPagingFilter = filter;\r\n }\r\n @action.bound\r\n setNakiTalesPagingFilter(filter) {\r\n this.nakiTalesPagingFilter = filter;\r\n }\r\n\r\n @action.bound\r\n async setNakiTalesFilterSelectedOptionValue(value) {\r\n this.nakiTalesFilterSelectedOptionValue = value;\r\n await Promise.all([\r\n this.fetchTrendingPodcastsTotalStreams(),\r\n\r\n this.nakiTalesStatsInfiniteScrollStore.queryUtility.fetch(),\r\n ]);\r\n }\r\n\r\n @action.bound\r\n async setNakiNigunFilterSelectedOptionValue(value) {\r\n this.nakiNigunFilterSelectedOptionValue = value;\r\n await Promise.all([\r\n this.fetchTrendingAlbumsTotalStreams(),\r\n this.nakiNigunStatsInfiniteScrollStore.queryUtility.fetch(),\r\n ]);\r\n }\r\n\r\n @action.bound\r\n setNakiNigunTotalListeners(value) {\r\n this.nakiNigunTotalListeners = value;\r\n }\r\n\r\n @action.bound\r\n setNakiTalesTotalListeners(value) {\r\n this.nakiTalesTotalListeners = value;\r\n }\r\n\r\n async fetchTrendingPodcasts() {\r\n try {\r\n const data = await this.routeStore.getTrendingPodcasts(this.nakiTalesFilter);\r\n return data;\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 }\r\n }\r\n\r\n async fetchTrendingAlbums() {\r\n try {\r\n const data = await this.routeStore.getTrendingAlbums(this.nakiNigunFilter);\r\n return data;\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to load albums.\", error);\r\n }\r\n }\r\n\r\n async fetchTrendingAlbumsTotalStreams() {\r\n try {\r\n this.setNakiNigunTotalListeners(null);\r\n const value = await this.routeStore.getTrendingAlbumsTotalStreams(this.nakiNigunFilter);\r\n this.setNakiNigunTotalListeners(value);\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.setNakiNigunTotalListeners(null);\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load all Naki Nigun content listeners.\",\r\n error\r\n );\r\n }\r\n }\r\n\r\n async fetchTrendingPodcastsTotalStreams() {\r\n try {\r\n this.setNakiTalesTotalListeners(null);\r\n const value = await this.routeStore.getTrendingPodcastsTotalStreams(this.nakiTalesFilter);\r\n this.setNakiTalesTotalListeners(value);\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.setNakiTalesTotalListeners(null);\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load all Naki Tales content listeners.\",\r\n error\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default ProducerDashboardViewStore;\r\n","import { action, makeObservable, observable, computed } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { find } from \"lodash\";\r\n\r\nclass ProducerPreviewViewStore extends MrbBaseViewStore {\r\n @observable selectedTab = { value: 1, title: \"Dashboard\" };\r\n\r\n tabs = [\r\n { value: 1, title: \"Dashboard\" },\r\n { value: 2, title: \"Revenue\" },\r\n ];\r\n\r\n @computed get producerTypeSlug() {\r\n return this.rootStore.userStore?.producerType?.slug;\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 async onInit() {\r\n var currentRoute = this.rootStore.routerStore.getCurrentRoute();\r\n if (currentRoute.name === \"master.application.producer.preview.dashboard\" && this.selectedTab.value !== 1) {\r\n this.setSelectedTab(1);\r\n } else if (\r\n currentRoute.name === \"master.application.producer.preview.revenue\" &&\r\n this.selectedTab.value !== 2\r\n ) {\r\n this.setSelectedTab(2);\r\n }\r\n }\r\n\r\n onViewUpdate(prevProps, newProps) {\r\n var currentRoute = this.rootStore.routerStore.getCurrentRoute();\r\n if (this.selectedTab.value === 2 && currentRoute.name === \"master.application.producer.preview.dashboard\") {\r\n this.setSelectedTab(1);\r\n }\r\n }\r\n\r\n @action.bound\r\n setSelectedTab(value) {\r\n this.selectedTab = find(this.tabs, { value: value });\r\n }\r\n}\r\n\r\nexport default ProducerPreviewViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\n\r\nclass ProducerPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n}\r\n\r\nexport default ProducerPreviewRouteStore;\r\n","import React from \"react\";\r\nimport { ProducerRevenueTemplate } from \"themes/application/producer/pages\";\r\nimport { ProducerRevenueViewStore } from \"application/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerRevenueViewStore(rootStore, componentProps),\r\n \"producerRevenueViewStore\"\r\n)\r\nclass ProducerRevenue extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerRevenue;\r\n","import React from \"react\";\r\nimport { ProducerRevenueReportTemplate } from \"themes/application/producer/pages\";\r\nimport { ProducerRevenueReportViewStore } from \"application/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerRevenueReportViewStore(rootStore, componentProps),\r\n \"producerRevenueReportViewStore\"\r\n)\r\nclass ProducerRevenueReport extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueReport;\r\n","import React from \"react\";\r\nimport { ProducerRevenueTransferTemplate } from \"themes/application/producer/pages\";\r\nimport { ProducerRevenueTransferViewStore } from \"application/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerRevenueTransferViewStore(rootStore, componentProps),\r\n \"producerRevenueTransferViewStore\"\r\n)\r\nclass ProducerRevenueTransfer extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerRevenueTransfer;\r\n","import React from \"react\";\r\nimport { ProducerPreviewTemplate } from \"themes/application/producer/pages\";\r\nimport { ProducerPreviewViewStore } from \"application/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerPreviewViewStore(rootStore, componentProps),\r\n \"producerPreviewViewStore\"\r\n)\r\nclass ProducerPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerPreview;\r\n","import React from \"react\";\r\nimport { ProducerDashboardTemplate } from \"themes/application/producer/pages\";\r\nimport { ProducerDashboardViewStore } from \"application/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerDashboardViewStore(rootStore, componentProps),\r\n \"producerDashboardViewStore\"\r\n)\r\nclass ProducerDashboard extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerDashboard;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n ProducerDashboard,\r\n ProducerRevenue,\r\n ProducerRevenueReport,\r\n ProducerRevenueTransfer,\r\n ProducerPreview,\r\n} from \"application/producer/pages\";\r\nimport {\r\n ProducerRevenueRouteStore,\r\n ProducerDashboardRouteStore,\r\n ProducerRevenueReportRouteStore,\r\n ProducerRevenueTransferRouteStore,\r\n ProducerPreviewRouteStore,\r\n} from \"application/producer/stores\";\r\nimport { producerTypes } from \"common/constants\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"application.producer\",\r\n routes: [\r\n {\r\n name: \"master.application.producer\",\r\n pattern: \"/producer\",\r\n authorization: \"nakiRadioProducerSection.read\",\r\n children: [\r\n {\r\n name: \"master.application.producer.preview\",\r\n pattern: \"\",\r\n component: ProducerPreview,\r\n store: ProducerPreviewRouteStore,\r\n children: [\r\n {\r\n name: \"master.application.producer.preview.dashboard\",\r\n pattern: \"dashboard\",\r\n component: ProducerDashboard,\r\n store: ProducerDashboardRouteStore,\r\n },\r\n {\r\n name: \"master.application.producer.preview.revenue\",\r\n pattern: \"revenue\",\r\n component: ProducerRevenue,\r\n store: ProducerRevenueRouteStore,\r\n beforeEnter: (fromState, toState, routerStore) => {\r\n const { userStore } = routerStore.rootStore;\r\n if (userStore.applicationUser?.slug === producerTypes.podcasterSlug) {\r\n return Promise.reject(routerStore.notFoundState);\r\n }\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n name: \"master.application.producer.report\",\r\n pattern: \"/:id/report\",\r\n component: ProducerRevenueReport,\r\n store: ProducerRevenueReportRouteStore,\r\n beforeEnter: (fromState, toState, routerStore) => {\r\n const { userStore } = routerStore.rootStore;\r\n if (userStore.producerType?.slug === producerTypes.podcasterSlug) {\r\n return Promise.reject(routerStore.notFoundState);\r\n }\r\n },\r\n },\r\n {\r\n name: \"master.application.producer.payout\",\r\n pattern: \"payout\",\r\n component: ProducerRevenueTransfer,\r\n store: ProducerRevenueTransferRouteStore,\r\n beforeEnter: (fromState, toState, routerStore) => {\r\n const { userStore } = routerStore.rootStore;\r\n if (userStore.producerType?.slug === producerTypes.podcasterSlug) {\r\n return Promise.reject(routerStore.notFoundState);\r\n }\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.PRODUCER\",\r\n order: 1,\r\n authorization: [\"nakiRadioProducerSection.read\"],\r\n icon: \"producers\",\r\n route: \"master.application.producer.preview.dashboard\",\r\n },\r\n ],\r\n });\r\n})();\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 { NakiNigunAlbumUnavailableInApp } from \"application/common/components\";\r\nimport { Image } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction NakiNigunArtistAlbumTemplate({ nakiNigunArtistAlbumViewStore, t }) {\r\n const { album, isCollapsed, toggleCollapse, setPanelRef } = nakiNigunArtistAlbumViewStore;\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 {t(\"APPLICATION.NAKI_NIGUN.ARTIST.ALBUM.FIELDS.GENRES\")}\r\n

\r\n {album.genres}\r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.NAKI_NIGUN.ARTIST.ALBUM.FIELDS.YEAR\")}\r\n

\r\n {album.year}\r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nNakiNigunArtistAlbumTemplate.propTypes = {\r\n nakiNigunArtistAlbumViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nconst AlbumPanelHeader = observer(function AlbumPanelHeader({ nakiNigunArtistAlbumViewStore, isCollapsed, t }) {\r\n const {\r\n album,\r\n coverImageUrl,\r\n isTurnedOn,\r\n isDisabled,\r\n toggleAlbumStatus,\r\n contentAccessResult,\r\n rootStore: { userDeviceStore },\r\n } = nakiNigunArtistAlbumViewStore;\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 {album.title}\r\n

\r\n {album.isPremium && !contentAccessResult.canAccessPremium && (\r\n \r\n )}\r\n
\r\n {!contentAccessResult.canAccessOnSelectedDevice && }\r\n
\r\n \r\n\r\n {userDeviceStore.deviceCount > 0 && contentAccessResult.canAccessOnSelectedDevice && (\r\n
\r\n \r\n {\r\n toggleAlbumStatus(!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(NakiNigunArtistAlbumTemplate);\r\n","import { action, computed, makeObservable, observable } from \"mobx\";\r\nimport { forEach } from \"lodash\";\r\n\r\nclass NakiNigunAlbum {\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 NakiNigunAlbum;\r\n","import { action, computed, makeObservable, observable } from \"mobx\";\r\nimport { forEach } from \"lodash\";\r\n\r\nclass NakiNigunArtist {\r\n @observable _numberOfEnabledAlbums = 0;\r\n\r\n constructor(obj) {\r\n makeObservable(this);\r\n forEach(obj, (value, key) => {\r\n if (key === \"numberOfEnabledAlbums\") {\r\n this.setNumberOfEnabledAlbums(value);\r\n } else {\r\n this[key] = value;\r\n }\r\n });\r\n }\r\n\r\n @computed get numberOfEnabledAlbums() {\r\n return this._numberOfEnabledAlbums;\r\n }\r\n\r\n @computed get isTurnedOn() {\r\n return this._numberOfEnabledAlbums === this.numberOfAlbums;\r\n }\r\n\r\n set isTurnedOn(value) {\r\n if (value) {\r\n this.setNumberOfEnabledAlbums(this.numberOfAlbums);\r\n } else {\r\n this.setNumberOfEnabledAlbums(0);\r\n }\r\n }\r\n\r\n @action.bound\r\n setNumberOfEnabledAlbums(value) {\r\n this._numberOfEnabledAlbums = value;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtist;\r\n","const nakiNigunContentType = {\r\n artists: 0,\r\n albums: 1,\r\n};\r\n\r\nexport default nakiNigunContentType;\r\n","import { findIndex, pullAt } from \"lodash\";\r\nimport { action, observable, makeObservable } from \"mobx\";\r\n\r\nclass NakiNigunBulkSelect {\r\n @observable isAllSelected = null;\r\n @observable.shallow selectedIds = [];\r\n @observable.shallow deselectedIds = [];\r\n\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n selectAll() {\r\n this.isAllSelected = true;\r\n this.selectedIds = [];\r\n this.deselectedIds = [];\r\n }\r\n\r\n @action.bound\r\n deselectAll() {\r\n this.isAllSelected = false;\r\n this.selectedIds = [];\r\n this.deselectedIds = [];\r\n }\r\n\r\n @action.bound\r\n addSelectedItem(id) {\r\n const selectedItemIndex = findIndex(this.selectedIds, (selectedId) => selectedId === id);\r\n if (selectedItemIndex === -1) {\r\n this.selectedIds.push(id);\r\n const deselectedItemIndex = findIndex(this.deselectedIds, (deselectedId) => deselectedId === id);\r\n if (deselectedItemIndex !== -1) {\r\n pullAt(this.deselectedIds, deselectedItemIndex);\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n addDeselectedItem(id) {\r\n const deselectedItemIndex = findIndex(this.deselectedIds, (deselectedId) => deselectedId === id);\r\n if (deselectedItemIndex === -1) {\r\n this.deselectedIds.push(id);\r\n const selectedItemIndex = findIndex(this.selectedIds, (selectedId) => selectedId === id);\r\n if (selectedItemIndex !== -1) {\r\n pullAt(this.selectedIds, selectedItemIndex);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default NakiNigunBulkSelect;\r\n","import { NakiNigunAlbum, NakiNigunArtist } from \"application/naki-nigun/models\";\r\n\r\nfunction getContentActivityStatusIcon(item) {\r\n if (item instanceof NakiNigunArtist) {\r\n if (item.numberOfEnabledAlbums === 0) {\r\n return \"c-home__status--disabled\";\r\n } else if (item.numberOfAlbums === item.numberOfEnabledAlbums) {\r\n return \"c-home__status--enabled\";\r\n } else if (item.numberOfAlbums > item.numberOfEnabledAlbums) {\r\n return \"c-home__status--mix\";\r\n }\r\n } else if (item instanceof NakiNigunAlbum) {\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 { getContentActivityStatusIcon } from \"application/naki-nigun/utils\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\nimport { NakiNigunArtist, NakiNigunAlbum } from \"application/naki-nigun/models\";\r\nimport { useCanAccessContent, nakiRadioContentType } from \"application/common/content-access\";\r\nimport { observer } from \"mobx-react\";\r\nimport { findIndex, isNil } from \"lodash\";\r\n\r\nfunction NakiNigunHomeGridCellTemplate(props) {\r\n if (props.item instanceof NakiNigunArtist) {\r\n return ;\r\n } else if (props.item instanceof NakiNigunAlbum) {\r\n return ;\r\n }\r\n}\r\n\r\nNakiNigunHomeGridCellTemplate.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\nconst NakiNigunArtistCell = observer(function NakiNigunArtistCell({\r\n onCellClick,\r\n goTo,\r\n item,\r\n nakiNigunManageSelectedItemsViewStore,\r\n}) {\r\n const contentAccessResult = useCanAccessContent(nakiRadioContentType.nakiNigun, {\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n const { isBulk, artistBulkEditViewStore } = nakiNigunManageSelectedItemsViewStore;\r\n\r\n function getBulkModeSelectIndicatorValue(\r\n item,\r\n canAccessArtist,\r\n isAllSelected,\r\n selectedArtistIds,\r\n deselectedArtistIds\r\n ) {\r\n if (!canAccessArtist) {\r\n return false;\r\n }\r\n const selectedIndex = findIndex(selectedArtistIds, (selectedItemId) => selectedItemId === item.artistId);\r\n if (selectedIndex !== -1) {\r\n return true;\r\n }\r\n const deselectedIndex = findIndex(\r\n deselectedArtistIds,\r\n (deselectedItemId) => deselectedItemId === item.artistId\r\n );\r\n if (deselectedIndex !== -1) {\r\n return false;\r\n }\r\n if (!isNil(isAllSelected)) {\r\n return isAllSelected;\r\n }\r\n return item.numberOfAlbums === item.numberOfEnabledAlbums;\r\n }\r\n\r\n function bulkSelectOrDeselect(item, canAccessArtist, isAllSelected, selectedArtistIds, deselectedArtistIds) {\r\n const isSelected = getBulkModeSelectIndicatorValue(\r\n item,\r\n canAccessArtist,\r\n isAllSelected,\r\n selectedArtistIds,\r\n deselectedArtistIds\r\n );\r\n if (isSelected) {\r\n artistBulkEditViewStore.deselectItem(item);\r\n } else {\r\n artistBulkEditViewStore.selectItem(item);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {\r\n isBulk\r\n ? bulkSelectOrDeselect(\r\n item,\r\n contentAccessResult.canAccess,\r\n artistBulkEditViewStore.bulkSelection.isAllSelected,\r\n artistBulkEditViewStore.bulkSelection.selectedIds,\r\n artistBulkEditViewStore.bulkSelection.deselectedIds\r\n )\r\n : 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.name}\r\n
\r\n \r\n );\r\n});\r\n\r\nconst NakiNigunAlbumCell = observer(function NakiNigunAlbumCell({\r\n onCellClick,\r\n goTo,\r\n item,\r\n nakiNigunManageSelectedItemsViewStore,\r\n}) {\r\n const contentAccessResult = useCanAccessContent(nakiRadioContentType.nakiNigun, {\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n const { isBulk, albumBulkEditViewStore } = nakiNigunManageSelectedItemsViewStore;\r\n\r\n function getBulkModeSelectIndicatorValue(\r\n item,\r\n canAccessAlbum,\r\n isAllSelected,\r\n selectedAlbumIds,\r\n deselectedAlbumIds\r\n ) {\r\n if (!canAccessAlbum) {\r\n return false;\r\n }\r\n const selectedIndex = findIndex(selectedAlbumIds, (selectedItemId) => selectedItemId === item.albumId);\r\n if (selectedIndex !== -1) {\r\n return true;\r\n }\r\n const deselectedIndex = findIndex(deselectedAlbumIds, (deselectedItemId) => deselectedItemId === item.albumId);\r\n if (deselectedIndex !== -1) {\r\n return false;\r\n }\r\n if (!isNil(isAllSelected)) {\r\n return isAllSelected;\r\n }\r\n return item.isTurnedOn;\r\n }\r\n\r\n function bulkSelectOrDeselect(item, canAccessAlbum, isAllSelected, selectedAlbumIds, deselectedAlbumIds) {\r\n const isSelected = getBulkModeSelectIndicatorValue(\r\n item,\r\n canAccessAlbum,\r\n isAllSelected,\r\n selectedAlbumIds,\r\n deselectedAlbumIds\r\n );\r\n if (isSelected) {\r\n albumBulkEditViewStore.deselectItem(item);\r\n } else {\r\n albumBulkEditViewStore.selectItem(item);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {\r\n isBulk\r\n ? bulkSelectOrDeselect(\r\n item,\r\n contentAccessResult.canAccess,\r\n albumBulkEditViewStore.bulkSelection.isAllSelected,\r\n albumBulkEditViewStore.bulkSelection.selectedIds,\r\n albumBulkEditViewStore.bulkSelection.deselectedIds\r\n )\r\n : 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\nexport default NakiNigunHomeGridCellTemplate;\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\n\r\nfunction NakiNigunSearchResultGridCellTemplate({ item, onCellClick }) {\r\n const canAccessContent = useCanAccessContent(nakiRadioContentType.nakiNigun, {\r\n isPremium: item.isPremium,\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 && !canAccessContent && (\r\n \r\n )}\r\n
\r\n {item.artistName && (\r\n
{item.artistName}
\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nNakiNigunSearchResultGridCellTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default NakiNigunSearchResultGridCellTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { HomeDeviceSelect } from \"application/home/components\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { applicationDefaults } from \"common/constants\";\r\n\r\nfunction NakiNigunHomePageHeaderTemplate({ nakiNigunHomeViewStore, t }) {\r\n const {\r\n anyDevice,\r\n contentTypeOptions,\r\n changeContentTypeFilter,\r\n queryUtility,\r\n inSearchMode,\r\n rootStore,\r\n deviceSelectStore,\r\n nakiNigunGenericSearchViewStore,\r\n } = nakiNigunHomeViewStore;\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 {anyDevice && !inSearchMode && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {!inSearchMode && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nNakiNigunHomePageHeaderTemplate.propTypes = {\r\n nakiNigunHomeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(NakiNigunHomePageHeaderTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { HomeListLoader } from \"application/home/components\";\r\nimport { NakiNigunHomeGridCell } from \"application/naki-nigun/components\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunHomeFeaturedTemplate({\r\n nakiNigunHomeFeaturedContentViewStore,\r\n nakiNigunManageSelectedItemsViewStore,\r\n t,\r\n}) {\r\n const {\r\n items,\r\n loaderStore,\r\n isFeaturedScrollable,\r\n scrollFeaturedLeft,\r\n scrollFeaturedRight,\r\n setFeaturedContainerRef,\r\n onClickCellItem,\r\n goTo,\r\n rootStore: { premiumSubscriptionStore },\r\n } = nakiNigunHomeFeaturedContentViewStore;\r\n const { isBulk } = nakiNigunManageSelectedItemsViewStore;\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.NAKI_NIGUN.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\nNakiNigunHomeFeaturedTemplate.propTypes = {\r\n nakiNigunHomeFeaturedContentViewStore: PropTypes.object.isRequired,\r\n nakiNigunManageSelectedItemsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunHomeFeaturedTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { HomeEmptyState, HomeListLoader, HomeOrderBySelect } from \"application/home/components\";\r\nimport {\r\n NakiNigunHomeCategory,\r\n NakiNigunManageSelectedItems,\r\n NakiNigunHomeFeatured,\r\n} from \"application/naki-nigun/components\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunHomeMainViewTemplate({ nakiNigunHomeViewStore, t }) {\r\n const {\r\n gridStore,\r\n goTo,\r\n rootStore: { premiumSubscriptionStore },\r\n nakiNigunManageSelectedItemsViewStore,\r\n nakiNigunHomeFeaturedContentViewStore,\r\n orderBySelectStore,\r\n } = nakiNigunHomeViewStore;\r\n const { isBulk } = nakiNigunManageSelectedItemsViewStore;\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 loaderRenderer={() => }\r\n cellRenderer={(props) => (\r\n \r\n )}\r\n emptyStateRenderer={() => }\r\n />\r\n
\r\n );\r\n}\r\n\r\nNakiNigunHomeMainViewTemplate.propTypes = {\r\n nakiNigunHomeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunHomeMainViewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { HomeEmptyState, HomeOrderBySelect, HomeListSearchLoader, HomeListLoader } from \"application/home/components\";\r\nimport { NakiNigunSearchResultGridCell } from \"application/naki-nigun/components\";\r\nimport { useCanAccessContent, nakiRadioContentType } from \"application/common/content-access\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbPager } from \"mrb/components/pager\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction NakiNigunHomeSearchResultsTemplate({ nakiNigunGenericSearchViewStore, t }) {\r\n const { gridStore, orderBySelectStore, queryUtility } = nakiNigunGenericSearchViewStore;\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 cellRender={(props) => }\r\n emptyStateRender={() => }\r\n pagerRender={(props) => (\r\n \r\n )}\r\n />\r\n
\r\n );\r\n}\r\n\r\nNakiNigunHomeSearchResultsTemplate.propTypes = {\r\n nakiNigunGenericSearchViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst ArtistsList = observer(function ArtistsList({ nakiNigunGenericSearchViewStore, t }) {\r\n const {\r\n artists,\r\n onClickArtist,\r\n scrollFeaturedLeft,\r\n scrollFeaturedRight,\r\n isAppearsInScrollable,\r\n setAppearsInContainerRef,\r\n } = nakiNigunGenericSearchViewStore;\r\n return (\r\n \r\n {artists.length > 0 && (\r\n
\r\n
\r\n
\r\n {t(\"APPLICATION.NAKI_NIGUN.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(artists, (artist) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n});\r\n\r\nfunction Artist({ item, onClickArtist }) {\r\n const canAccessContent = useCanAccessContent(nakiRadioContentType.nakiNigun, {\r\n isPremium: item.isPremium,\r\n });\r\n return (\r\n
onClickArtist(item)}>\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
{item.name}
\r\n
\r\n );\r\n}\r\n\r\nexport default observer(NakiNigunHomeSearchResultsTemplate);\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 NakiNigunManageSelectedItemsTemplate({ nakiNigunManageSelectedItemsViewStore, t }) {\r\n const { isBulk, changeIsBulk, selectAll, deselectAll, isUpdating, saveSelection } =\r\n nakiNigunManageSelectedItemsViewStore;\r\n\r\n return (\r\n
\r\n {isBulk ? (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nNakiNigunManageSelectedItemsTemplate.propTypes = {\r\n nakiNigunManageSelectedItemsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunManageSelectedItemsTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nimport { NakiNigunHomeGridCell } from \"application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomeCategoryTemplate({\r\n item,\r\n goTo,\r\n premiumSubscriptionStore,\r\n nakiNigunManageSelectedItemsViewStore,\r\n onCellClick,\r\n}) {\r\n return (\r\n
\r\n

\r\n {item.genreName !== null ? item.genreName : \"General Content\"}\r\n

\r\n
\r\n {map(item.homeContents, (item) => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n );\r\n}\r\n\r\nNakiNigunHomeCategoryTemplate.propTypes = {\r\n onCellClick: PropTypes.func.isRequired,\r\n premiumSubscriptionStore: PropTypes.object.isRequired,\r\n goTo: PropTypes.func.isRequired,\r\n nakiNigunManageSelectedItemsViewStore: PropTypes.object.isRequired,\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunHomeCategoryTemplate);\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 NakiNigunArtistAlbumViewStore extends MrbBaseViewStore {\r\n @observable isCollapsed = false;\r\n @observable isUpdating = false;\r\n\r\n panelRef = React.createRef();\r\n albumId = null;\r\n\r\n @computed get coverImageUrl() {\r\n if (this.album && this.album.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(this.album.coverImageId, 50, 50);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @computed get contentAccessResult() {\r\n return this.evaluateContentAccess(this.album);\r\n }\r\n\r\n @computed get isDisabled() {\r\n return this.nakiNigunArtistViewStore.updatingStatus || this.isUpdating;\r\n }\r\n\r\n @computed get album() {\r\n if (this.nakiNigunArtistViewStore.item && this.nakiNigunArtistViewStore.item.albums) {\r\n return find(this.nakiNigunArtistViewStore.item.albums, (album) => album.id === this.albumId);\r\n }\r\n return null;\r\n }\r\n\r\n @computed get albumStatusItem() {\r\n if (this.album) {\r\n return this.album.userDeviceAlbum;\r\n }\r\n return null;\r\n }\r\n\r\n @computed get isTurnedOn() {\r\n if (!isNil(this.albumStatusItem)) {\r\n return this.albumStatusItem.isTurnedOn;\r\n } else if (this.album) {\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.album.isTurnedOnByDefault;\r\n case nakiRadioSystemTypes.mobile:\r\n return this.album.isTurnedOnByDefaultInApp;\r\n case nakiRadioSystemTypes.mobile_embedded:\r\n return this.album.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, { albumId, nakiNigunArtistViewStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.albumId = albumId;\r\n this.nakiNigunArtistViewStore = nakiNigunArtistViewStore;\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 albumId = this.rootStore.routerStore.routerState.queryParams.albumId;\r\n if (albumId && this.album.id === albumId) {\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 toggleAlbumStatus(isTurnedOn) {\r\n this.isCollapsed = !this.isCollapsed;\r\n this.setIsUpdating(true);\r\n await this.nakiNigunArtistViewStore.updateAlbumTurnedOnStatus(this.albumId, 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 const artist = this.nakiNigunArtistViewStore.item;\r\n return this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: artist.isVisibleInApp === false,\r\n unavailableInNakiTouch: artist.isVisibleInEmbeddedApp === false,\r\n });\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistAlbumViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunUserContentService } from \"common/services\";\r\n\r\nclass NakiNigunArtistRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.service = this.rootStore.createApplicationService(NakiNigunUserContentService);\r\n }\r\n\r\n async getNakiNigunArtistWthDeviceSettings(artistId, deviceId) {\r\n const response = await this.service.getNakiNigunArtistWthDeviceSettings(artistId, deviceId);\r\n return response.data;\r\n }\r\n\r\n async getNakiNigunArtist(artistId) {\r\n const response = await this.service.getNakiNigunArtist(artistId);\r\n return response.data;\r\n }\r\n\r\n async getUserDeviceAlbumsByArtist(deviceId, artistId) {\r\n const response = await this.service.getUserDeviceAlbumsByArtist(deviceId, artistId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistRouteStore;\r\n","import { action, computed, makeObservable, override, runInAction } from \"mobx\";\r\nimport { BaseHomePreviewViewStore } from \"application/home/stores\";\r\nimport { UpdateNakiNigunAlbumStatusOptions } from \"application/common/models\";\r\nimport { forEach, find, findIndex, isNil } from \"lodash\";\r\n\r\nclass NakiNigunArtistViewStore extends BaseHomePreviewViewStore {\r\n @computed get coverImageUrl() {\r\n if (this.item && this.item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunArtistCoverImageUrl(\r\n this.item.coverImageId,\r\n 200,\r\n 200\r\n );\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.naki-nigun.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.getNakiNigunArtistWthDeviceSettings(\r\n id,\r\n this.rootStore.userDeviceStore.selectedDevice.id\r\n );\r\n }\r\n return this.routeStore.getNakiNigunArtist(id);\r\n }\r\n\r\n @action.bound\r\n async updateAlbumTurnedOnStatus(albumId, isTurnedOn) {\r\n try {\r\n this.statusToggleLoader.suspend();\r\n const albumIndex = findIndex(this.item.albums, (album) => album.id === albumId);\r\n const options = new UpdateNakiNigunAlbumStatusOptions(\r\n albumId,\r\n this.item.albums[albumIndex].title,\r\n this.item.albums[albumIndex].isPremium,\r\n this.item.albums[albumIndex].isVisibleInApp === false,\r\n this.item.albums[albumIndex].isVisibleInEmbeddedApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatus(options, isTurnedOn);\r\n runInAction(() => {\r\n if (this.item.albums[albumIndex].userDeviceAlbum) {\r\n this.item.albums[albumIndex].userDeviceAlbum.isTurnedOn = isTurnedOn;\r\n } else {\r\n this.item.albums[albumIndex].userDeviceAlbum = { isTurnedOn: isTurnedOn };\r\n }\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.getUserDeviceAlbumsByArtist(deviceId, resourceId);\r\n }\r\n\r\n @override\r\n setStatusItem(statusItem) {\r\n forEach(this.item.albums, (album) => {\r\n if (statusItem && statusItem.length > 0) {\r\n album.userDeviceAlbum = find(statusItem, (item) => item.albumId === album.id);\r\n } else {\r\n album.userDeviceAlbum = null;\r\n }\r\n });\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.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistViewStore;\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 { UpdateNakiNigunAlbumStatusOptions, UpdateNakiNigunArtistStatusOptions } from \"application/common/models\";\r\nimport { map, find, findIndex, isNil, forEach } from \"lodash\";\r\nimport { NakiNigunArtist, NakiNigunAlbum, nakiNigunContentType } from \"application/naki-nigun/models\";\r\n\r\nclass NakiNigunHomeFeaturedContentViewStore 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, nakiNigunHomeViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.nakiNigunHomeViewStore = nakiNigunHomeViewStore;\r\n this.routeStore = nakiNigunHomeViewStore.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.nakiNigunHomeViewStore.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 getFeaturedArtists(deviceId) {\r\n return this.routeStore.getFeaturedArtists(deviceId);\r\n }\r\n\r\n getFeaturedAlbums(deviceId) {\r\n return this.routeStore.getFeaturedAlbums(deviceId);\r\n }\r\n\r\n async fetchResources({ deviceId }) {\r\n this.loaderStore.suspend();\r\n try {\r\n if (this.nakiNigunHomeViewStore.queryUtility.filter.contentType === nakiNigunContentType.artists) {\r\n const artists = await this.getFeaturedArtists(deviceId);\r\n this.setFeaturedArtists(artists);\r\n } else {\r\n const albums = await this.getFeaturedAlbums(deviceId);\r\n this.setFeaturedAlbums(albums);\r\n }\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 @action.bound\r\n onAlbumTurnedOnStatusChange(changedAlbum) {\r\n const album = find(this.items, (item) => item.albumId === changedAlbum.albumId);\r\n if (album && album.isTurnedOn !== changedAlbum.isTurnedOn) {\r\n album.isTurnedOn = changedAlbum.isTurnedOn;\r\n }\r\n }\r\n\r\n @action.bound\r\n onArtistTurnedOnStatusChange(changedArtist) {\r\n const artist = find(this.items, (item) => item.artistId === changedArtist.artistId);\r\n if (artist && artist.isTurnedOn !== changedArtist.isTurnedOn) {\r\n artist.isTurnedOn = changedArtist.isTurnedOn;\r\n }\r\n }\r\n\r\n goTo = (item) => {\r\n return this.nakiNigunHomeViewStore.goTo(item);\r\n };\r\n\r\n onClickCellItem = async (item) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n if (item instanceof NakiNigunArtist) {\r\n await this.toggleFeaturedArtistTurnedOn(item, this.selectedDevice.id);\r\n } else if (item instanceof NakiNigunAlbum) {\r\n await this.toggleFeaturedAlbumTurnedOn(item, this.selectedDevice.id);\r\n }\r\n }\r\n };\r\n\r\n async toggleFeaturedAlbumTurnedOn(item, deviceId) {\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 UpdateNakiNigunAlbumStatusOptions(\r\n item.albumId,\r\n item.title,\r\n item.isPremium,\r\n item.isVisibleInApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatus(options, newValue);\r\n runInAction(() => {\r\n item.isTurnedOn = newValue;\r\n this.nakiNigunHomeViewStore.onFeaturedAlbumTurnedOnStatusChange(item);\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 toggleFeaturedArtistTurnedOn(item, deviceId) {\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 UpdateNakiNigunArtistStatusOptions(\r\n item.artistId,\r\n item.name,\r\n item.isPremium,\r\n item.isVisibleInApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatusByArtist(options, newValue);\r\n runInAction(() => {\r\n item.isTurnedOn = newValue;\r\n this.nakiNigunHomeViewStore.onFeaturedArtistTurnedOnStatusChange(item);\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 onFeaturedArtistBulkEditSuccess(artistsBulkEdit) {\r\n forEach(this.items, (artist) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: artist.isPremium,\r\n unavailableInMobileApp: artist.isVisibleInApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n const selectedIndex = findIndex(\r\n artistsBulkEdit.selectedIds,\r\n (selectedId) => selectedId === artist.artistId\r\n );\r\n if (selectedIndex !== -1) {\r\n artist.isTurnedOn = true;\r\n return;\r\n }\r\n const deselectedIndex = findIndex(\r\n artistsBulkEdit.deselectedIds,\r\n (deselectedId) => deselectedId === artist.artistId\r\n );\r\n if (deselectedIndex !== -1) {\r\n artist.isTurnedOn = false;\r\n return;\r\n }\r\n if (!isNil(artistsBulkEdit.isAllSelected)) {\r\n artist.isTurnedOn = artistsBulkEdit.isAllSelected;\r\n }\r\n }\r\n });\r\n }\r\n\r\n @action.bound\r\n onFeaturedAlbumBulkEditSuccess(albumsBulkEdit) {\r\n forEach(this.items, (album) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: album.isPremium,\r\n unavailableInMobileApp: album.isVisibleInApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n const selectedIndex = findIndex(\r\n albumsBulkEdit.selectedIds,\r\n (selectedId) => selectedId === album.albumId\r\n );\r\n if (selectedIndex !== -1) {\r\n album.isTurnedOn = true;\r\n return;\r\n }\r\n\r\n const deselectedIndex = findIndex(\r\n albumsBulkEdit.deselectedIds,\r\n (deselectedId) => deselectedId === album.albumId\r\n );\r\n if (deselectedIndex !== -1) {\r\n album.isTurnedOn = false;\r\n return;\r\n }\r\n\r\n if (!isNil(albumsBulkEdit.isAllSelected)) {\r\n album.isTurnedOn = albumsBulkEdit.isAllSelected;\r\n }\r\n }\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 @action.bound\r\n setFeaturedArtists(items) {\r\n this.items = map(items, (item) => {\r\n return new NakiNigunArtist({\r\n ...item,\r\n coverImageUrl: this.nakiNigunHomeViewStore.createArtistCoverImageUrl(item),\r\n });\r\n });\r\n }\r\n\r\n @action.bound\r\n setFeaturedAlbums(items) {\r\n this.items = map(items, (item) => {\r\n return new NakiNigunAlbum({\r\n ...item,\r\n coverImageUrl: this.nakiNigunHomeViewStore.createAlbumCoverImageUrl(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 NakiNigunHomeFeaturedContentViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunUserContentService } from \"common/services\";\r\n\r\nclass NakiNigunHomeRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.service = this.rootStore.createApplicationService(NakiNigunUserContentService);\r\n }\r\n\r\n async findArtists(params) {\r\n const response = await this.service.findArtists(params);\r\n return response.data;\r\n }\r\n\r\n async findAlbums(params) {\r\n const response = await this.service.findAlbums(params);\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 getFeaturedArtists(deviceId) {\r\n const response = await this.service.getFeaturedArtists(deviceId);\r\n return response.data;\r\n }\r\n\r\n async getFeaturedAlbums(deviceId) {\r\n const response = await this.service.getFeaturedAlbums(deviceId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiNigunHomeRouteStore;\r\n","import { observable, makeObservable } from \"mobx\";\r\nimport { MrbFilterParameters } from \"mrb/core/filter\";\r\nimport { nakiNigunContentType } from \"application/naki-nigun/models\";\r\n\r\nclass NakiNigunHomeContentFilter 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 = nakiNigunContentType.albums;\r\n }\r\n}\r\n\r\nexport default NakiNigunHomeContentFilter;\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 { MrbModalParams } from \"mrb/common/models\";\r\nimport { MrbSimpleSelectStore, MrbQuerySimpleSelectStore } from \"mrb/components/select\";\r\nimport {\r\n NakiNigunGenericSearchViewStore,\r\n NakiNigunManageSelectedItemsViewStore,\r\n NakiNigunHomeFeaturedContentViewStore,\r\n} from \"application/naki-nigun/stores\";\r\nimport { NakiNigunArtist, NakiNigunAlbum, nakiNigunContentType } from \"application/naki-nigun/models\";\r\nimport { UpdateNakiNigunAlbumStatusOptions, UpdateNakiNigunArtistStatusOptions } from \"application/common/models\";\r\nimport { NakiNigunHomeContentFilter } from \"application/naki-nigun/filters\";\r\nimport { isNil, forEach, findIndex, find, map, filter } from \"lodash\";\r\n\r\nclass NakiNigunHomeViewStore 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.nakiNigunGenericSearchViewStore.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 nakiNigunContentTypeMode() {\r\n return this.queryUtility.filter.contentType;\r\n }\r\n\r\n contentTypeOptions = [\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.FILTER.ARTISTS\",\r\n value: nakiNigunContentType.artists,\r\n },\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.FILTER.ALBUMS\",\r\n value: nakiNigunContentType.albums,\r\n },\r\n ];\r\n\r\n artistOrderOptions = [\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.ORDER.ALPHABETICALY_OPTION\",\r\n value: \"name\",\r\n },\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.ORDER.RECENTLY_ADDED_OPTION\",\r\n value: \"dateCreated\",\r\n },\r\n ];\r\n\r\n albumOrderOptions = [\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.ORDER.ALPHABETICALY_OPTION\",\r\n value: \"title\",\r\n },\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.ORDER.RECENTLY_ADDED_OPTION\",\r\n value: \"dateCreated\",\r\n },\r\n ];\r\n\r\n @computed get orderOptions() {\r\n if (this.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n return this.artistOrderOptions;\r\n }\r\n return this.albumOrderOptions;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const pageSize = 5;\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new NakiNigunHomeContentFilter(),\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 makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.nakiNigunGenericSearchViewStore = new NakiNigunGenericSearchViewStore(this.rootStore, this);\r\n this.nakiNigunManageSelectedItemsViewStore = new NakiNigunManageSelectedItemsViewStore(this.rootStore, this);\r\n this.nakiNigunHomeFeaturedContentViewStore = new NakiNigunHomeFeaturedContentViewStore(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.albumId || item.artistId,\r\n mapper: (item) => {\r\n item.homeContents = map(item.homeContents, (content) => {\r\n if (content.albumId) {\r\n return new NakiNigunAlbum({\r\n ...content,\r\n coverImageUrl: this.createAlbumCoverImageUrl(content),\r\n });\r\n } else {\r\n return new NakiNigunArtist({\r\n ...content,\r\n coverImageUrl: this.createArtistCoverImageUrl(content),\r\n });\r\n }\r\n });\r\n return item;\r\n },\r\n })\r\n );\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\" || selectedOrder.value === \"name\") {\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.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.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\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.nakiNigunHomeFeaturedContentViewStore.onInit(), this.queryUtility.initialize()]);\r\n }\r\n\r\n findArtists(params) {\r\n if (this.selectedDevice) {\r\n params.deviceId = this.selectedDevice.id;\r\n }\r\n return this.routeStore.findArtists({\r\n ...params,\r\n orderBy: params.orderBy === \"title\" ? \"name\" : params.orderBy,\r\n });\r\n }\r\n\r\n findAlbums(params) {\r\n if (this.selectedDevice) {\r\n params.deviceId = this.selectedDevice.id;\r\n }\r\n return this.routeStore.findAlbums({\r\n ...params,\r\n orderBy: params.orderBy === \"name\" ? \"title\" : params.orderBy,\r\n });\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 let response;\r\n if (filter.contentType === nakiNigunContentType.artists) {\r\n response = await this.findArtists(filter);\r\n } else {\r\n response = await this.findAlbums(filter);\r\n }\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 @action.bound\r\n onAlbumBulkEditSuccess(albumsBulkEdit) {\r\n forEach(this.gridStore.data, (data) => {\r\n if (data.homeContents) {\r\n forEach(data.homeContents, (album) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: album.isPremium,\r\n unavailableInMobileApp: album.isVisibleInApp === false,\r\n unavailableInNakiTouch: album.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n const selectedIndex = findIndex(\r\n albumsBulkEdit.selectedIds,\r\n (selectedId) => selectedId === album.albumId\r\n );\r\n if (selectedIndex !== -1) {\r\n album.isTurnedOn = true;\r\n return;\r\n }\r\n\r\n const deselectedIndex = findIndex(\r\n albumsBulkEdit.deselectedIds,\r\n (deselectedId) => deselectedId === album.albumId\r\n );\r\n if (deselectedIndex !== -1) {\r\n album.isTurnedOn = false;\r\n return;\r\n }\r\n\r\n if (!isNil(albumsBulkEdit.isAllSelected)) {\r\n album.isTurnedOn = albumsBulkEdit.isAllSelected;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n this.nakiNigunHomeFeaturedContentViewStore.onFeaturedAlbumBulkEditSuccess(albumsBulkEdit);\r\n }\r\n\r\n @action.bound\r\n onArtistBulkEditSuccess(artistsBulkEdit) {\r\n forEach(this.gridStore.data, (data) => {\r\n if (data.homeContents) {\r\n forEach(data.homeContents, (artist) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: artist.isPremium,\r\n unavailableInMobileApp: artist.isVisibleInApp === false,\r\n unavailableInNakiTouch: artist.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n const selectedIndex = findIndex(\r\n artistsBulkEdit.selectedIds,\r\n (selectedId) => selectedId === artist.artistId\r\n );\r\n if (selectedIndex !== -1) {\r\n artist.isTurnedOn = true;\r\n return;\r\n }\r\n const deselectedIndex = findIndex(\r\n artistsBulkEdit.deselectedIds,\r\n (deselectedId) => deselectedId === artist.artistId\r\n );\r\n if (deselectedIndex !== -1) {\r\n artist.isTurnedOn = false;\r\n return;\r\n }\r\n if (!isNil(artistsBulkEdit.isAllSelected)) {\r\n artist.isTurnedOn = artistsBulkEdit.isAllSelected;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.nakiNigunHomeFeaturedContentViewStore.onFeaturedArtistBulkEditSuccess(artistsBulkEdit);\r\n }\r\n\r\n async toggleAlbumTurnedOn(item, deviceId) {\r\n const duplicateAlbums = [];\r\n forEach(this.gridStore.data, (x) => {\r\n if (x.homeContents) {\r\n duplicateAlbums.push(...filter(x.homeContents, (content) => content.albumId === item.albumId));\r\n }\r\n });\r\n if (!item.isUpdating) {\r\n try {\r\n forEach(duplicateAlbums, (album) => {\r\n album.isUpdating = true;\r\n });\r\n this.rootStore.mainLoaderStore.suspend();\r\n const newValue = !item.isTurnedOn;\r\n const options = new UpdateNakiNigunAlbumStatusOptions(\r\n item.albumId,\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.updateNakiNigunAlbumsStatus(options, newValue);\r\n runInAction(() => {\r\n forEach(duplicateAlbums, (album) => {\r\n album.isTurnedOn = newValue;\r\n });\r\n this.nakiNigunHomeFeaturedContentViewStore.onAlbumTurnedOnStatusChange(item);\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 forEach(duplicateAlbums, (album) => {\r\n delete album.isUpdating;\r\n });\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n async toggleArtistTurnedOn(item, deviceId) {\r\n const duplicateArtists = [];\r\n forEach(this.gridStore.data, (x) => {\r\n if (x.homeContents) {\r\n duplicateArtists.push(...filter(x.homeContents, (content) => content.artistId === item.artistId));\r\n }\r\n });\r\n if (!item.isUpdating) {\r\n try {\r\n forEach(duplicateArtists, (artist) => {\r\n artist.isUpdating = true;\r\n });\r\n this.rootStore.mainLoaderStore.suspend();\r\n const newValue = !item.isTurnedOn;\r\n const options = new UpdateNakiNigunArtistStatusOptions(\r\n item.artistId,\r\n item.name,\r\n item.isPremium,\r\n item.isVisibleInApp === false,\r\n item.isVisibleInEmbeddedApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatusByArtist(options, newValue);\r\n runInAction(() => {\r\n forEach(duplicateArtists, (artist) => {\r\n artist.isTurnedOn = newValue;\r\n });\r\n this.nakiNigunHomeFeaturedContentViewStore.onArtistTurnedOnStatusChange(item);\r\n });\r\n } catch (err) {\r\n console.log(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 forEach(duplicateArtists, (artist) => {\r\n delete artist.isUpdating;\r\n });\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n changeContentTypeFilter(value) {\r\n this.queryUtility.filter.set(\"contentType\", value);\r\n this.queryUtility.fetch();\r\n }\r\n\r\n goTo = (item) => {\r\n this.rootStore.routerStore.goTo(\"master.application.naki-nigun.artist\", {\r\n id: item.artistId,\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 onClickCellItem = async (item) => {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n if (item instanceof NakiNigunArtist) {\r\n await this.toggleArtistTurnedOn(item, this.selectedDevice.id);\r\n } else if (item instanceof NakiNigunAlbum) {\r\n await this.toggleAlbumTurnedOn(item, this.selectedDevice.id);\r\n }\r\n }\r\n };\r\n\r\n @action.bound\r\n onFeaturedAlbumTurnedOnStatusChange(changedAlbum) {\r\n forEach(this.gridStore.data, (data) => {\r\n if (data.homeContents) {\r\n const album = find(data.homeContents, (item) => item.albumId === changedAlbum.albumId);\r\n if (album && album.albumId === changedAlbum.albumId && album.isTurnedOn !== changedAlbum.isTurnedOn) {\r\n album.isTurnedOn = changedAlbum.isTurnedOn;\r\n }\r\n }\r\n });\r\n }\r\n\r\n @action.bound\r\n onFeaturedArtistTurnedOnStatusChange(changedArtist) {\r\n forEach(this.gridStore.data, (data) => {\r\n if (data.homeContents) {\r\n const artist = find(data.homeContents, (item) => item.artistId === changedArtist.artistId);\r\n if (artist && artist.isTurnedOn !== changedArtist.isTurnedOn) {\r\n artist.isTurnedOn = changedArtist.isTurnedOn;\r\n }\r\n }\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 createArtistCoverImageUrl(item) {\r\n if (item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunArtistCoverImageUrl(item.coverImageId, 200, 200);\r\n }\r\n return null;\r\n }\r\n\r\n createAlbumCoverImageUrl(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 onDestroy() {\r\n this.nakiNigunGenericSearchViewStore.destroy();\r\n this.nakiNigunManageSelectedItemsViewStore.destroy();\r\n this.nakiNigunHomeFeaturedContentViewStore.destroy();\r\n }\r\n}\r\n\r\nexport default NakiNigunHomeViewStore;\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 } from \"mrb/components/select\";\r\nimport { sideScroll } from \"common/utils\";\r\nimport { find, filter, map, isNil, uniqBy } from \"lodash\";\r\n\r\nclass NakiNigunGenericSearchViewStore extends MrbBaseListViewStore {\r\n @observable showSearchView = false;\r\n @observable.ref artists = [];\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.NAKI_NIGUN.LIST.GENERIC_SEARCH.ORDER.RELEVANCE_OPTION\",\r\n value: \"-1\",\r\n },\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.GENERIC_SEARCH.ORDER.RECENTLY_ADDED_OPTION\",\r\n value: \"dateCreated\",\r\n },\r\n {\r\n label: \"APPLICATION.NAKI_NIGUN.LIST.GENERIC_SEARCH.ORDER.ALPHABETICALY_OPTION\",\r\n value: \"title\",\r\n },\r\n ];\r\n\r\n constructor(rootStore, nakiNigunHomeViewStore) {\r\n super(rootStore, {\r\n queryConfig: {\r\n disableUpdateQueryParams: true,\r\n pageSize: 30,\r\n },\r\n });\r\n makeObservable(this);\r\n this.nakiNigunHomeViewStore = nakiNigunHomeViewStore;\r\n this.routeStore = this.nakiNigunHomeViewStore.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.albumId,\r\n mapper: (item) => {\r\n return {\r\n ...item,\r\n coverImageUrl: this.createAlbumCoverImageUrl(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.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 artists: this.artists,\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 try {\r\n const response = await this.find(filter);\r\n runInAction(() => {\r\n this.gridStore.setData(response);\r\n this.setArtists(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 setArtists(response) {\r\n const data = response.item ? response.item : response;\r\n const artists = map(\r\n uniqBy(\r\n filter(data, (item) => !isNil(item.artistId)),\r\n \"artistId\"\r\n ),\r\n (item) => {\r\n return {\r\n artistId: item.artistId,\r\n name: item.artistName,\r\n isArtistPremium: item.isArtistPremium,\r\n coverImageUrl: this.createArtistCoverImageUrl(item.artistCoverImageId),\r\n };\r\n }\r\n );\r\n this.artists = artists;\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 this.rootStore.routerStore.goTo(\r\n \"master.application.naki-nigun.artist\",\r\n {\r\n id: item.artistId,\r\n },\r\n { albumId: item.albumId }\r\n );\r\n };\r\n\r\n createAlbumCoverImageUrl(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 createArtistCoverImageUrl(artistCoverImageId) {\r\n if (artistCoverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunArtistCoverImageUrl(artistCoverImageId, 200, 200);\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 console.log(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 @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.gridStore.setData([]);\r\n this.setArtists([]);\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 onClickArtist = (artist) => {\r\n this.rootStore.routerStore.goTo(\"master.application.naki-nigun.artist\", {\r\n id: artist.artistId,\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 NakiNigunGenericSearchViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { observable, makeObservable, action, computed } from \"mobx\";\r\nimport { isNil } from \"lodash\";\r\nimport { NakiNigunBulkSelect } from \"application/naki-nigun/models\";\r\n\r\nclass NakiNigunAlbumBulkEditViewStore extends MrbBaseViewStore {\r\n @observable isUpdating = false;\r\n @observable bulkSelection = new NakiNigunBulkSelect();\r\n\r\n @computed get isSelectedItemsAny() {\r\n return !isNil(this.bulkSelection.isAllSelected) || this.bulkSelection.selectedIds.length > 0;\r\n }\r\n\r\n constructor(rootStore, nakiNigunHomeViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.nakiNigunHomeViewStore = nakiNigunHomeViewStore;\r\n this.routeStore = nakiNigunHomeViewStore.routeStore;\r\n }\r\n\r\n @action.bound\r\n selectAll() {\r\n this.bulkSelection.selectAll();\r\n }\r\n\r\n @action.bound\r\n deselectAll() {\r\n this.bulkSelection.deselectAll();\r\n }\r\n\r\n @action.bound\r\n selectItem(item) {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n\r\n if (contentAccessResult.canAccess) {\r\n this.bulkSelection.addSelectedItem(item.albumId);\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectItem(item) {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n\r\n if (contentAccessResult.canAccess) {\r\n this.bulkSelection.addDeselectedItem(item.albumId);\r\n }\r\n }\r\n\r\n @action.bound\r\n async saveSelection() {\r\n if (!this.isUpdating) {\r\n this.setIsUpdating(true);\r\n try {\r\n this.rootStore.mainLoaderStore.suspend();\r\n const options = {\r\n isAllSelected: this.bulkSelection.isAllSelected,\r\n selectedAlbumIds: this.bulkSelection.selectedIds,\r\n deselectedAlbumIds: this.bulkSelection.deselectedIds,\r\n };\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatusBulk(options);\r\n this.nakiNigunHomeViewStore.onAlbumBulkEditSuccess(this.bulkSelection);\r\n\r\n return true;\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\r\n return false;\r\n } finally {\r\n this.setIsUpdating(false);\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\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 clearSelection() {\r\n this.bulkSelection = new NakiNigunBulkSelect();\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumBulkEditViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { observable, makeObservable, action, computed } from \"mobx\";\r\nimport { isNil } from \"lodash\";\r\nimport { NakiNigunBulkSelect } from \"application/naki-nigun/models\";\r\n\r\nclass NakiNigunArtistBulkEditViewStore extends MrbBaseViewStore {\r\n @observable isUpdating = false;\r\n @observable bulkSelection = new NakiNigunBulkSelect();\r\n\r\n @computed get isSelectedItemsAny() {\r\n return !isNil(this.bulkSelection.isAllSelected) || this.bulkSelection.selectedIds.length > 0;\r\n }\r\n constructor(rootStore, nakiNigunHomeViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.nakiNigunHomeViewStore = nakiNigunHomeViewStore;\r\n this.routeStore = nakiNigunHomeViewStore.routeStore;\r\n }\r\n\r\n @action.bound\r\n selectAll() {\r\n this.bulkSelection.selectAll();\r\n }\r\n\r\n @action.bound\r\n deselectAll() {\r\n this.bulkSelection.deselectAll();\r\n }\r\n\r\n @action.bound\r\n selectItem(item) {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n\r\n if (contentAccessResult.canAccess) {\r\n this.bulkSelection.addSelectedItem(item.artistId);\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectItem(item) {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n\r\n if (contentAccessResult.canAccess) {\r\n this.bulkSelection.addDeselectedItem(item.artistId);\r\n }\r\n }\r\n\r\n @action.bound\r\n async saveSelection() {\r\n if (!this.isUpdating) {\r\n this.setIsUpdating(true);\r\n try {\r\n this.rootStore.mainLoaderStore.suspend();\r\n const options = {\r\n isAllSelected: this.bulkSelection.isAllSelected,\r\n selectedArtistIds: this.bulkSelection.selectedIds,\r\n deselectedArtistIds: this.bulkSelection.deselectedIds,\r\n };\r\n await this.rootStore.userContentManagerStore.updateNakiNigunAlbumsStatusByArtistBulk(options);\r\n this.nakiNigunHomeViewStore.onArtistBulkEditSuccess(this.bulkSelection);\r\n\r\n return true;\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\r\n return false;\r\n } finally {\r\n this.setIsUpdating(false);\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\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 clearSelection() {\r\n this.bulkSelection = new NakiNigunBulkSelect();\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistBulkEditViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { observable, makeObservable, action, computed } from \"mobx\";\r\nimport { NakiNigunAlbumBulkEditViewStore, NakiNigunArtistBulkEditViewStore } from \"application/naki-nigun/stores\";\r\nimport { nakiNigunContentType } from \"application/naki-nigun/models\";\r\n\r\nclass NakiNigunManageSelectedItemsViewStore extends MrbBaseViewStore {\r\n @observable isBulk = false;\r\n\r\n @computed get isSelectedItemsAny() {\r\n return this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists\r\n ? this.artistBulkEditViewStore.isSelectedItemsAny\r\n : this.albumBulkEditViewStore.isSelectedItemsAny;\r\n }\r\n\r\n constructor(rootStore, nakiNigunHomeViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.nakiNigunHomeViewStore = nakiNigunHomeViewStore;\r\n this.routeStore = nakiNigunHomeViewStore.routeStore;\r\n\r\n this.albumBulkEditViewStore = new NakiNigunAlbumBulkEditViewStore(this.rootStore, this.nakiNigunHomeViewStore);\r\n this.artistBulkEditViewStore = new NakiNigunArtistBulkEditViewStore(\r\n this.rootStore,\r\n this.nakiNigunHomeViewStore\r\n );\r\n }\r\n\r\n @action.bound\r\n changeIsBulk() {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n this.setIsBulk(!this.isBulk);\r\n }\r\n\r\n @action.bound\r\n setIsBulk(value) {\r\n this.isBulk = value;\r\n if (!this.isBulk) {\r\n this.clearSelection();\r\n }\r\n }\r\n\r\n @action.bound\r\n selectAll() {\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n this.artistBulkEditViewStore.selectAll();\r\n } else {\r\n this.albumBulkEditViewStore.selectAll();\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectAll() {\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n this.artistBulkEditViewStore.deselectAll();\r\n } else {\r\n this.albumBulkEditViewStore.deselectAll();\r\n }\r\n }\r\n\r\n @action.bound\r\n selectItem(item) {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n this.artistBulkEditViewStore.selectItem(item);\r\n } else {\r\n this.albumBulkEditViewStore.selectItem(item);\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n deselectItem(item) {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessNakiNigun({\r\n isPremium: item.isPremium,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n this.artistBulkEditViewStore.deselectItem(item);\r\n } else {\r\n this.albumBulkEditViewStore.deselectItem(item);\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async changeTurnOn(value) {\r\n let success;\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n success = await this.artistBulkEditViewStore.changeTurnOn(value);\r\n } else {\r\n success = await this.albumBulkEditViewStore.changeTurnOn(value);\r\n }\r\n if (success) {\r\n this.setIsBulk(false);\r\n }\r\n }\r\n\r\n @action.bound\r\n async saveSelection() {\r\n let success;\r\n if (this.nakiNigunHomeViewStore.nakiNigunContentTypeMode === nakiNigunContentType.artists) {\r\n success = await this.artistBulkEditViewStore.saveSelection();\r\n } else {\r\n success = await this.albumBulkEditViewStore.saveSelection();\r\n }\r\n if (success) {\r\n this.setIsBulk(false);\r\n }\r\n }\r\n\r\n @action.bound\r\n clearSelection() {\r\n this.artistBulkEditViewStore.clearSelection();\r\n this.albumBulkEditViewStore.clearSelection();\r\n }\r\n}\r\n\r\nexport default NakiNigunManageSelectedItemsViewStore;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistAlbumTemplate } from \"themes/application/naki-nigun/components\";\r\nimport { NakiNigunArtistAlbumViewStore } from \"application/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunArtistAlbumViewStore(rootStore, componentProps),\r\n \"nakiNigunArtistAlbumViewStore\"\r\n)\r\nclass NakiNigunArtistAlbum extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistAlbum;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeGridCellTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomeGridCell(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomeGridCell;\r\n","import React from \"react\";\r\nimport { NakiNigunSearchResultGridCellTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunSearchResultGridCell(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunSearchResultGridCell;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeFeaturedTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomeFeatured(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomeFeatured;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeMainViewTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomeMainView(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomeMainView;\r\n","import React from \"react\";\r\nimport { NakiNigunHomePageHeaderTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomePageHeader(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomePageHeader;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeSearchResultsTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomeSearchResults(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomeSearchResults;\r\n","import React from \"react\";\r\nimport { NakiNigunManageSelectedItemsTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunManageSelectedItems(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunManageSelectedItems;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeCategoryTemplate } from \"themes/application/naki-nigun/components\";\r\n\r\nfunction NakiNigunHomeCategory(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunHomeCategory;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { HomePreviewHeader, HomePreviewSubPodcastListLoader } from \"application/home/components\";\r\nimport { NakiNigunArtistAlbum } from \"application/naki-nigun/components\";\r\nimport { NakiNigunArtistUnavailableInApp } from \"application/common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\n\r\nfunction NakiNigunArtistTemplate({ nakiNigunArtistViewStore, t }) {\r\n const { loaderStore, item, coverImageUrl, contentAccessResult } = nakiNigunArtistViewStore;\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 {t(\"APPLICATION.NAKI_NIGUN.ARTIST.FIELDS.NAME\")}\r\n

\r\n \r\n {item.name}\r\n

\r\n {!contentAccessResult.canAccessOnSelectedDevice && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nNakiNigunArtistTemplate.propTypes = {\r\n nakiNigunArtistViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst Albums = observer(function Albums({ store, t }) {\r\n const { item, loaderStore } = store;\r\n\r\n return (\r\n }>\r\n {() => (\r\n \r\n {item && item.albums && item.albums.length > 0 && (\r\n
\r\n
\r\n
\r\n {map(item.albums, (album) => (\r\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 defaultTemplate(NakiNigunArtistTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { HomePageLayout, ConnectDeviceModal } from \"application/home/components\";\r\nimport {\r\n NakiNigunHomePageHeader,\r\n NakiNigunHomeMainView,\r\n NakiNigunHomeSearchResults,\r\n} from \"application/naki-nigun/components\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunHomeTemplate({ nakiNigunHomeViewStore, t }) {\r\n const { connectDeviceModal } = nakiNigunHomeViewStore;\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\nNakiNigunHomeTemplate.propTypes = {\r\n nakiNigunHomeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst ResultsContainer = observer(function ResultsContainer({ nakiNigunHomeViewStore, t }) {\r\n const { inSearchMode, nakiNigunGenericSearchViewStore } = nakiNigunHomeViewStore;\r\n return (\r\n \r\n {inSearchMode ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nexport default defaultTemplate(NakiNigunHomeTemplate);\r\n","import React from \"react\";\r\nimport { NakiNigunArtistTemplate } from \"themes/application/naki-nigun/pages\";\r\nimport { NakiNigunArtistViewStore } from \"application/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunArtistViewStore(rootStore, componentProps),\r\n \"nakiNigunArtistViewStore\"\r\n)\r\nclass NakiNigunArtist extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtist;\r\n","import React from \"react\";\r\nimport { NakiNigunHomeTemplate } from \"themes/application/naki-nigun/pages\";\r\nimport { NakiNigunHomeViewStore } from \"application/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunHomeViewStore(rootStore, componentProps),\r\n \"nakiNigunHomeViewStore\"\r\n)\r\nclass NakiNigunHome extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunHome;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { NakiNigunHome, NakiNigunArtist } from \"application/naki-nigun/pages\";\r\nimport { NakiNigunHomeRouteStore, NakiNigunArtistRouteStore } from \"application/naki-nigun/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"application.naki-nigun\",\r\n routes: [\r\n {\r\n name: \"master.application.naki-nigun\",\r\n pattern: \"/naki-nigun\",\r\n children: [\r\n {\r\n name: \"master.application.naki-nigun.list\",\r\n pattern: \"\",\r\n component: NakiNigunHome,\r\n store: NakiNigunHomeRouteStore,\r\n data: {\r\n title: \"APPLICATION.NAKI_NIGUN.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.application.naki-nigun.artist\",\r\n pattern: \"artist/:id\",\r\n component: NakiNigunArtist,\r\n store: NakiNigunArtistRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.NAKI_NIGUN\",\r\n order: 3,\r\n icon: \"nigun\",\r\n route: \"master.application.naki-nigun.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","export default __webpack_public_path__ + \"static/media/device-info.7add2e49.png\";","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbEditPage } from \"mrb/components\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport deviceInfo from \"themes/assets/images/device-info.png\";\r\n\r\nfunction DeviceCreateTemplate({ deviceCreateViewStore, t }) {\r\n const { form, deviceTemporaryCodeToUpper, onClickDeviceIdInfo, deviceIdInfoModal } = deviceCreateViewStore;\r\n return (\r\n \r\n

Connect your device to the portal

\r\n
\r\n }\r\n field={form.$(\"deviceTemporaryCode\")}\r\n classNameExtend=\"c-input--outline\"\r\n onChange={(event) => deviceTemporaryCodeToUpper(event.target.value)}\r\n />\r\n\r\n \r\n
\r\n\r\n \r\n \r\n );\r\n}\r\n\r\nDeviceCreateTemplate.propTypes = {\r\n deviceCreateViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction InfoLabelRenderer({ infoLabel, onClick }) {\r\n return (\r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n onClick();\r\n }}\r\n >\r\n \r\n \r\n {infoLabel}\r\n \r\n \r\n );\r\n}\r\n\r\nfunction DeviceIdInfoModal({ modalParams, t }) {\r\n return (\r\n \r\n
\r\n
\r\n \"Device\r\n
\r\n
\r\n

Where to find Device ID?

\r\n
\r\n
\r\n
    \r\n
  1. Press the menu/back button on your device.
  2. \r\n
  3. \r\n Choose Station List.\r\n
  4. \r\n
  5. You Device ID is a code with 8 characters.
  6. \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(DeviceCreateTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport {\r\n DeviceDowntimeEdit,\r\n DeviceDowntimeLoader,\r\n DeviceEditPageHeader,\r\n DowntimeNoteLoader,\r\n} from \"application/device-settings/components\";\r\nimport { MrbFieldInput } from \"mrb/components/input\";\r\nimport { MrbEditPage } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbFormFieldContentLoader } from \"mrb/components/loader\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbButton, MrbPageHeader } from \"baasic-react-bootstrap/src\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nfunction DeviceEditTemplate({ deviceEditViewStore, t = (i) => i }) {\r\n const {\r\n form,\r\n deviceDowntimeEditViewStore,\r\n loaderStore,\r\n navigateBack,\r\n cancelLabel,\r\n submitLabel,\r\n onClickCancel,\r\n title,\r\n layoutActions,\r\n navigationOptions,\r\n isDowntimeDisabled,\r\n } = deviceEditViewStore;\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 {!isDowntimeDisabled && (\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n
Presets
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n )}\r\n {!isDowntimeDisabled && (\r\n \r\n }\r\n >\r\n {() => (\r\n
\r\n Downtime is an option that enables you to lock the device at a certain time.\r\n
\r\n )}\r\n \r\n
\r\n )}\r\n \r\n {!isDowntimeDisabled && (\r\n
\r\n }>\r\n {() => }\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nDeviceEditTemplate.propTypes = {\r\n deviceEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(DeviceEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbListPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { MrbRectangleContentLoader } from \"mrb/components/loader\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { DeviceGridCell } from \"application/device-settings/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction DeviceListTemplate({ deviceListViewStore, t }) {\r\n const { gridStore } = deviceListViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n
{t(deviceListViewStore.title)}
\r\n \r\n
\r\n
\r\n

\r\n {t(\"APPLICATION.DEVICE_SETTINGS.LIST.TITLE\")}{\" \"}\r\n \r\n

\r\n }\r\n loaderRender={() => }\r\n />\r\n
\r\n );\r\n}\r\n\r\nDeviceListTemplate.propTypes = {\r\n deviceListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction deviceEmptyStateRender() {\r\n return (\r\n
\r\n
\r\n \r\n

Ooops! There is no device

\r\n

Please, add your device to start using NakiRadio.

\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst DeviceCounter = observer(function DeviceCounter({ deviceListViewStore, t }) {\r\n const { gridStore, deviceLimit } = deviceListViewStore;\r\n\r\n if (!gridStore.dataInitialized) {\r\n return null;\r\n }\r\n\r\n if (isNil(deviceLimit)) {\r\n return (\r\n \r\n ({gridStore.recordCount}/{t(\"APPLICATION.DEVICE_SETTINGS.LIST.UNLIMITED\")})\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n ({gridStore.recordCount}/{deviceLimit})\r\n \r\n );\r\n});\r\n\r\nconst HeaderActions = observer(function HeaderActions({ store }) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n});\r\n\r\nexport default defaultTemplate(DeviceListTemplate);\r\n","import { override } from \"mobx\";\r\nimport { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { DeviceService } from \"common/services\";\r\n\r\nclass DeviceCreateRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(DeviceService);\r\n }\r\n\r\n async registerUserDevice(resource) {\r\n const response = await this.service.registerUserDevice(resource);\r\n await this.rootStore.userDeviceStore.loadUserDevices();\r\n return response.data;\r\n }\r\n\r\n @override\r\n onBeforeEnter() {\r\n if (!this.rootStore.userDeviceStore.isDeviceSlotAvailable) {\r\n return Promise.reject(\"master.application.device.list\");\r\n }\r\n }\r\n}\r\n\r\nexport default DeviceCreateRouteStore;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class DeviceCreateForm 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: \"deviceTemporaryCode\",\r\n label: \"APPLICATION.DEVICE_SETTINGS.CREATE.FIELDS.DEVICE_ID_LABEL\",\r\n placeholder: \"APPLICATION.DEVICE_SETTINGS.CREATE.FIELDS.DEVICE_ID_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n extra: {\r\n infoLabel: \"Where can I find my Device ID?\",\r\n },\r\n },\r\n {\r\n name: \"deviceName\",\r\n label: \"APPLICATION.DEVICE_SETTINGS.CREATE.FIELDS.DEVICE_NAME_LABEL\",\r\n placeholder: \"APPLICATION.DEVICE_SETTINGS.CREATE.FIELDS.DEVICE_NAME_PLACEHOLDER\",\r\n rules: \"required|string|max:50\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class DeviceEditForm 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: \"deviceName\",\r\n label: \"APPLICATION.DEVICE_SETTINGS.EDIT.FIELDS.DEVICE_NAME_LABEL\",\r\n placeholder: \"APPLICATION.DEVICE_SETTINGS.EDIT.FIELDS.DEVICE_NAME_PLACEHOLDER\",\r\n rules: \"required|string|max:50\",\r\n },\r\n {\r\n name: \"timeZone\",\r\n label: \"APPLICATION.DEVICE_SETTINGS.EDIT.FIELDS.TIMEZONE_LABEL\",\r\n placeholder: \"APPLICATION.DEVICE_SETTINGS.EDIT.FIELDS.TIMEZONE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { DeviceCreateForm } from \"application/device-settings/forms\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\n\r\nclass DeviceCreateViewStore extends MrbBaseEditViewStore {\r\n @observable currentDeviceGuideImage = 1;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n name: \"device-create\",\r\n FormClass: DeviceCreateForm,\r\n autoFocusField: \"deviceTemporaryCode\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n navigateBack: \"master.application.device.list\",\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.deviceIdInfoModal = new MrbModalParams();\r\n\r\n this.onClickDeviceIdInfo = this.onClickDeviceIdInfo.bind(this);\r\n }\r\n\r\n @action.bound\r\n deviceTemporaryCodeToUpper(inputValue) {\r\n this.form.$(\"deviceTemporaryCode\").onChange(inputValue.toUpperCase());\r\n }\r\n\r\n create(resource) {\r\n if (!this.rootStore.userDeviceStore.isDeviceSlotAvailable) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"APPLICATION.DEVICE_SETTINGS.CREATE.ERROR.MAXIMUM_NUMBER_OF_DEVICES_REACHED\")\r\n );\r\n return;\r\n }\r\n return this.routeStore.registerUserDevice(resource);\r\n }\r\n\r\n onCreateError(error) {\r\n if (error.data.errorCode === applicationErrorCodes.device.notExists) {\r\n this.form\r\n .$(\"deviceTemporaryCode\")\r\n .invalidate(localizationService.t(\"APPLICATION.DEVICE_SETTINGS.CREATE.ERROR.DEVICE_NOT_EXIST\"));\r\n } else if (error.data.errorCode === applicationErrorCodes.device.alreadyRegistered) {\r\n this.form\r\n .$(\"deviceTemporaryCode\")\r\n .invalidate(\r\n localizationService.t(\"APPLICATION.DEVICE_SETTINGS.CREATE.ERROR.DEVICE_ALREADY_REGISTERED\")\r\n );\r\n } else {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"APPLICATION.DEVICE_SETTINGS.CREATE.ERROR.GENERIC_MESSAGE\")\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n toggleCurrentDeviceGuideImage() {\r\n switch (this.currentDeviceGuideImage) {\r\n case 1:\r\n this.currentDeviceGuideImage = 2;\r\n break;\r\n case 2:\r\n this.currentDeviceGuideImage = 3;\r\n break;\r\n case 3:\r\n this.currentDeviceGuideImage = 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n onClickDeviceIdInfo() {\r\n this.deviceIdInfoModal.open();\r\n }\r\n}\r\n\r\nexport default DeviceCreateViewStore;\r\n","import { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { MrbFieldSelectStore } from \"mrb/components/select\";\r\nimport {\r\n forEach,\r\n map,\r\n reduce,\r\n sortBy,\r\n some,\r\n isEmpty,\r\n filter,\r\n take,\r\n} from \"lodash\";\r\nimport moment from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\nclass DeviceDowntimeEditViewStore extends MrbBaseViewStore {\r\n @observable.ref weekDays = [];\r\n @observable.ref dayHours = [];\r\n @observable disableActionOccured = false;\r\n\r\n nightTime = [\r\n \"8pm\",\r\n \"9pm\",\r\n \"10pm\",\r\n \"11pm\",\r\n \"12am\",\r\n \"1am\",\r\n \"2am\",\r\n \"3am\",\r\n \"4am\",\r\n \"5am\",\r\n \"6am\",\r\n \"7am\",\r\n ];\r\n shabbosTimeFriday = [\"7pm\", \"8pm\", \"9pm\", \"10pm\", \"11pm\", \"12am\"];\r\n shabbosTimeSaturday = [\r\n \"1am\",\r\n \"2am\",\r\n \"3am\",\r\n \"4am\",\r\n \"5am\",\r\n \"6am\",\r\n \"7am\",\r\n \"8am\",\r\n \"9am\",\r\n \"10am\",\r\n \"11am\",\r\n \"12pm\",\r\n \"1pm\",\r\n \"2pm\",\r\n \"3pm\",\r\n \"4pm\",\r\n \"5pm\",\r\n \"6pm\",\r\n \"7pm\",\r\n ];\r\n\r\n constructor(rootStore, routeStore, form) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.form = form;\r\n if (!this.form.has(\"prohibitedTime\")) {\r\n this.form.add({ key: \"prohibitedTime\" });\r\n }\r\n\r\n this.timeZones = moment.tz.names();\r\n this.isAllDayChecked = this.isAllDayChecked.bind(this);\r\n }\r\n\r\n findTimeZone = (searchTerm) => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n if (!searchTerm) {\r\n resolve(take(this.timeZones, 15));\r\n } else {\r\n const items = filter(\r\n this.timeZones,\r\n (timeZone) =>\r\n timeZone.toLowerCase().indexOf(searchTerm) !== -1\r\n );\r\n resolve(take(items, 15));\r\n }\r\n }, 300);\r\n });\r\n };\r\n\r\n async initialize() {\r\n const [weekDays, dayHours] = await Promise.all([\r\n this.routeStore.getWeekDays(),\r\n this.routeStore.getDayHours(),\r\n ]);\r\n runInAction(() => {\r\n this.weekDays = sortBy(weekDays, (item) => item.order);\r\n this.dayHours = sortBy(dayHours, (item) => item.order);\r\n });\r\n const currentTimeZone = this.form.$(\"timeZone\").value;\r\n if (!currentTimeZone) {\r\n this.form.$(\"timeZone\").set(moment.tz.guess());\r\n }\r\n\r\n const timeZoneOptions = map(this.timeZones, (timeZone) => {\r\n return {\r\n id: timeZone,\r\n name: timeZone,\r\n };\r\n });\r\n\r\n this.timezoneSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n isMulti: false,\r\n virtualized: true,\r\n },\r\n this.form.$(\"timeZone\"),\r\n timeZoneOptions\r\n );\r\n }\r\n\r\n @action.bound\r\n buildForm(data) {\r\n forEach(this.weekDays, (day) => {\r\n this.form.$(\"prohibitedTime\").add({\r\n key: day.abrv,\r\n label: day.name,\r\n fields: [\r\n ...this.generateTimeFrameFields(data && data[day.abrv]),\r\n ],\r\n });\r\n });\r\n }\r\n\r\n generateTimeFrameFields(data) {\r\n return map(this.dayHours, (hour) => {\r\n return {\r\n name: hour.abrv,\r\n type: \"bool\",\r\n value:\r\n data && data.length > 0\r\n ? some(data, (hourAbrv) => hourAbrv === hour.abrv)\r\n : false,\r\n };\r\n });\r\n }\r\n\r\n @action.bound\r\n disableEntireDay(selectedDay, isChecked) {\r\n let days = this.form.$(\"prohibitedTime\").value;\r\n forEach(days[selectedDay], (value, index) => {\r\n days[selectedDay][index] = isChecked;\r\n });\r\n this.form.$(\"prohibitedTime\").update(days);\r\n this.disableActionOccured = true;\r\n }\r\n\r\n @action.bound\r\n disableNight() {\r\n let days = this.form.$(\"prohibitedTime\").value;\r\n forEach(this.nightTime, (value) => {\r\n forEach(days, (v, index) => {\r\n days[index][value] = true;\r\n });\r\n });\r\n this.form.$(\"prohibitedTime\").update(days);\r\n this.disableActionOccured = true;\r\n }\r\n\r\n @action.bound\r\n disableShabbos() {\r\n let days = this.form.$(\"prohibitedTime\").value;\r\n forEach(this.shabbosTimeFriday, function (value) {\r\n days[\"fri\"][value] = true;\r\n });\r\n forEach(this.shabbosTimeSaturday, function (value) {\r\n days[\"sat\"][value] = true;\r\n });\r\n this.form.$(\"prohibitedTime\").update(days);\r\n this.disableActionOccured = true;\r\n }\r\n\r\n @action.bound\r\n reset() {\r\n this.form.$(\"prohibitedTime\").reset();\r\n }\r\n\r\n isAllDayChecked(day) {\r\n return !some(day, (isSelected) => !isSelected);\r\n }\r\n\r\n processFormResult(deviceDowntime) {\r\n const obj = {};\r\n forEach(deviceDowntime, (dayTimeFrames, dayAbrv) => {\r\n const timeFrames = reduce(\r\n dayTimeFrames,\r\n function (result, value, key) {\r\n if (value) {\r\n result.push(key);\r\n }\r\n return result;\r\n },\r\n []\r\n );\r\n if (timeFrames && timeFrames.length > 0) {\r\n obj[dayAbrv] = timeFrames;\r\n }\r\n });\r\n return !isEmpty(obj) ? obj : null;\r\n }\r\n}\r\n\r\nexport default DeviceDowntimeEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { DeviceService, DayHourCacheService, WeekDayCacheService } from \"common/services\";\r\n\r\nclass DeviceEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(DeviceService);\r\n this.dayHourService = new DayHourCacheService(this.rootStore);\r\n this.weekDayService = new WeekDayCacheService(this.rootStore);\r\n }\r\n\r\n updateUserDevice(resource) {\r\n return this.rootStore.userDeviceStore.updateUserDevice(resource);\r\n }\r\n\r\n deleteUserDevice(resource) {\r\n return this.rootStore.userDeviceStore.deleteUserDevice(resource);\r\n }\r\n\r\n getUserDevice(id) {\r\n return this.rootStore.userDeviceStore.getUserDevice(id, { embed: \"device,device.systemType\" });\r\n }\r\n\r\n getWeekDays() {\r\n return this.weekDayService.getItems();\r\n }\r\n\r\n getDayHours() {\r\n return this.dayHourService.getItems();\r\n }\r\n}\r\n\r\nexport default DeviceEditRouteStore;\r\n","import { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { DeviceEditForm } from \"application/device-settings/forms\";\r\nimport { DeviceDowntimeEditViewStore } from \"application/device-settings/stores\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { nakiRadioSystemTypes } from \"common/constants\";\r\nimport { computed, makeObservable, observable } from \"mobx\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass DeviceEditViewStore extends MrbBaseEditViewStore {\r\n @observable isFormChanged = false;\r\n\r\n @computed get isDowntimeDisabled() {\r\n return (\r\n !isNil(this.item) &&\r\n !isNil(this.item.device) &&\r\n !isNil(this.item.device.systemType) &&\r\n this.item.device.systemType.abrv === nakiRadioSystemTypes.mobile\r\n );\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 name: \"device-edit\",\r\n FormClass: DeviceEditForm,\r\n autoFocusField: \"deviceName\",\r\n navigateBack: \"master.application.device.list\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.deviceDowntimeEditViewStore = new DeviceDowntimeEditViewStore(this.rootStore, this.routeStore, this.form);\r\n\r\n this.registerRouteExitBlocking();\r\n this.reaction(\r\n () => this.form.changed || this.deviceDowntimeEditViewStore.disableActionOccured,\r\n (isChanged) => {\r\n if (isChanged) {\r\n this.isFormChanged = isChanged;\r\n }\r\n }\r\n );\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getUserDevice(id);\r\n }\r\n\r\n update(resource) {\r\n resource.prohibitedTime = this.deviceDowntimeEditViewStore.processFormResult(resource.prohibitedTime);\r\n this.isFormChanged = false;\r\n return this.routeStore.updateUserDevice(resource);\r\n }\r\n\r\n async onInit() {\r\n await super.onInit();\r\n await this.deviceDowntimeEditViewStore.initialize();\r\n this.deviceDowntimeEditViewStore.buildForm(this.item.prohibitedTime);\r\n }\r\n\r\n onUpdateError(err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"APPLICATION.DEVICE_SETTINGS.EDIT.ERROR.GENERIC_MESSAGE\")\r\n );\r\n }\r\n\r\n registerRouteExitBlocking() {\r\n this.reaction(\r\n () => this.isFormChanged,\r\n (isChanged) => {\r\n this.routeStore.setIsRouteExitBlocked(isChanged);\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default DeviceEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { DeviceService } from \"common/services\";\r\n\r\nclass DeviceListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(DeviceService);\r\n }\r\n\r\n async findUserDevices(params) {\r\n const response = await this.service.findUserDeviceForAuthenticatedUser(\r\n params\r\n );\r\n return response.data;\r\n }\r\n\r\n deleteUserDevice(resource) {\r\n return this.rootStore.userDeviceStore.deleteUserDevice(resource);\r\n }\r\n}\r\n\r\nexport default DeviceListRouteStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { action, computed } from \"mobx\";\r\n\r\nclass DeviceListViewStore extends MrbBaseListViewStore {\r\n @computed get isAddDeviceEnabled() {\r\n return this.rootStore.userDeviceStore.isDeviceSlotAvailable;\r\n }\r\n\r\n @computed get deviceLimit() {\r\n return this.rootStore.userDeviceStore.deviceLimit;\r\n }\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.application.device.create\"),\r\n label: \"Add New Device\",\r\n },\r\n },\r\n queryConfig: {\r\n embed: \"device,device.systemType\",\r\n orderBy: \"deviceName\",\r\n orderDirection: \"asc\",\r\n },\r\n });\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) =>\r\n this.rootStore.routerStore.goTo(\"master.application.device.edit\", { id: item.id }),\r\n actions: {\r\n delete: {\r\n onClick: (item) => this.deleteUserDevice(item),\r\n },\r\n },\r\n })\r\n );\r\n\r\n this.joyrideSteps = [\r\n {\r\n target: \".c-device__card--sml\",\r\n content: \"Here you can set prohibited time for this device!\",\r\n },\r\n ];\r\n\r\n this.goToAddNewDevice = this.goToAddNewDevice.bind(this);\r\n }\r\n\r\n find(params) {\r\n return this.routeStore.findUserDevices(params);\r\n }\r\n\r\n goToAddNewDevice() {\r\n this.rootStore.routerStore.goTo(\"master.application.device.create\");\r\n }\r\n\r\n @action.bound\r\n async deleteUserDevice(resource) {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete device?\",\r\n onConfirm: async () => {\r\n try {\r\n this.rootStore.mainLoaderStore.suspend();\r\n await this.routeStore.deleteUserDevice(resource);\r\n this.rootStore.mainLoaderStore.resume();\r\n this.queryUtility.fetch();\r\n } catch (err) {\r\n this.rootStore.mainLoaderStore.resume();\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred. Unable to delete device.\",\r\n err\r\n );\r\n }\r\n },\r\n yesLabel: \"Delete\",\r\n noLabel: \"Cancel\",\r\n description: \"You won't be able to revert this action.\",\r\n });\r\n }\r\n}\r\n\r\nexport default DeviceListViewStore;\r\n","import React from \"react\";\r\nimport { DeviceCreateTemplate } from \"themes/application/device-settings/pages\";\r\nimport { DeviceCreateViewStore } from \"application/device-settings/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new DeviceCreateViewStore(rootStore, componentProps),\r\n \"deviceCreateViewStore\"\r\n)\r\nclass DeviceCreate extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default DeviceCreate;\r\n","import React from \"react\";\r\nimport { DeviceEditTemplate } from \"themes/application/device-settings/pages\";\r\nimport { DeviceEditViewStore } from \"application/device-settings/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new DeviceEditViewStore(rootStore, componentProps),\r\n \"deviceEditViewStore\"\r\n)\r\nclass DeviceEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default DeviceEdit;\r\n","import React from \"react\";\r\nimport { DeviceListTemplate } from \"themes/application/device-settings/pages\";\r\nimport { DeviceListViewStore } from \"application/device-settings/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new DeviceListViewStore(rootStore, componentProps),\r\n \"deviceListViewStore\"\r\n)\r\nclass DeviceList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default DeviceList;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { DeviceCreate, DeviceEdit, DeviceList } from \"application/device-settings/pages\";\r\nimport { DeviceCreateRouteStore, DeviceEditRouteStore, DeviceListRouteStore } from \"application/device-settings/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"DeviceSettings\",\r\n routes: [\r\n {\r\n name: \"master.application.device\",\r\n pattern: \"/device\",\r\n children: [\r\n {\r\n name: \"master.application.device.list\",\r\n pattern: \"\",\r\n component: DeviceList,\r\n store: DeviceListRouteStore,\r\n data: {\r\n title: \"APPLICATION.DEVICE_SETTINGS.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.application.device.create\",\r\n pattern: \"/create\",\r\n component: DeviceCreate,\r\n store: DeviceCreateRouteStore,\r\n },\r\n {\r\n name: \"master.application.device.edit\",\r\n pattern: \"/:id/edit\",\r\n component: DeviceEdit,\r\n store: DeviceEditRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.DEVICES\",\r\n order: 4,\r\n icon: \"devices\",\r\n route: \"master.application.device.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class UserProfileEditForm 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: \"email\",\r\n label: \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.EMAIL_LABEL\",\r\n placeholder:\r\n \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.EMAIL_PLACEHOLDER\",\r\n rules: \"required|email|string\",\r\n },\r\n {\r\n name: \"firstName\",\r\n label: \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.FIRST_NAME_LABEL\",\r\n placeholder:\r\n \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.FIRST_NAME_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"lastName\",\r\n label: \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.LAST_NAME_LABEL\",\r\n placeholder:\r\n \"APPLICATION.USER_SETTINGS.EDIT.FIELDS.LAST_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 UserProfileChangePasswordForm 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: \"password\",\r\n label:\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.FIELDS.PASSWORD_LABEL\",\r\n type: \"password\",\r\n placeholder:\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.FIELDS.PASSWORD_PLACEHOLDER\",\r\n rules: [\r\n \"required\",\r\n \"string\",\r\n \"min:8\",\r\n \"regex:/([^a-zA-Z\\\\d])+([a-zA-Z\\\\d])+|([a-zA-Z\\\\d])+([^a-zA-Z\\\\d])+/\",\r\n ],\r\n },\r\n {\r\n name: \"confirmPassword\",\r\n label:\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.FIELDS.CONFIRM_PASSWORD_LABEL\",\r\n placeholder:\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.FIELDS.CONFIRM_PASSWORD_PLACEHOLDER\",\r\n rules: \"required|string|same:password\",\r\n type: \"password\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { override } from \"mobx\";\r\nimport { MrbBaseEditViewStore, httpStatusCodes } from \"mrb/core\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { merge } from \"lodash\";\r\nimport { UserProfileEditForm } from \"application/user-settings/forms\";\r\n\r\nclass UserProfileEditViewStore extends MrbBaseEditViewStore {\r\n administratorRole = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n id: rootStore.userStore.user.id,\r\n name: \"user\",\r\n FormClass: UserProfileEditForm,\r\n autoFocusField: \"firstName\",\r\n successCreateNotification: null,\r\n successUpdateNotification: localizationService.t(\"APPLICATION.USER_SETTINGS.EDIT.SUCCESS_MESSAGE\"),\r\n redirectOnUpdateSuccess: false\r\n });\r\n this.routeStore = routeStore;\r\n }\r\n\r\n get() {\r\n return this.routeStore.getResource();\r\n }\r\n\r\n update(data) {\r\n const resource = merge({}, this.item);\r\n resource.firstName = data.firstName;\r\n resource.lastName = data.lastName;\r\n resource.email = data.email;\r\n resource.roles = null;\r\n\r\n return this.routeStore.update(resource);\r\n }\r\n\r\n @override\r\n updateForm(values) {\r\n this.form.set({\r\n firstName: values.userProfile && values.userProfile.firstName,\r\n lastName: values.userProfile && values.userProfile.lastName,\r\n email: values.email,\r\n });\r\n }\r\n\r\n onUpdateError(error) {\r\n if (\r\n error.statusCode &&\r\n error.statusCode === httpStatusCodes.BadRequest\r\n ) {\r\n this.form\r\n .$(\"email\")\r\n .invalidate(\r\n \"User with specified E-mail address already exists.\"\r\n );\r\n } else {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\r\n \"APPLICATION.USER_SETTINGS.EDIT.ERROR.GENERIC_MESSAGE\"\r\n ),\r\n error\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default UserProfileEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\n\r\nclass UserProfileEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.application.baasic.membershipModule.user;\r\n }\r\n\r\n getResource() {\r\n return Promise.resolve(this.rootStore.userStore.user);\r\n }\r\n\r\n update(resource) {\r\n return this.rootStore.userStore.updateAccountInfo(resource);\r\n }\r\n\r\n changeUserPassword(userId, resource) {\r\n return this.service.changePassword(userId, resource);\r\n }\r\n}\r\n\r\nexport default UserProfileEditRouteStore;\r\n","import { override } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { UserProfileChangePasswordForm } from \"application/user-settings/forms\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass UserProfilePasswordChangeViewStore extends MrbBaseEditViewStore {\r\n constructor(rootStore, { componentProps }) {\r\n super(rootStore, {\r\n name: \"password-change\",\r\n FormClass: UserProfileChangePasswordForm,\r\n successCreateNotification: localizationService.t(\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.SUCCESS_MESSAGE\"\r\n ),\r\n successUpdateNotification: null,\r\n redirectOnCreateSuccess: false,\r\n });\r\n this.routeStore = componentProps;\r\n }\r\n\r\n create(data) {\r\n return this.routeStore.changeUserPassword(\r\n this.rootStore.userStore.user.id,\r\n {\r\n newPassword: data.password,\r\n siteUrl: window.location.origin,\r\n }\r\n );\r\n }\r\n\r\n @override\r\n onCreateSuccess(result) {\r\n this.notifySuccessCreate();\r\n this.form.clear();\r\n }\r\n\r\n onCreateError(error) {\r\n if (error.data && error.data.errorCode === 4000022103) {\r\n this.form.invalidate(\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.ERROR.USER_IS_DISAPPROVED\"\r\n );\r\n } else {\r\n this.form.invalidate(\r\n \"APPLICATION.USER_SETTINGS.PASSWORD_CHANGE.ERROR.GENERIC_MESSAGE\"\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default UserProfilePasswordChangeViewStore;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput } from \"mrb/components/input\";\r\nimport { MrbEditFormLayout } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { PasswordFieldInfo } from \"common/components\";\r\nfunction UserProfilePasswordChangeTemplate({\r\n userProfilePasswordChangeViewStore,\r\n t,\r\n}) {\r\n const { form } = userProfilePasswordChangeViewStore;\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\nUserProfilePasswordChangeTemplate.propTypes = {\r\n userProfilePasswordChangeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(UserProfilePasswordChangeTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput } from \"mrb/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbEditFormLayout } from \"mrb/components/layout\";\r\n\r\nfunction UserProfileGeneralInfo({ userProfileEditViewStore, t }) {\r\n const { form } = userProfileEditViewStore;\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\nUserProfileGeneralInfo.propTypes = {\r\n userProfileEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(UserProfileGeneralInfo);\r\n","import React from \"react\";\r\nimport { UserProfilePasswordChangeViewStore } from \"application/user-settings/stores\";\r\nimport { UserProfilePasswordChangeTemplate } from \"themes/application/user-settings/components\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new UserProfilePasswordChangeViewStore(rootStore, componentProps),\r\n \"userProfilePasswordChangeViewStore\"\r\n)\r\nclass UserProfilePasswordChange extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserProfilePasswordChange;","import React from \"react\";\r\nimport UserProfileGeneralInfoTemplate from \"themes/application/user-settings/components/UserProfileGeneralInfoTemplate\";\r\n\r\nclass UserProfileGeneralInfo extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserProfileGeneralInfo;","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { UserEditLoader } from \"administration/user/components\";\r\n\r\nimport { UserProfilePasswordChange, UserProfileGeneralInfo } from \"application/user-settings/components\";\r\nimport { ChangePasswordLoader } from \"common/components\";\r\n\r\nfunction UserProfileEditTemplate({ userProfileEditViewStore, t }) {\r\n const { loaderStore, routeStore } = userProfileEditViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n
{t(\"APPLICATION.USER_SETTINGS.EDIT.FIELDS.TITLE\")}
\r\n
\r\n
\r\n
\r\n
\r\n

Personal Details

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

\r\n {t(\"ADMINISTRATION.USER.PASSWORD_CHANGE.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\nUserProfileEditTemplate.propTypes = {\r\n userProfileEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(UserProfileEditTemplate);\r\n","import React from \"react\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { UserProfileEditTemplate } from \"themes/application/user-settings/pages\";\r\nimport { UserProfileEditViewStore } from \"application/user-settings/stores\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new UserProfileEditViewStore(rootStore, componentProps),\r\n \"userProfileEditViewStore\"\r\n)\r\nclass UserProfileEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserProfileEdit;","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { UserProfileEdit } from \"application/user-settings/pages\";\r\nimport { UserProfileEditRouteStore } from \"application/user-settings/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"UserSettings\",\r\n routes: [\r\n {\r\n name: \"master.application.user\",\r\n pattern: \"/userprofile\",\r\n children: [\r\n {\r\n name: \"master.application.user.edit\",\r\n component: UserProfileEdit,\r\n store: UserProfileEditRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.SETTINGS\",\r\n order: 6,\r\n icon: \"settings\",\r\n subMenu: [\r\n {\r\n title: \"User Settings\",\r\n order: 1,\r\n route: \"master.application.user.edit\",\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 { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { applicationDefaults, subscriptionPlans } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport {\r\n TrialActivatedModal,\r\n NakiRadioPremiumBadge,\r\n NakiNigunPremiumBadge,\r\n SubscriptionPlanLoader,\r\n} from \"application/payment/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport moment from \"moment\";\r\n\r\nfunction ActivateTrialTemplate({ activateTrialViewStore, t }) {\r\n const { activateTrial, isSubmitDisabled, trialActivatedModal, subscriptionPlan, loaderStore } =\r\n activateTrialViewStore;\r\n const endDate = moment().add(applicationDefaults.trialPeriodDays, \"days\");\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Premium\r\n \r\n
\r\n
\r\n\r\n
\r\n }>\r\n {() => (\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n

{t(\"APPLICATION.PREMIUM.TRIAL.START_DATE_LABEL\")}

\r\n

{t(\"APPLICATION.PREMIUM.TRIAL.START_DATE_VALUE\")}

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

{t(\"APPLICATION.PREMIUM.TRIAL.END_DATE_LABEL\")}

\r\n

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

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

Cancel Anytime Policy

\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nActivateTrialTemplate.propTypes = {\r\n activateTrialViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction SubscriptionPlan({ subscriptionPlan }) {\r\n let premiumBadge = null;\r\n switch (subscriptionPlan.slug) {\r\n case subscriptionPlans.nakiRadioPremium:\r\n premiumBadge = ;\r\n break;\r\n case subscriptionPlans.nakiNigun:\r\n premiumBadge = ;\r\n break;\r\n default:\r\n break;\r\n }\r\n return (\r\n
\r\n
\r\n {premiumBadge}\r\n\r\n
\r\n

{subscriptionPlan.name} Trial

\r\n

Free

\r\n

\r\n {applicationDefaults.trialPeriodDays} days free trial\r\n

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(ActivateTrialTemplate);\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 { SubscriptionPlanCard } from \"application/payment/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map, isNil } from \"lodash\";\r\n\r\nfunction ChangeSubscriptionPlanPreviewTemplate({ changeSubscriptionPlanPreviewViewStore, t }) {\r\n const { subscriptionPlans, subscription, loaderStore } = changeSubscriptionPlanPreviewViewStore;\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Subscription\r\n \r\n
\r\n
\r\n\r\n
\r\n {map(subscriptionPlans, (subscriptionPlan) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n
\r\n );\r\n}\r\n\r\nChangeSubscriptionPlanPreviewTemplate.propTypes = {\r\n changeSubscriptionPlanPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(ChangeSubscriptionPlanPreviewTemplate);\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 { MrbButton } from \"mrb/components/button\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { CreditCardInfo, SubscriptionPrice, ChangeSubscriptionPlanLoader } from \"application/payment/components\";\r\nimport { currencyFormatter, dateFormatter } from \"mrb/common/formatting\";\r\nimport { subscriptionStatuses, subscriptionPlans } from \"common/constants\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map, isNil } from \"lodash\";\r\n\r\nfunction ChangeSubscriptionPlanTemplate({ changeSubscriptionPlanViewStore, t }) {\r\n const {\r\n subscriptionChangePreview,\r\n changePlanSuccessModal,\r\n currentSubscription,\r\n isChangePlanDisabled,\r\n customerPaymentMethod,\r\n loaderStore,\r\n changePlan,\r\n } = changeSubscriptionPlanViewStore;\r\n\r\n return (\r\n \r\n \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

Change Subscription Plan details

\r\n
\r\n }\r\n >\r\n {() => (\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n {!isNil(customerPaymentMethod) && (\r\n
\r\n

Payment method

\r\n \r\n
\r\n )}\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nChangeSubscriptionPlanTemplate.propTypes = {\r\n changeSubscriptionPlanViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction SubscriptionPlanCard({ subscriptionPlan, isNew = false, price }) {\r\n let subscriptionPlanColor = \"\";\r\n let subscriptionPlanIcon = \"\";\r\n switch (subscriptionPlan.slug) {\r\n case subscriptionPlans.nakiNigun:\r\n subscriptionPlanColor = \"tertiary\";\r\n subscriptionPlanIcon = \"u-icon--plan--nigun\";\r\n break;\r\n case subscriptionPlans.nakiRadioPremium:\r\n subscriptionPlanColor = \"primary\";\r\n subscriptionPlanIcon = \"u-icon--plan--premium\";\r\n break;\r\n default:\r\n subscriptionPlanColor = \"tertiary\";\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{isNew ? \"New Plan\" : \"Old Plan\"}

\r\n

{subscriptionPlan.name}

\r\n

\r\n \r\n

\r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction SubscriptionPolicies({ subscriptionChangePreview, currentSubscription, t }) {\r\n if (currentSubscription.subscriptionStatus.abrv === subscriptionStatuses.trial) {\r\n return createTrialSubscriptionPaymentPolicy(subscriptionChangePreview, currentSubscription, t);\r\n }\r\n return createSubscriptionPaymentPolicy(subscriptionChangePreview, currentSubscription, t);\r\n}\r\n\r\nfunction createSubscriptionPaymentPolicy(subscriptionChangePreview, currentSubscription, t) {\r\n const paymentPolicy = [];\r\n if (!subscriptionChangePreview.isUpgrade) {\r\n paymentPolicy.push(\r\n

\r\n Your {currentSubscription.product.name} subscription will remain active until{\" \"}\r\n {dateFormatter.format(subscriptionChangePreview.dateOfChange, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n .\r\n

\r\n );\r\n }\r\n paymentPolicy.push();\r\n paymentPolicy.push(\r\n

\r\n Starting from\r\n \r\n {\" \"}\r\n {dateFormatter.format(currentSubscription.nextBillingDate, {\r\n format: applicationDefaults.formats.date,\r\n })}{\" \"}\r\n \r\n we will charge you{\" \"}\r\n \r\n for{\" \"}\r\n {subscriptionChangePreview.newSubscriptionPlan.name}\r\n {\" \"}\r\n subscription.\r\n

\r\n );\r\n\r\n return paymentPolicy;\r\n}\r\n\r\nfunction createTrialSubscriptionPaymentPolicy(subscriptionChangePreview, currentSubscription, t) {\r\n const paymentPolicy = [];\r\n paymentPolicy.push(

Your new subscription starts today

);\r\n if (isNil(currentSubscription.endDate)) {\r\n paymentPolicy.push(\r\n

\r\n Starting from{\" \"}\r\n {dateFormatter.format(currentSubscription.nextBillingDate, {\r\n format: applicationDefaults.formats.date,\r\n })}{\" \"}\r\n we will charge you for{\" \"}\r\n {subscriptionChangePreview.newSubscriptionPlan.name} subscription\r\n

\r\n );\r\n } else {\r\n paymentPolicy.push(\r\n

\r\n {subscriptionChangePreview.newSubscriptionPlan.name} Trial subscription will be active until{\" \"}\r\n {dateFormatter.format(currentSubscription.endDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n

\r\n );\r\n }\r\n\r\n return paymentPolicy;\r\n}\r\n\r\nfunction SubscriptionStartDate({ subscriptionChangePreview, t }) {\r\n if (isNil(subscriptionChangePreview.dateOfChange)) {\r\n return

Your new subscription plan starts today

;\r\n }\r\n return (\r\n

\r\n Your new subscription plan starts on{\" \"}\r\n {dateFormatter.format(subscriptionChangePreview.dateOfChange, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n .\r\n

\r\n );\r\n}\r\n\r\nfunction ProratedInvoicePreview({ subscriptionChangePreview, invoicePreview }) {\r\n if (isNil(invoicePreview)) {\r\n return null;\r\n }\r\n if (invoicePreview.totalAmount === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n

\r\n We will immediately charge you{\" \"}\r\n {currencyFormatter.format(invoicePreview.totalAmount, {\r\n currency: \"USD\",\r\n })}{\" \"}\r\n for upgrading to {subscriptionChangePreview.newSubscriptionPlan.name} subscription:\r\n

\r\n
\r\n {map(invoicePreview.lineItems, (lineItem, index) => {\r\n return (\r\n
\r\n

{lineItem.description}

\r\n

\r\n {currencyFormatter.format(lineItem.amount, {\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\nfunction UpgradeSuccessModal({ modalParams, t }) {\r\n const { params, data = {} } = modalParams;\r\n let title, description;\r\n let confirmLabel = t(\"APPLICATION.PREMIUM.CHANGE_PLAN.SUCCESS.CONFIRM_BUTTON\", {\r\n subscriptionPlan: data.subscriptionPlan,\r\n });\r\n if (data.billingStartDate) {\r\n const billingStartDate = dateFormatter.format(data.billingStartDate, {\r\n format: applicationDefaults.formats.longDate,\r\n });\r\n title = t(\"APPLICATION.PREMIUM.CHANGE_PLAN.SUCCESS.TITLE\");\r\n description = t(\"APPLICATION.PREMIUM.CHANGE_PLAN.SUCCESS.DESCRIPTION_FUTURE\", {\r\n startDate: billingStartDate,\r\n subscriptionPlan: data.subscriptionPlan,\r\n });\r\n } else {\r\n title = t(\"APPLICATION.PREMIUM.CHANGE_PLAN.SUCCESS.TITLE\");\r\n description = t(\"APPLICATION.PREMIUM.CHANGE_PLAN.SUCCESS.DESCRIPTION\", {\r\n subscriptionPlan: data.subscriptionPlan,\r\n });\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\nexport default defaultTemplate(ChangeSubscriptionPlanTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { useStripe, useElements, CardElement } from \"@stripe/react-stripe-js\";\r\nimport { MrbEditPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport {\r\n CreditCardInfo,\r\n TakePaymentHeader,\r\n PaymentSuccessModal,\r\n NakiNigunPremiumBadge,\r\n NakiRadioPremiumBadge,\r\n SubscriptionPlanLoader,\r\n SubscriptionPrice,\r\n} from \"application/payment/components\";\r\nimport { StripeCreditCardField } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\nimport { subscriptionPlans } from \"common/constants\";\r\n\r\nfunction TakePaymentTemplate({ takePaymentViewStore, t }) {\r\n const stripe = useStripe();\r\n const elements = useElements();\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 takePaymentViewStore.setStripe(stripe);\r\n const { subscriptionPlan, isPaymentDisabled, paymentSuccessModal, loaderStore } = takePaymentViewStore;\r\n\r\n const subscribe = () => {\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 takePaymentViewStore.onClickSubscribe(cardElement);\r\n };\r\n\r\n return (\r\n {\r\n subscribe();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n

{t(\"APPLICATION.PREMIUM.PAYMENT.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

{t(\"APPLICATION.PREMIUM.PAYMENT.INFO.START_DATE_LABEL\")}

\r\n

{t(\"APPLICATION.PREMIUM.PAYMENT.INFO.START_DATE_VALUE\")}

\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n\r\n \r\n \r\n );\r\n}\r\n\r\nTakePaymentTemplate.propTypes = {\r\n takePaymentViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst CreditCard = observer(function CreditCard({ store, t }) {\r\n const {\r\n stripeField,\r\n paymentMethodExist,\r\n rootStore: { premiumSubscriptionStore },\r\n } = store;\r\n if (paymentMethodExist) {\r\n return (\r\n
\r\n

Payment method

\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n});\r\n\r\nexport default defaultTemplate(TakePaymentTemplate);\r\n\r\nfunction SubscriptionPlan({ subscriptionPlan }) {\r\n let premiumBadge = null;\r\n let activeClassName = \"\";\r\n\r\n switch (subscriptionPlan.slug) {\r\n case subscriptionPlans.nakiRadioPremium:\r\n activeClassName = \"primary\";\r\n premiumBadge = ;\r\n break;\r\n case subscriptionPlans.nakiNigun:\r\n activeClassName = \"tertiary\";\r\n premiumBadge = ;\r\n break;\r\n default:\r\n break;\r\n }\r\n return (\r\n
\r\n
\r\n {premiumBadge}\r\n\r\n
\r\n

{subscriptionPlan.name}

\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 { useStripe, useElements, CardElement } from \"@stripe/react-stripe-js\";\r\nimport { MrbEditPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport {\r\n CreditCardInfo,\r\n TakePaymentHeader,\r\n PaymentSuccessModal,\r\n NakiNigunPremiumBadge,\r\n NakiRadioPremiumBadge,\r\n SubscriptionPlanLoader,\r\n SubscriptionPrice,\r\n} from \"application/payment/components\";\r\nimport { StripeCreditCardField } from \"common/components\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\nimport { subscriptionPlans } from \"common/constants\";\r\n\r\nfunction UpgradeTrialTemplate({ upgradeTrialViewStore, t }) {\r\n const stripe = useStripe();\r\n const elements = useElements();\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 upgradeTrialViewStore.setStripe(stripe);\r\n const {\r\n subscriptionPlan,\r\n isPaymentDisabled,\r\n paymentSuccessModal,\r\n loaderStore,\r\n rootStore: { premiumSubscriptionStore },\r\n } = upgradeTrialViewStore;\r\n\r\n const subscribe = () => {\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 upgradeTrialViewStore.onClickSubscribe(cardElement);\r\n };\r\n\r\n return (\r\n {\r\n subscribe();\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

{t(\"APPLICATION.PREMIUM.PAYMENT.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

{t(\"APPLICATION.PREMIUM.PAYMENT.INFO.START_DATE_LABEL\")}

\r\n

\r\n {dateFormatter.format(premiumSubscriptionStore.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\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n );\r\n}\r\n\r\nUpgradeTrialTemplate.propTypes = {\r\n upgradeTrialViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst CreditCard = observer(function CreditCard({ store, t }) {\r\n const {\r\n stripeField,\r\n paymentMethodExist,\r\n rootStore: { premiumSubscriptionStore },\r\n } = store;\r\n if (paymentMethodExist) {\r\n return (\r\n
\r\n

Payment method

\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n});\r\n\r\nexport default defaultTemplate(UpgradeTrialTemplate);\r\n\r\nfunction SubscriptionPlan({ subscriptionPlan }) {\r\n let premiumBadge = null;\r\n let activeClassName = \"\";\r\n switch (subscriptionPlan.slug) {\r\n case subscriptionPlans.nakiRadioPremium:\r\n activeClassName = \"primary\";\r\n premiumBadge = ;\r\n break;\r\n case subscriptionPlans.nakiNigun:\r\n activeClassName = \"tertiary\";\r\n premiumBadge = ;\r\n break;\r\n default:\r\n break;\r\n }\r\n return (\r\n
\r\n
\r\n {premiumBadge}\r\n\r\n
\r\n

{subscriptionPlan.name}

\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 { MrbPreviewPage } from \"mrb/components/layout\";\r\nimport { PremiumContentList, SubscriptionPlanCard } from \"application/payment/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction PremiumSubscriptionsTemplate({ premiumSubscriptionsViewStore, t }) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst SubscriptionPlans = observer(function SubscriptionPlans({ premiumSubscriptionsViewStore }) {\r\n const {\r\n loaderStore,\r\n subscriptionPlans,\r\n setSelectedSubscriptionPlan,\r\n subscriptionExist,\r\n rootStore: { premiumSubscriptionStore },\r\n } = premiumSubscriptionsViewStore;\r\n\r\n return (\r\n
\r\n \r\n {subscriptionPlans && subscriptionPlans.length > 0 && (\r\n
\r\n {map(subscriptionPlans, (subscriptionPlan) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n});\r\n\r\nPremiumSubscriptionsTemplate.propTypes = {\r\n premiumSubscriptionsViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(PremiumSubscriptionsTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage } from \"mrb/components/layout\";\r\nimport { UserSubscriptionInfo, CustomerPaymentMethodInfo } from \"application/payment/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction UserSubscriptionsPreviewTemplate({ userSubscriptionsPreviewViewStore, t }) {\r\n const { pendingSubscription } = userSubscriptionsPreviewViewStore;\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\nUserSubscriptionsPreviewTemplate.propTypes = {\r\n userSubscriptionsPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst SubscriptionPlan = observer(function SubscriptionPlan({ userSubscriptionsPreviewViewStore, t }) {\r\n const { routeStore } = userSubscriptionsPreviewViewStore;\r\n return (\r\n
\r\n

Subscription Plan

\r\n \r\n
\r\n );\r\n});\r\n\r\nexport default defaultTemplate(UserSubscriptionsPreviewTemplate);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ActivateTrialTemplate } from \"themes/application/payment/pages\";\r\nimport { ActivateTrialViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { stripeProvider } from \"common/hoc\";\r\n\r\n@stripeProvider\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ActivateTrialViewStore(rootStore, componentProps),\r\n \"activateTrialViewStore\"\r\n)\r\n@observer\r\nclass ActivateTrial extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ActivateTrial;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ChangeSubscriptionPlanTemplate } from \"themes/application/payment/pages\";\r\nimport { ChangeSubscriptionPlanViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ChangeSubscriptionPlanViewStore(rootStore, componentProps),\r\n \"changeSubscriptionPlanViewStore\"\r\n)\r\n@observer\r\nclass ChangeSubscriptionPlan extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ChangeSubscriptionPlan;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ChangeSubscriptionPlanPreviewTemplate } from \"themes/application/payment/pages\";\r\nimport { ChangeSubscriptionPlanPreviewViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { stripeProvider } from \"common/hoc\";\r\n\r\n@stripeProvider\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ChangeSubscriptionPlanPreviewViewStore(rootStore, componentProps),\r\n \"changeSubscriptionPlanPreviewViewStore\"\r\n)\r\n@observer\r\nclass ChangeSubscriptionPlanPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ChangeSubscriptionPlanPreview;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { TakePaymentTemplate } from \"themes/application/payment/pages\";\r\nimport { TakePaymentViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { stripeProvider } from \"common/hoc\";\r\n\r\n@stripeProvider\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TakePaymentViewStore(rootStore, componentProps),\r\n \"takePaymentViewStore\"\r\n)\r\n@observer\r\nclass TakePayment extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TakePayment;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UpgradeTrialTemplate } from \"themes/application/payment/pages\";\r\nimport { UpgradeTrialViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { stripeProvider } from \"common/hoc\";\r\n\r\n@stripeProvider\r\n@setCurrentView(\r\n (rootStore, componentProps) => new UpgradeTrialViewStore(rootStore, componentProps),\r\n \"upgradeTrialViewStore\"\r\n)\r\n@observer\r\nclass UpgradeTrial extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UpgradeTrial;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PremiumSubscriptionsTemplate } from \"themes/application/payment/pages\";\r\nimport { PremiumSubscriptionsViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PremiumSubscriptionsViewStore(rootStore, componentProps),\r\n \"premiumSubscriptionsViewStore\"\r\n)\r\n@observer\r\nclass PremiumSubscriptions extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PremiumSubscriptions;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UserSubscriptionsPreviewTemplate } from \"themes/application/payment/pages\";\r\nimport { UserSubscriptionsPreviewViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new UserSubscriptionsPreviewViewStore(rootStore, componentProps),\r\n \"userSubscriptionsPreviewViewStore\"\r\n)\r\n@observer\r\nclass UserSubscriptionsPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserSubscriptionsPreview;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n ActivateTrial,\r\n ChangeSubscriptionPlan,\r\n UpgradeTrial,\r\n TakePayment,\r\n UserSubscriptionsPreview,\r\n PremiumSubscriptions,\r\n} from \"application/payment/pages\";\r\nimport {\r\n ActivateTrialRouteStore,\r\n ChangeSubscriptionPlanRouteStore,\r\n UpgradeTrialRouteStore,\r\n TakePaymentRouteStore,\r\n UserSubscriptionsPreviewRouteStore,\r\n PremiumSubscriptionsRouteStore,\r\n} from \"application/payment/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"application\").register({\r\n name: \"application.premium\",\r\n routes: [\r\n {\r\n name: \"master.application.premium\",\r\n pattern: \"/premium\",\r\n children: [\r\n {\r\n name: \"master.application.premium.trial\",\r\n pattern: \"/trial/:planId\",\r\n component: ActivateTrial,\r\n store: ActivateTrialRouteStore,\r\n },\r\n {\r\n name: \"master.application.premium.payment\",\r\n pattern: \"/payment/:planId\",\r\n component: TakePayment,\r\n store: TakePaymentRouteStore,\r\n },\r\n {\r\n name: \"master.application.premium.trial.upgrade\",\r\n pattern: \"/trial-upgrade/:subscriptionId\",\r\n component: UpgradeTrial,\r\n store: UpgradeTrialRouteStore,\r\n },\r\n {\r\n name: \"master.application.premium.info\",\r\n pattern: \"\",\r\n component: UserSubscriptionsPreview,\r\n store: UserSubscriptionsPreviewRouteStore,\r\n data: {\r\n title: \"APPLICATION.PREMIUM.MY_PLANS\",\r\n },\r\n },\r\n {\r\n name: \"master.application.premium.subscriptions\",\r\n pattern: \"/subscriptions\",\r\n component: PremiumSubscriptions,\r\n store: PremiumSubscriptionsRouteStore,\r\n data: {\r\n title: \"APPLICATION.PREMIUM.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.application.premium.change-plan.edit\",\r\n pattern: \"/change-plan/:planId\",\r\n component: ChangeSubscriptionPlan,\r\n store: ChangeSubscriptionPlanRouteStore,\r\n },\r\n // {\r\n // name: \"master.application.premium.change-plan.preview\",\r\n // pattern: \"/change-plan\",\r\n // component: ChangeSubscriptionPlanPreview,\r\n // store: ChangeSubscriptionPlanPreviewRouteStore,\r\n // },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"APPLICATION.MENU.SUBSCRIPTIONS\",\r\n order: 5,\r\n icon: \"subscriptions\",\r\n subMenu: [\r\n {\r\n title: \"Subscriptions\",\r\n order: 1,\r\n route: \"master.application.premium.subscriptions\",\r\n },\r\n {\r\n title: \"My Plans\",\r\n order: 2,\r\n route: \"master.application.premium.info\",\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n})();\r\n"],"sourceRoot":""}