{"version":3,"sources":["administration/podcast/forms/PodcastEditForm.js","administration/podcast/forms/PodcastGroupEditForm.js","administration/podcast/forms/PodcastGroupItemEditForm.js","administration/podcast/forms/PodcastVolumeEditForm.js","administration/podcast/forms/PodcastEpisodeEditTitleForm.js","administration/podcast/forms/PodcastEpisodeEditForm.js","themes/default/administration/naki-nigun/components/content-loader/NakiNigunArtistEditNameLoaderTemplate.jsx","themes/default/administration/naki-nigun/components/content-loader/NakiNigunAddAlbumLoaderTemplate.jsx","themes/default/administration/naki-nigun/components/content-loader/NakiNigunArtistAlbumLoaderTemplate.jsx","themes/default/administration/naki-nigun/components/NakiNigunAddAlbumTemplate.jsx","themes/default/administration/naki-nigun/components/NakiNigunAlbumEditTemplate.jsx","themes/default/administration/naki-nigun/components/NakiNigunArtistEditAlbumListTemplate.jsx","themes/default/administration/naki-nigun/components/NakiNigunArtistEditPageHeaderTemplate.jsx","themes/default/administration/naki-nigun/components/NakiNigunArtistEditPageLayoutTemplate.jsx","themes/default/administration/naki-nigun/components/NakiNigunArtistPreviewAlbumTemplate.jsx","themes/default/administration/naki-nigun/components/NakiNigunArtistPreviewAlbumListTemplate.jsx","themes/default/administration/naki-nigun/components/NakiNigunAlbumTrackTemplate.jsx","themes/default/administration/naki-nigun/components/NakiNigunAlbumTrackEditModalTemplate.jsx","themes/default/administration/naki-nigun/components/NakiNigunAlbumTrackEditTitleTemplate.jsx","administration/naki-nigun/components/content-loader/NakiNigunArtistEditNameLoader.jsx","administration/naki-nigun/components/content-loader/NakiNigunAddAlbumLoader.jsx","administration/naki-nigun/components/content-loader/NakiNigunArtistAlbumLoader.jsx","administration/naki-nigun/components/NakiNigunAddAlbum.jsx","administration/naki-nigun/components/NakiNigunAlbumEdit.jsx","administration/naki-nigun/components/NakiNigunArtistEditAlbumList.jsx","administration/naki-nigun/components/NakiNigunArtistEditPageHeader.jsx","administration/naki-nigun/components/NakiNigunArtistEditPageLayout.jsx","administration/naki-nigun/components/NakiNigunArtistPreviewAlbum.jsx","administration/naki-nigun/components/NakiNigunArtistPreviewAlbumList.jsx","administration/naki-nigun/components/NakiNigunAlbumTrack.jsx","administration/naki-nigun/components/NakiNigunAlbumTrackEditModal.jsx","administration/naki-nigun/components/NakiNigunAlbumTrackEditTitle.jsx","themes/default/administration/naki-mobile/components/content-loader/SectionListLoaderTemplate.jsx","themes/default/administration/naki-mobile/components/content-loader/FeaturedSectionLoaderTemplate.jsx","themes/default/administration/naki-mobile/components/EditFeaturedSectionContentTemplate.jsx","themes/default/administration/naki-mobile/components/EditFeaturedSectionContentModalTemplate.jsx","themes/default/administration/naki-mobile/components/NakiMobileHomeSectionTemplate.jsx","themes/default/administration/naki-mobile/components/AddGenreHomeSectionModalTemplate.jsx","administration/naki-mobile/components/content-loader/SectionListLoader.jsx","administration/naki-mobile/components/content-loader/FeaturedSectionLoader.jsx","administration/naki-mobile/stores/EditFeaturedSectionContentViewStore.js","administration/naki-mobile/stores/BaseFeaturedSectionRouteStore.js","administration/naki-mobile/stores/NakiMobileFeaturedSectionRouteStore.js","administration/naki-mobile/utils/gridUtils.js","administration/naki-mobile/utils/isGridItemDefined.js","administration/naki-mobile/stores/BaseFeaturedSectionViewStore.js","administration/naki-mobile/stores/NakiMobileFeaturedSectionViewStore.js","administration/naki-mobile/stores/NakiMobileHomeSectionViewStore.js","administration/naki-mobile/stores/NakiMobileHomeSectionListRouteStore.js","administration/naki-mobile/stores/NakiMobileHomeSectionListViewStore.js","administration/naki-mobile/stores/NakiMobileFeaturedSectionCoverImageUploadViewStore.js","administration/naki-mobile/stores/FeaturedSectionItemViewStore.js","administration/naki-mobile/stores/NakiMobileEmbeddedFeaturedSectionViewStore.js","administration/naki-mobile/stores/NakiMobileEmbeddedFeaturedSectionRouteStore.js","administration/naki-mobile/stores/FeaturedSectionViewStore.js","administration/naki-mobile/stores/FeaturedSectionRouteStore.js","administration/naki-mobile/components/EditFeaturedSectionContent.jsx","administration/naki-mobile/components/EditFeaturedSectionContentModal.jsx","administration/naki-mobile/components/NakiMobileHomeSection.jsx","administration/naki-mobile/components/AddGenreHomeSectionModal.jsx","themes/default/administration/naki-mobile/pages/NakiMobileFeaturedSectionTemplate.jsx","themes/default/administration/naki-mobile/pages/NakiMobileHomeSectionListTemplate.jsx","themes/default/administration/naki-mobile/pages/FeaturedSectionTemplate.jsx","themes/default/administration/naki-mobile/pages/NakiMobileEmbeddedFeaturedSectionTemplate.jsx","administration/naki-mobile/pages/NakiMobileFeaturedSection.jsx","administration/naki-mobile/pages/NakiMobileHomeSectionList.jsx","administration/naki-mobile/pages/NakiMobileEmbeddedFeaturedSection.jsx","administration/naki-mobile/pages/FeaturedSection.jsx","administration/naki-mobile/administrationNakiMobileConfig.js","themes/default/administration/shuffle/pages/ShuffleListTemplate.jsx","themes/default/administration/shuffle/components/content-loader/ShuffleCreateLoaderTemplate.jsx","themes/default/administration/shuffle/components/content-loader/ShuffleListLoaderTemplate.jsx","themes/default/administration/shuffle/components/ShuffleEditStationItemTemplate.jsx","themes/default/administration/shuffle/components/ShuffleEditNakiNigunAlbumItemTemplate.jsx","themes/default/administration/shuffle/components/ShuffleEditPodcastItemTemplate.jsx","themes/default/administration/shuffle/components/ShuffleEditItemsTemplate.jsx","administration/shuffle/components/content-loader/ShuffleCreateLoader.jsx","administration/shuffle/components/content-loader/ShuffleListLoader.jsx","administration/shuffle/components/ShuffleEditStationItem.jsx","administration/shuffle/components/ShuffleEditNakiNigunAlbumItem.jsx","administration/shuffle/components/ShuffleEditPodcastItem.jsx","administration/shuffle/components/ShuffleEditItems.jsx","themes/default/administration/shuffle/pages/NakiNigunShuffleEditTemplate.jsx","themes/default/administration/shuffle/pages/PodcastShuffleEditTemplate.jsx","themes/default/administration/shuffle/pages/StationShuffleEditTemplate.jsx","themes/default/administration/shuffle/pages/ShufflePreviewTemplate.jsx","administration/shuffle/stores/list/ShuffleListRouteStore.js","administration/shuffle/stores/list/ShuffleListViewStore.js","administration/shuffle/stores/edit/BaseShuffleEditRouteStore.js","administration/shuffle/forms/ShuffleEditForm.js","administration/shuffle/stores/edit/BaseShuffleEditViewStore.js","administration/shuffle/stores/edit/NakiNigunShuffleEditRouteStore.js","administration/shuffle/stores/edit/NakiNigunShuffleEditViewStore.js","administration/shuffle/stores/edit/ShuffleEditRouteStore.js","administration/shuffle/stores/edit/PodcastShuffleEditRouteStore.js","administration/shuffle/stores/edit/StationShuffleEditRouteStore.js","administration/shuffle/stores/edit/StationShuffleEditViewStore.js","administration/shuffle/stores/edit/PodcastShuffleEditViewStore.js","administration/shuffle/stores/preview/ShufflePreviewRouteStore.js","administration/shuffle/stores/preview/ShufflePreviewViewStore.js","administration/shuffle/pages/NakiNigunShuffleEdit.jsx","administration/shuffle/pages/ShuffleList.jsx","administration/shuffle/pages/PodcastShuffleEdit.jsx","administration/shuffle/pages/StationShuffleEdit.jsx","administration/shuffle/pages/ShufflePreview.jsx","administration/shuffle/administrationShuffleConfig.js","themes/default/administration/station/components/content-loader/StationPromoEditLoaderTemplate.jsx","themes/default/administration/station/components/content-loader/StationsPreviewDescriptionLoaderTemplate.jsx","themes/default/administration/station/components/StationAnalyticsStatsWidgetTemplate.jsx","themes/default/administration/station/components/StationCoverImageUploadTemplate.jsx","themes/default/administration/station/components/StationPromoEditTemplate.jsx","themes/default/administration/station/components/StationPromoPreviewTemplate.jsx","administration/station/components/content-loader/StationPromoEditLoader.jsx","administration/station/components/content-loader/StationsPreviewDescriptionLoader.jsx","administration/station/stores/StationCoverImageUploadViewStore.js","administration/station/stores/StationPromoImageUploadViewStore.js","administration/station/stores/edit/StationEditRouteStore.js","administration/station/forms/StationEditForm.js","administration/station/stores/edit/StationEditViewStore.js","administration/station/stores/edit/StationPromoEditViewStore.js","administration/station/stores/list/StationListRouteStore.js","administration/station/stores/list/StationListViewStore.js","administration/station/stores/preview/StationAnalyticsStatsWidgetViewStore.js","administration/station/stores/preview/StationPreviewRouteStore.js","administration/station/stores/preview/StationPreviewViewStore.js","administration/station/stores/preview/StationPromoPreviewViewStore.js","administration/station/components/StationAnalyticsStatsWidget.jsx","administration/station/components/StationCoverImageUpload.jsx","administration/station/components/StationPromoEdit.jsx","administration/station/components/StationPromoPreview.jsx","themes/default/administration/station/pages/StationEditTemplate.jsx","themes/default/administration/station/pages/StationListTemplate.jsx","themes/default/administration/station/pages/StationPreviewTemplate.jsx","administration/station/pages/StationEdit.jsx","administration/station/pages/StationList.jsx","administration/station/pages/StationPreview.jsx","administration/station/administrationStationConfig.js","themes/default/administration/analytics/pages/AnalyticsDashboardTemplate.jsx","themes/default/administration/analytics/pages/TrendingStationListTemplate.jsx","themes/default/administration/analytics/pages/TrendingPodcastListTemplate.jsx","themes/default/administration/analytics/pages/TrendingNakiNigunAlbumListTemplate.jsx","themes/default/administration/analytics/pages/RegisteredUsersActivityTemplate.jsx","themes/default/administration/analytics/pages/RegisteredUserDevicesActivityTemplate.jsx","themes/default/administration/analytics/pages/ConnectedDevicesActivityTemplate.jsx","themes/default/administration/analytics/pages/PremiumUsersActivityTemplate.jsx","themes/default/administration/analytics/pages/NakiNigunAlbumActivityTemplate.jsx","themes/default/administration/analytics/pages/StationActivityTemplate.jsx","themes/default/administration/analytics/pages/PodcastActivityTemplate.jsx","themes/default/administration/analytics/pages/DeviceActivityTemplate.jsx","themes/default/administration/analytics/pages/UserDeviceActivityTemplate.jsx","themes/default/administration/analytics/pages/ContentStatsTemplate.jsx","administration/analytics/pages/AnalyticsDashboard.jsx","administration/analytics/pages/TrendingStationList.jsx","administration/analytics/pages/TrendingPodcastList.jsx","administration/analytics/pages/TrendingNakiNigunAlbumList.jsx","administration/analytics/pages/RegisteredUsersActivity.jsx","administration/analytics/pages/RegisteredUserDevicesActivity.jsx","administration/analytics/pages/ConnectedDevicesActivity.jsx","administration/analytics/pages/StationActivity.jsx","administration/analytics/pages/PodcastActivity.jsx","administration/analytics/pages/NakiNigunAlbumActivity.jsx","administration/analytics/pages/DeviceActivity.jsx","administration/analytics/pages/UserDeviceActivity.jsx","administration/analytics/pages/PremiumUsersActivity.jsx","administration/analytics/pages/ContentStats.jsx","administration/analytics/administrationAnalyticsConfig.js","themes/default/administration/order/pages/OrderListTemplate.jsx","themes/default/administration/order/components/content-loader/OrderInfoLoaderTemplate.jsx","themes/default/administration/order/components/content-loader/OrderTableLoaderTemplate.jsx","administration/order/components/content-loader/OrderInfoLoader.jsx","administration/order/components/content-loader/OrderTableLoader.jsx","themes/default/administration/order/pages/OrderPreviewTemplate.jsx","administration/order/stores/list/OrderListRouteStore.js","administration/order/stores/list/OrderListViewStore.js","administration/order/stores/preview/OrderPreviewRouteStore.js","administration/order/stores/preview/OrderPreviewViewStore.js","administration/order/pages/OrderList.jsx","administration/order/pages/OrderPreview.jsx","administration/order/administrationOrderConfig.js","themes/default/administration/content-explorer/PodcastEpisodeContentExplorerTemplate.jsx","themes/default/administration/content-explorer/ContentExplorerTemplate.jsx","themes/default/administration/content-explorer/AlbumTrackContentExplorerTemplate.jsx","administration/content-explorer/components/AlbumTrackPlaylistCell.jsx","administration/content-explorer/components/PlaylistTags.jsx","themes/default/administration/content-explorer/AlbumTrackPlaylistCellTemplate.jsx","themes/default/administration/content-explorer/PlaylistTagsTemplate.jsx","administration/content-explorer/stores/PodcastEpisodeContentExplorerRouteStore.js","administration/content-explorer/stores/PodcastEpisodeContentExplorerViewStore.js","administration/content-explorer/stores/ContentExplorerRouteStore.js","administration/content-explorer/stores/ContentExplorerViewStore.js","administration/content-explorer/stores/AlbumTrackContentExplorerRouteStore.js","administration/content-explorer/stores/AlbumTrackContentExplorerViewStore.js","administration/content-explorer/pages/PodcastEpisodeContentExplorer.jsx","administration/content-explorer/pages/ContentExplorer.jsx","administration/content-explorer/pages/AlbumTrackContentExplorer.jsx","administration/content-explorer/administrationContentExplorerConfig.js","themes/default/administration/playlist/components/AdminPlaylistTemplate.jsx","themes/default/administration/playlist/components/AdminPlaylistItemTemplate.jsx","administration/playlist/components/AdminPlaylist.jsx","administration/playlist/components/AdminPlaylistItem.jsx","themes/default/administration/playlist/pages/AdminPlaylistListTemplate.jsx","themes/default/administration/playlist/pages/AdminPlaylistPreviewTemplate.jsx","administration/playlist/stores/playlist-list/AdminPlaylistListViewStore.js","administration/playlist/stores/playlist-list/AdminPlaylistListRouteStore.js","administration/playlist/stores/preview/AdminPlaylistPreviewViewStore.js","administration/playlist/stores/preview/AdminPlaylistPreviewRouteStore.js","administration/playlist/pages/AdminPlaylistList.jsx","administration/playlist/pages/AdminPlaylistPreview.jsx","administration/playlist/administrationPlaylistConfig.js","themes/default/administration/podcast/pages/PodcastListTemplate.jsx","themes/default/administration/podcast/pages/PodcastEditTemplate.jsx","themes/default/administration/podcast/pages/PodcastGroupPreviewTemplate.jsx","themes/default/administration/podcast/pages/PodcastPreviewTemplate.jsx","themes/default/administration/podcast/pages/PodcastGroupEditTemplate.jsx","themes/default/administration/podcast/pages/PodcastEpisodeListTemplate.jsx","themes/default/administration/podcast/pages/PodcastEpisodeEditTemplate.jsx","administration/podcast/pages/PodcastList.jsx","administration/podcast/pages/PodcastEdit.jsx","administration/podcast/pages/PodcastGroupPreview.jsx","administration/podcast/pages/PodcastPreview.jsx","administration/podcast/pages/PodcastGroupEdit.jsx","administration/podcast/pages/PodcastEpisodeList.jsx","administration/podcast/pages/PodcastEpisodeEdit.jsx","administration/podcast/administrationPodcastConfig.js","themes/default/administration/genre/components/content-loader/GenreListLoaderTemplate.jsx","themes/default/administration/genre/components/GenreContentListItemTemplate.jsx","administration/genre/components/GenreContentListItem.jsx","administration/genre/components/GenreListLoader.jsx","themes/default/administration/genre/pages/GenreContentListTemplate.jsx","administration/genre/stores/GenreContentListRouteStore.js","administration/genre/stores/GenreContentListViewStore.js","administration/genre/pages/GenreContentList.jsx","administration/genre/administrationGenreConfig.js","themes/default/administration/producer/pages/AdminProducerAccountsTemplate.jsx","themes/default/administration/producer/pages/AdminProducerListTemplate.jsx","themes/default/administration/producer/pages/ProducerPaymentReportPreviewTemplate.jsx","themes/default/administration/producer/pages/AdminProducerPreviewTemplate.jsx","themes/default/administration/producer/pages/AdminProducerEditTemplate.jsx","themes/default/administration/producer/pages/AdminProducerAccountPreviewTemplate.jsx","administration/producer/pages/AdminProducerAccounts.jsx","administration/producer/pages/AdminProducerList.jsx","administration/producer/pages/ProducerPaymentReportPreview.jsx","administration/producer/pages/AdminProducerPreview.jsx","administration/producer/pages/AdminProducerEdit.jsx","administration/producer/pages/AdminProducerAccountPreview.jsx","administration/producer/administrationProducerConfig.js","themes/default/administration/dashboard/pages/DashboardTemplate.jsx","administration/dashboard/stores/DashboardRouteStore.js","administration/dashboard/stores/DashboardViewStore.js","administration/dashboard/pages/Dashboard.jsx","administration/dashboard/administrationDashboardConfig.js","themes/default/administration/naki-nigun/pages/NakiNigunArtistEditTemplate.jsx","themes/default/administration/naki-nigun/pages/NakiNigunArtistListTemplate.jsx","themes/default/administration/naki-nigun/pages/NakiNigunArtistPreviewTemplate.jsx","themes/default/administration/naki-nigun/pages/NakiNigunAlbumTrackListTemplate.jsx","themes/default/administration/naki-nigun/pages/NakiNigunAlbumTrackEditTemplate.jsx","administration/naki-nigun/pages/NakiNigunArtistEdit.jsx","administration/naki-nigun/pages/NakiNigunArtistList.jsx","administration/naki-nigun/pages/NakiNigunArtistPreview.jsx","administration/naki-nigun/pages/NakiNigunAlbumTrackList.jsx","administration/naki-nigun/pages/NakiNigunAlbumTrackEdit.jsx","administration/naki-nigun/administrationNakiNigunArtistConfig.js","themes/default/administration/user/pages/UserListTemplate.jsx","themes/default/administration/user/pages/UserEditTemplate.jsx","themes/default/administration/user/pages/UserContentExpirationTemplate.jsx","themes/default/administration/user/pages/UserDeviceSettingsTemplate.jsx","themes/default/administration/user/pages/UserDeviceListTemplate.jsx","administration/user/pages/UserList.jsx","administration/user/pages/UserEdit.jsx","administration/user/pages/UserContentExpiration.jsx","administration/user/pages/UserDeviceList.jsx","administration/user/pages/UserDeviceSettings.jsx","administration/user/administrationUserConfig.js","themes/default/administration/device-menu/pages/DeviceMenuEditTemplate.jsx","administration/device-menu/stores/DeviceMenuEditRouteStore.js","administration/device-menu/stores/DeviceMenuSearchViewStore.js","administration/device-menu/stores/DeviceMenuLatestItemsViewStore.js","administration/device-menu/stores/DeviceMenuEditViewStore.js","administration/device-menu/pages/DeviceMenuEdit.jsx","administration/device-menu/administrationDeviceMenuConfig.js","themes/default/administration/common/components/DownloadItem.jsx","themes/default/administration/common/components/DownloadList.jsx","themes/default/administration/common/AdministrationLayoutTemplate.jsx","administration/common/AdministrationLayout.jsx","administration/common/AdministrationRouteStore.js","administration/administrationConfig.js","administration/podcast/components/content-loader/AddPodcastsToTheGroupLoader.jsx","administration/podcast/components/content-loader/PodcastGroupLineLoader.jsx","administration/podcast/components/content-loader/PodcastEpisodeListLoader.jsx","administration/podcast/components/PodcastGroupEditPageHeader.jsx","administration/podcast/components/PodcastCoverImageUpload.jsx","administration/podcast/components/PodcastGroupEditPageLayout.jsx","administration/podcast/components/AddPodcastGroupItem.jsx","administration/podcast/components/PodcastGroupEditSubPodcast.jsx","administration/podcast/components/PodcastGroupEditSubPodcastList.jsx","administration/podcast/components/PodcastGroupPreviewSubPodcast.jsx","administration/podcast/components/PodcastGroupPreviewSubPodcastList.jsx","administration/podcast/components/PodcastAnalyticsStatsWidget.jsx","administration/podcast/components/PodcastGroupPreviewSubPodcastAnalyticsStats.jsx","administration/podcast/components/PodcastEditPodcastVolume.jsx","administration/podcast/components/PodcastEditPodcastVolumeList.jsx","administration/podcast/components/AddPodcastVolumeItem.jsx","administration/podcast/components/PodcastPreviewPodcastVolume.jsx","administration/podcast/components/PodcastPreviewPodcastVolumeList.jsx","administration/podcast/components/PodcastEpisode.jsx","administration/podcast/components/PodcastEpisodeEditTitleModal.jsx","administration/podcast/components/PodcastEpisodeEditTitle.jsx","themes/default/administration/podcast/components/content-loader/AddPodcastsToTheGroupLoaderTemplate.jsx","themes/default/administration/podcast/components/content-loader/PodcastGroupLineLoaderTemplate.jsx","themes/default/administration/podcast/components/content-loader/PodcastEpisodeListLoaderTemplate.jsx","themes/default/administration/podcast/components/PodcastGroupEditPageHeaderTemplate.jsx","themes/default/administration/podcast/components/PodcastGroupEditPageLayoutTemplate.jsx","themes/default/administration/podcast/components/PodcastCoverImageUploadTemplate.jsx","themes/default/administration/podcast/components/AddPodcastGroupItemTemplate.jsx","themes/default/administration/podcast/components/PodcastGroupEditSubPodcastTemplate.jsx","themes/default/administration/podcast/components/PodcastGroupEditSubPodcastListTemplate.jsx","themes/default/administration/podcast/components/PodcastEditPodcastVolumeTemplate.jsx","themes/default/administration/podcast/components/PodcastEditPodcastVolumeListTemplate.jsx","themes/default/administration/podcast/components/AddPodcastVolumeItemTemplate.jsx","themes/default/administration/podcast/components/PodcastGroupPreviewSubPodcastTemplate.jsx","themes/default/administration/podcast/components/PodcastGroupPreviewSubPodcastListTemplate.jsx","themes/default/administration/podcast/components/PodcastAnalyticsStatsWidgetTemplate.jsx","themes/default/administration/podcast/components/PodcastGroupPreviewSubPodcastAnalyticsStatsTemplate.jsx","themes/default/administration/podcast/components/PodcastPreviewPodcastVolumeTemplate.jsx","themes/default/administration/podcast/components/PodcastPreviewPodcastVolumeListTemplate.jsx","themes/default/administration/podcast/components/PodcastEpisodeTemplate.jsx","themes/default/administration/podcast/components/PodcastEpisodeEditTitleModalTemplate.jsx","themes/default/administration/podcast/components/PodcastEpisodeEditTitleTemplate.jsx","administration/podcast/stores/edit/BasePodcastEditRouteStore.js","administration/podcast/stores/edit/BasePodcastEditViewStore.js","administration/podcast/stores/edit/PodcastCoverImageUploadViewStore.js","administration/podcast/stores/edit/PodcastEditRouteStore.js","administration/podcast/stores/edit/PodcastGroupEditViewStore.js","administration/podcast/stores/edit/PodcastEditViewStore.js","administration/podcast/stores/edit/AddPodcastGroupItemViewStore.js","administration/podcast/stores/edit/PodcastGroupEditSubPodcastViewStore.js","administration/podcast/stores/edit/PodcastEditPodcastVolumeViewStore.js","administration/podcast/stores/edit/AddPodcastVolumeItemViewStore.js","administration/podcast/stores/edit/PodcastGroupEditRouteStore.js","administration/podcast/stores/edit/PodcastEpisodeEditTitleViewStore.js","administration/podcast/stores/list/PodcastListRouteStore.js","administration/podcast/stores/list/PodcastListViewStore.js","administration/podcast/stores/list/PodcastEpisodeListRouteStore.js","administration/podcast/stores/list/PodcastEpisodeListViewStore.js","administration/podcast/stores/preview/PodcastAnalyticsStatsWidgetViewStore.js","administration/podcast/stores/preview/SubPodcastAnalyticsStatsWidgetViewStore.js","administration/podcast/stores/preview/BasePodcastPreviewRouteStore.js","administration/podcast/stores/preview/BasePodcastPreviewViewStore.js","administration/podcast/stores/preview/PodcastGroupPreviewRouteStore.js","administration/podcast/stores/preview/PodcastPreviewRouteStore.js","administration/podcast/stores/preview/PodcastPreviewViewStore.js","administration/podcast/stores/preview/PodcastGroupPreviewViewStore.js","administration/podcast/stores/preview/PodcastGroupPreviewSubPodcastViewStore.js","administration/podcast/stores/preview/PodcastPreviewPodcastVolumeViewStore.js","administration/podcast/stores/episode/PodcastEpisodeEditViewStore.js","administration/podcast/stores/episode/PodcastEpisodeEditRouteStore.js","administration/naki-nigun/stores/edit/NakiNigunArtistEditRouteStore.js","administration/naki-nigun/forms/NakiNigunArtistEditForm.js","administration/naki-nigun/forms/NakiNigunAlbumEditForm.js","administration/naki-nigun/forms/NakiNigunAlbumTrackEditTitleForm.js","administration/naki-nigun/forms/NakiNigunAlbumTrackEditForm.js","administration/naki-nigun/stores/edit/NakiNigunAlbumEditViewStore.js","administration/naki-nigun/stores/edit/NakiNigunArtistCoverImageUploadViewStore.js","administration/naki-nigun/stores/edit/NakiNigunAlbumCoverImageUploadViewStore.js","administration/naki-nigun/stores/edit/NakiNigunAddAlbumViewStore.js","administration/naki-nigun/stores/edit/NakiNigunArtistEditViewStore.js","administration/naki-nigun/stores/edit/NakiNigunAlbumTrackEditTitleViewStore.js","administration/naki-nigun/stores/list/NakiNigunArtistListRouteStore.js","administration/naki-nigun/stores/list/NakiNigunArtistListViewStore.js","administration/naki-nigun/stores/list/NakiNigunAlbumTrackListRouteStore.js","administration/naki-nigun/stores/list/NakiNigunAlbumTrackListViewStore.js","administration/naki-nigun/stores/preview/NakiNigunArtistPreviewAlbumViewStore.js","administration/naki-nigun/stores/preview/NakiNigunArtistPreviewRouteStore.js","administration/naki-nigun/stores/preview/NakiNigunArtistPreviewViewStore.js","administration/naki-nigun/stores/track/NakiNigunAlbumTrackEditViewStore.js","administration/naki-nigun/stores/track/NakiNigunAlbumTrackEditRouteStore.js"],"names":["PodcastEditForm","LocalizedForm","constructor","hooks","super","setup","fields","name","label","placeholder","rules","type","value","PodcastGroupEditForm","PodcastGroupItemEditForm","PodcastVolumeEditForm","PodcastEpisodeEditTitleForm","PodcastEpisodeEditForm","NakiNigunArtistEditNameLoaderTemplate","_ref","props","screenwidth","window","innerWidth","loaderWidth","_jsxs","ContentLoader","speed","width","height","viewBox","concat","backgroundColor","foregroundColor","children","_jsx","x","y","rx","ry","ToggleLoader","_ref2","React","Fragment","NakiNigunAddAlbumLoaderTemplate","AddAlbumsLoader","NakiNigunArtistAlbumLoaderTemplate","listNumber","setLoaderWidth","useState","ref","useCallback","node","getBoundingClientRect","Array","from","length","className","Math","random","defaultTemplate","nakiNigunAddAlbumViewStore","t","form","episodeSortTypeOptions","resetForm","coverImageUploadViewStore","genreSelectStore","producerSelectStore","isPremiumDisabled","isActiveStatusDisabled","MrbEditFormLayout","onClickCancel","submitLabel","cancelLabel","MrbFieldInput","field","$","classNameExtend","MrbFieldNumericInput","classNameOverride","precision","MrbFieldSelect","store","ProducerFieldSelect","MrbFieldRadioButtons","options","MrbFieldToggle","disabled","CoverImageUpload","classNameExtendUpload","isFullWidthFooterButtons","AlbumPanelHeader","observer","title","isCollapsed","albumIndex","album","deleteAlbum","isPremium","FORM_STATUS","ARTIST_FORM_STATUS","CHANGED","MrbButton","onClick","nakiNigunAlbumEditViewStore","toggleCollapse","setPanelRef","overrideRadioUsersSettingsIsVisible","overrideAppUsersSettingsIsVisible","MrbCollapsiblePanel","innerRef","onChangeCollapse","headerRender","showInfo","nakiNigunArtistEditViewStore","albums","reorderAlbums","DragDropList","droppableId","items","onDragEnd","itemRender","item","NakiNigunAlbumEdit","albumId","id","EditPageActions","isFunction","onSubmit","aria-label","aria-busy","submitting","validating","UnsavedAlbumValidation","_ref3","anyUnsavedAlbum","layoutActions","navigationOptions","navigateBack","i","MrbRouterLink","routeName","MrbEditFormValidation","renderActions","MrbBreadcrumbs","pageProps","MrbPage","MrbPageHeader","NakiNigunArtistEditPageHeader","MrbEditContent","displayMissingProducers","producerId","nakiNigunArtistPreviewAlbumViewStore","toggleIsActive","togglePremiumStatus","toggleOnByDefaultStatus","toggleOnByDefaultInAppStatus","toggleOnByDefaultInNakiTouchStatus","toggleIsFeatured","onClickEdit","coverImageUrl","onClickAlbumTrackList","toggleHlsEnabledStatus","nakiNigunArtistPreviewViewStore","headerClassNameExtend","href","albumFeed","feedUrl","target","rel","year","genres","Genres","contentSortType","producer","ProducerLabel","isUser","isNil","user","Image","src","MrbToggle","isActive","onChange","event","checked","isTurnedOnByDefault","isTurnedOnByDefaultInApp","isTurnedOnByDefaultInEmbeddedApp","isFeatured","hlsEnabled","innerList","loaderStore","MrbContentLoader","loaderRender","PodcastGroupLineLoader","map","key","NakiNigunArtistPreviewAlbum","isSyncing","generateAudioFiles","wrapperClassName","isHlsEnabled","openEditAlbumTrack","downloadAlbumTrack","deleteAlbumTrack","rootStore","useRootStore","artworkUrl","artworkFileEntryId","coverImageFactory","createNakiNigunAlbumCoverImageUrl","mergeCss","isEmpty","syncTask","onlyIcon","icon","audioStreamUrl","isManualUpload","convertSecondsToHMS","duration","streamUrl","hlsStreamUrl","audioFileBitrate","audioFileSize","_Fragment","round","toFixed","NakiNigunAlbumTrackEditModalTemplate","nakiNigunAlbumTrackListViewStore","modalParams","MrbModal","NakiNigunAlbumTrackEditTitle","data","closeModal","close","nakiNigunAlbumTrackEditTitleViewStore","NakiNigunArtistEditNameLoader","NakiNigunAddAlbumLoader","NakiNigunArtistAlbumLoader","NakiNigunAddAlbum","setCurrentView","componentProps","NakiNigunAddAlbumViewStore","_dec","_class","Component","render","NakiNigunAddAlbumTemplate","this","NakiNigunAlbumEditViewStore","NakiNigunAlbumEditTemplate","NakiNigunArtistEditAlbumList","NakiNigunArtistEditAlbumListTemplate","NakiNigunArtistEditPageHeaderTemplate","NakiNigunArtistEditPageLayout","NakiNigunArtistEditPageLayoutTemplate","NakiNigunArtistPreviewAlbumViewStore","NakiNigunArtistPreviewAlbumTemplate","NakiNigunArtistPreviewAlbumList","NakiNigunArtistPreviewAlbumListTemplate","NakiNigunAlbumTrack","NakiNigunAlbumTrackTemplate","NakiNigunAlbumTrackEditModal","NakiNigunAlbumTrackEditTitleViewStore","NakiNigunAlbumTrackEditTitleTemplate","SectionListLoaderTemplate","FeaturedSectionLoaderTemplate","gridNum","gridList","push","OptionLabel","stationId","podcastId","artistId","editFeaturedSectionContentViewStore","cancel","contentSelectStore","onSelectItem","MrbSelect","formatOptionLabel","selectedItem","EditFeaturedSectionContent","routeStore","params","mobileAppSystemType","onUpdate","EditPanelContainer","nakiMobileHomeSectionViewStore","EditPanel","isSystemSection","setIsActive","onTitleChange","isAddContentButtonDisabled","deleteSection","selectedItemExists","goToGenreContent","TitleInput","labelClassNameExtend","genreId","_ref4","ContentPanel","_ref5","deleteItem","onDelete","station","Station","podcast","Podcast","artist","NakiNigunArtist","NakiNigunAlbum","renderItem","_ref6","coverImageId","createStationCoverImageUrl","PremiumBadge","premiumSize","_ref7","createPodcastCoverImageUrl","_ref8","createNakiNigunArtistCoverImageUrl","_ref9","_ref10","_ref11","nakiMobileHomeSectionListViewStore","addGenreSection","SectionListLoader","FeaturedSectionLoader","EditFeaturedSectionContentViewStore","action","bound","_dec2","MrbBaseViewStore","_defineProperty","MrbSelectStore","isSearchable","textKey","valueKey","initFetch","actions","find","searchTerm","pageNumber","pageSize","getContent","systemType","search","mapItem","bind","updateItem","clearOptions","clear","filter","nakiNigunArtistId","nakiNigunAlbumId","podcastType","_applyDecoratedDescriptor","prototype","Object","getOwnPropertyDescriptor","BaseFeaturedSectionRouteStore","MrbBaseRouteStore","service","createApplicationService","AppHomeSectionService","mediaVaultStreamService","MediaVaultStreamService","apiClient","application","baasic","featuredSectionFileStreamService","FeaturedSectionFileStreamService","getFeaturedGrid","embed","resources","updateFeaturedGrid","getMediaVaultFileUrl","mediaVaultModule","streams","routeDefinition","get","file","now","moment","extension","split","path","month","date","hour","minute","second","create","fileName","getFeaturedSectionCoverImageUrl","fileEntryId","routeService","NakiMobileFeaturedSectionRouteStore","canExpandLeft","column","canExpandRight","columnSpan","columnLimit","canExpandBottom","row","rowSpan","rowLimit","canExpandTop","canCollapseLeft","canCollapseRight","canCollapseTop","canCollapseBottom","isGridItemDefined","BaseFeaturedSectionViewStore","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","_initializerDefineProperty","_descriptor","_descriptor2","makeObservable","editItem","onInit","grid","mockGrid","rowsLimit","columnsLimit","NakiNigunArtistId","gridRow","gridColumn","gridRowSpan","gridColumnSpan","setGrid","err","notificationStore","error","setIsSubmitting","isSubmitting","gridConflict","rowNum","columnNum","findIndex","editItemModalParams","open","removeGridElementsInConflict","newGridElement","itemsWithoutConflict","ensureGridStructure","expandToLeft","collapseLeft","expandToRight","collapseRight","expandToTop","collapseTop","expandToBottom","collapseBottom","clearSelection","nakiNigunArtist","nakiNigunAlbum","observable","configurable","enumerable","writable","initializer","NakiMobileFeaturedSectionViewStore","nakiRadioSystemTypes","mobile","MrbModalParams","NakiMobileHomeSectionViewStore","sections","section","systemSectionIdentifier","addItem","obj","UUID","sortOrder","itemExists","routerStore","goTo","computed","NakiMobileHomeSectionListRouteStore","genreLookupService","GenreLookupService","getAll","update","searchPhrase","NakiMobileHomeSectionListViewStore","sectionsLimit","addGenreHomeSectionModalParams","virtualized","isOptionDisabled","option","genreSectionAlreadyExists","findGenres","fetchResources","setSections","forEach","index","itemIndex","addSection","isSystem","genreItem","openAddGenreHomeSectionModal","reorderSections","result","destination","source","newSections","toJS","splice","sectionId","NakiMobileFeaturedSectionCoverImageUploadViewStore","BaseCoverImageUploadViewStore","onFileRejected","uploadResults","console","log","errors","errorsMap","code","file-invalid-type","file-too-large","uploadImageToMediaVault","uploadImageFile","FeaturedSectionItemViewStore","reaction","uploadedFileId","fileId","uploadImage","revertToDefaultArtwork","setImageUrl","changeUploadedFileId","fileUploadStore","NakiMobileEmbeddedFeaturedSectionViewStore","mobile_embedded","NakiMobileEmbeddedFeaturedSectionRouteStore","FeaturedSectionViewStore","currentRoute","getCurrentRoute","setSelectedTab","onViewUpdate","prevProps","newProps","selectedTab","tabs","FeaturedSectionRouteStore","EditFeaturedSectionContentTemplate","EditFeaturedSectionContentModal","EditFeaturedSectionContentModalTemplate","NakiMobileHomeSection","NakiMobileHomeSectionTemplate","AddGenreHomeSectionModal","AddGenreHomeSectionModalTemplate","Actions","Grid","viewStore","GridItem","isHovering","setIsHovering","expandDownButton","expandTopButton","expandLeftButton","expandRightButton","collapseTopButton","collapseLeftButton","collapseRightButton","collapseBottomButton","gridArea","arguments","undefined","createGridAreaDefinition","onMouseOver","onMouseLeave","style","DefinedItem","edit","DefaultItem","useMemo","useEffect","initialize","gridStart","gridEnd","imgSize","createFeaturedSectionCoverImageUrl","UploadedImageLoader","size","_store$coverImageUplo","MrbFileUpload","imageUrl","ContentLabel","nakiMobileFeaturedSectionViewStore","SectionList","onClickSave","PanelHeader","sectionsLimitReached","Popover","isDisabled","trigger","contentList","featuredSectionViewStore","renderChildRoute","nakiMobileEmbeddedFeaturedSectionViewStore","NakiMobileFeaturedSection","NakiMobileFeaturedSectionTemplate","NakiMobileHomeSectionList","NakiMobileHomeSectionListTemplate","NakiMobileEmbeddedFeaturedSection","NakiMobileEmbeddedFeaturedSectionTemplate","FeaturedSection","FeaturedSectionTemplate","moduleProviderFactory","module","register","routes","pattern","component","menu","order","subMenu","route","shuffleListViewStore","gridStore","queryUtility","MrbListPage","customAction","actionTitle","MrbPageContentHeader","MrbQuerySearchInput","MrbTable","tableStore","emptyStateRender","TableNoDataOverlay","ShuffleCreateLoaderTemplate","ShuffleLoaderTemplate","ShuffleListLoaderTemplate","WeightPicker","shuffleWeightOptions","setItemShuffleWeight","MrbRadioButtons","shuffleWeightId","deleteShuffleItem","shuffleEditViewStore","ShuffleCreateLoader","ShuffleListLoader","ShuffleEditStationItem","ShuffleEditStationItemTemplate","ShuffleEditNakiNigunAlbumItem","ShuffleEditNakiNigunAlbumItemTemplate","ShuffleEditPodcastItem","ShuffleEditPodcastItemTemplate","ShuffleEditItems","ShuffleEditItemsTemplate","nakiNigunShuffleEditViewStore","shuffleItemSelectStore","addNakiNigunAlbumShuffleItem","isAddDisabled","MrbEditPage","loading","podcastShuffleEditViewStore","addPodcastShuffleItem","stationShuffleEditViewStore","addStationShuffleItem","ShuffleEmptyState","shufflePreviewViewStore","MrbPreviewPage","contentClassNameExtend","MrbHeaderWithoutImageLoader","shuffleType","shuffleItems","shuffleItem","shuffleWeight","ShuffleListRouteStore","ShuffleService","resource","delete","ShuffleListViewStore","MrbBaseListViewStore","queryConfig","orderBy","orderDirection","createPodcastShuffle","authorization","createStationShuffle","createNakiNigunShuffle","setGridStore","MrbTableViewStore","onRowClick","columns","sortable","abrv","buttonProps","confirmDialogStore","showConfirm","message","onConfirm","async","deleteShuffle","fetch","yesLabel","noLabel","description","findShuffles","BaseShuffleEditRouteStore","shuffleWeightService","ShuffleWeightCacheService","getShuffleWeights","getItems","ShuffleEditForm","BaseShuffleEditViewStore","MrbBaseEditViewStore","shuffleWeights","snakeCase","toUpperCase","routerState","FormClass","autoFocusField","submitted","invalidateShuffleItems","invalidate","validator","loadLookups","setShuffleWeights","setItem","sortBy","onCreateError","onUpdateError","createResource","updateResource","addShuffleItem","shuffleItemId","itemId","Error","NakiNigunShuffleEditRouteStore","nakiNigunAlbumService","NakiNigunAlbumService","createNakiNigun","findShufflableNakiNigunAlbum","NakiNigunShuffleEditViewStore","selectedIds","excludeIds","getNakiNigunAlbumShuffle","createNakiNigunAlbumShuffle","updateNakiNigunAlbumShuffle","head","PodcastShuffleEditRouteStore","podcastService","PodcastService","createPodcast","findShufflablePodcast","StationShuffleEditRouteStore","stationService","StationService","createStation","findShufflableStation","StationShuffleEditViewStore","getStationShuffle","updateStationShuffle","PodcastShuffleEditViewStore","findPodcasts","getPodcastShuffle","updatePodcastShuffle","ShufflePreviewRouteStore","ShufflePreviewViewStore","MrbBasePreviewViewStore","parentPodcastId","subPodcastId","setStationShuffle","setPodcastShuffle","setNakiNigunShuffle","rest","getShuffle","NakiNigunShuffleEdit","NakiNigunShuffleEditTemplate","ShuffleList","ShuffleListTemplate","PodcastShuffleEdit","PodcastShuffleEditTemplate","StationShuffleEdit","StationShuffleEditTemplate","ShufflePreview","ShufflePreviewTemplate","StationPromoEditLoaderTemplate","screenWidth","loaderHeight","StationsPreviewDescriptionLoaderTemplate","StationAnalyticsStatsWidgetTemplate","stationAnalyticsStatsWidgetViewStore","StatsWidget","UploadFooter","remove","stationCoverImageUploadViewStore","MrbImage","fallbackSrc","coverPlaceholder","ImageUploadNote","stationPromoEditViewStore","promoImageUploadViewStore","FieldRichTextEditor","StationPromoPreviewTemplate","stationPromoPreviewViewStore","HTMLRender","StationPromoEditLoader","StationsPreviewDescriptionLoader","StationCoverImageUploadViewStore","files","_descriptor3","raiseBrowse","setUploadedFileId","baseUrl","createBaasicAuthenticatedMediaVaultUrl","MrbContentLoaderStore","suspendRenderOnInit","MrbFileUploadViewStore","acceptedFiles","maxSize","showValidation","uploadFile","suspend","mediaVaultFile","runInAction","resume","hasChanged","url","createAuthenticatedImageUrl","StationPromoImageUploadViewStore","StationEditRouteStore","stationFileStreamService","StationFileStreamService","locationService","LocationService","languageService","LanguageService","getStationCoverImageUrl","StationForm","StationEditViewStore","StationEditForm","successCreateNotification","successUpdateNotification","redirectOnCreateSuccess","redirectOnUpdateSuccess","StationPromoEditViewStore","stationEditViewStore","locationSelectStore","MrbFieldSelectStore","findLocations","createOption","createLocation","languageSelectStore","findLanguages","createLanguage","isMulti","createGenre","isEdit","set","getStation","setSelectedItem","location","language","updateForm","values","genreIds","genre","isVisible","isVisibleInApp","initializeResource","stationPromo","promoImageFileEntryId","updatePremiumInfo","updateStationPromo","_data$premiumInfo","premiumInfo","updateStation","onDestroy","destroy","StationListRouteStore","StationListViewStore","format","mrbDefaultFormats","bool","trueLabel","falseLabel","deleteStation","findStations","onFetchError","StationAnalyticsStatsWidgetViewStore","BaseStatsWidgetViewStore","routeParams","setTimeRange","timeRangeType","thisMonth","to","previousCycleFrom","previousCycleTo","timeZone","getStationAnalyticsStats","StationPreviewRouteStore","stationAnalyticsService","StationAnalyticsService","getStationStats","excludedFromRevenue","updateExcludedFromRevenueStatus","updateActiveStatus","updatePremiumStatus","isOnByDefault","updateOnByDefaultStatus","updateOnByDefaultInAppStatus","updateOnByDefaultInNakiTouchStatus","updateVisibilityStatus","updateAppVisibilityStatus","updateNakiTouchVisibilityStatus","updateFeaturedStatus","StationPreviewViewStore","oldValue","isVisibleInEmbeddedApp","StationPromoPreviewViewStore","StationAnalyticsStatsWidget","StationCoverImageUpload","StationCoverImageUploadTemplate","StationPromoEdit","StationPromoEditTemplate","StationPromoPreview","AddStationsOrPodcastsLoader","MrbFieldTextArea","rows","CoverImageUploadLoader","MrbFileUploadValidation","stationListViewStore","stationPreviewViewStore","toggleVisibilityStatus","toggleFeaturedStatus","toggleAppVisibilityStatus","toggleExcludedFromRevenueStatus","toggleNakiTouchVisibilityStatus","MrbHeaderLoader","descriptionLink","DescriptionLoader","alternativeDescription","PreviewContentLoader","ToggleActionsLoader","lineheight","smallWidth","StationEdit","StationEditTemplate","StationList","StationListTemplate","StationPreview","StationPreviewTemplate","analyticsDashboardViewStore","analyticsTimeRangeViewStore","deviceActivitySummaryViewStore","topTrendingPodcastsViewStore","topTrendingStationsViewStore","topTrendingNakiNigunAlbumsViewStore","portalViewStore","AnalyticsTimeRange","PortalUserDevice","PortalNewDevices","DeviceActivitySummary","TopTrendingPodcasts","TopTrendingStations","TopTrendingNakiNigunAlbums","trendingStationListViewStore","filterOptions","selectedFilterOption","setFilterOption","AnalyticsLayout","inputClassNameExtend","labelClassNameOverride","MrbInfiniteScrollGrid","loaderRenderer","TopTrendingListViewMoreLoader","noButton","loadMoreLoader","loadMore","emptyStateRenderer","StatsWidgetEmptyState","cellRenderer","TrendingListItem","trendingPodcastListViewStore","trendingNakiNigunAlbumListViewStore","registeredUsersActivityViewStore","PortalDetailedActivity","activityLabel","totalLabel","registeredUserDevicesActivityViewStore","connectedDevicesActivityViewStore","premiumUsersActivityViewStore","NakiNigunAlbumNameField","_summaryData$nakiNigu","_summaryData$nakiNigu2","summaryData","queryParams","nakiNigunAlbumActivityViewStore","nameFieldRenderer","StationNameField","stationActivityViewStore","PodcastNameField","podcastActivityViewStore","deviceActivityViewStore","userDeviceActivityViewStore","deviceSelectStore","UserAccountSummary","UserDeviceActivitySummary","UserContentListSummary","Content","selectedContentType","PodcastListenersList","StationListenersList","NakiNigunListenersList","contentStatsViewStore","contentTypeOptions","setSelectedContentType","AnalyticsDashboard","AnalyticsDashboardViewStore","AnalyticsDashboardTemplate","TrendingStationList","TrendingStationListViewStore","TrendingStationListTemplate","TrendingPodcastList","TrendingPodcastListViewStore","TrendingPodcastListTemplate","TrendingNakiNigunAlbumList","TrendingNakiNigunAlbumListViewStore","TrendingNakiNigunAlbumListTemplate","RegisteredUsersActivity","RegisteredUsersActivityViewStore","RegisteredUsersActivityTemplate","RegisteredUserDevicesActivity","RegisteredUserDevicesActivityViewStore","RegisteredUserDevicesActivityTemplate","ConnectedDevicesActivity","ConnectedDevicesActivityViewStore","ConnectedDevicesActivityTemplate","StationActivity","StationActivityViewStore","StationActivityTemplate","PodcastActivity","PodcastActivityViewStore","PodcastActivityTemplate","NakiNigunAlbumActivity","NakiNigunAlbumActivityViewStore","NakiNigunAlbumActivityTemplate","DeviceActivity","DeviceActivityViewStore","DeviceActivityTemplate","UserDeviceActivity","UserDeviceActivityViewStore","UserDeviceActivityTemplate","PremiumUsersActivity","PremiumUsersActivityViewStore","PremiumUsersActivityTemplate","ContentStats","ContentStatsViewStore","ContentStatsTemplate","AnalyticsDashboardRouteStore","RegisteredUsersActivityRouteStore","ConnectedDevicesActivityRouteStore","RegisteredUserDevicesActivityRouteStore","PremiumUsersActivityRouteStore","TrendingStationListRouteStore","StationActivityRouteStore","TrendingPodcastListRouteStore","TrendingNakiNigunAlbumListRouteStore","PodcastActivityRouteStore","NakiNigunAlbumActivityRouteStore","DeviceActivityRouteStore","UserDeviceActivityRouteStore","ContentStatsRouteStore","orderListViewStore","OrderInfoLoaderTemplate","MobileInfo","DesktopInfo","OrderTableLoaderTemplate","tableList","OrderInfoLoader","OrderTableLoader","BillingAddress","billingAddress","address","email","firstName","lastName","address1","address2","placeInfo","city","state","postCode","country","join","ShippingAddress","shippingAddress","LineItems","colSpan","product","quantity","currencyFormatter","price","currency","total","subtotalAmount","TotalTaxLabel","taxLines","taxAmount","ShippingMethodLabel","shippingMethod","shippingAmount","totalAmount","taxLine","ratePercent","methodTitle","StripePaymentLink","paymentId","orderPreviewViewStore","orderNumber","dateFormatter","dateCreated","applicationDefaults","formats","dateTimeSeconds","orderStatus","paymentMethod","paymentMethodTitle","paymentProviderPaymentId","OrderListRouteStore","OrderService","OrderListViewStore","status","findOrders","OrderPreviewRouteStore","OrderPreviewViewStore","getOrder","OrderList","OrderListTemplate","OrderPreview","OrderPreviewTemplate","PodcastEpisodeFilter","changeAudioTrackAvailabilityFilter","audioFileAvailabilityOptions","audioTrackAvailable","podcastEpisodeContentExplorerViewStore","podcastSelectStore","podcastGroupSelectStore","downloadSelectedItems","selectedItemIds","closeMenuOnSelect","FloatingCard","gridApi","deselectAll","contentExplorerViewStore","AlbumTrackFilter","albumTrackContentExplorerViewStore","albumSelectStore","artistSelectStore","AlbumTrackPlaylistCell","AlbumTrackPlaylistCellTemplate","PlaylistTags","PlaylistTagsTemplate","addPlaylist","noop","removePlaylist","PlaylistSelectStore","searchQuery","trim","playlistService","PlaylistService","findAdminGeneratedPlaylists","localizationService","playlist","createAdminGeneratedPlaylist","onSelected","playlistId","addItemToAdminGeneratedPlaylist","albumTrackId","onRemoved","deleteAlbumTrackFromAdminGeneratedPlaylist","playlists","Selector","selectedOption","PanelContainer","optionRender","SelectPanel","setSearchTerm","setFocusedIndex","showCreateOption","opt","onMouseDown","content","CustomDropdown","onOpen","onClose","PodcastEpisodeContentExplorerRouteStore","podcastFileStreamService","PodcastFileStreamService","findAudioTrackEpisodes","getPodcasts","createPodcastEpisodeAudioFileUrl","podcastEpisodeId","getPodcastEpisodeAudioFile","PodcastEpisodeContentExplorerFilter","MrbFilterParameters","reset","PodcastEpisodeContentExplorerViewStore","_class3","selectedItems","headerCheckboxSelection","checkboxSelection","minWidth","flex","maxWidth","resizable","selection","rowSelection","isRowSelectable","onRowSelected","isSelected","includes","indexOf","onDataChange","rowsToSelect","getModel","rowsToDisplay","selectNode","MrbQuerySelectStore","sort","topLevelOnly","validSelectedItems","downloadRequests","DownloadRequest","downloadManagerStore","addItemsToQueue","ContentExplorerRouteStore","ContentExplorerViewStore","AlbumTrackContentExplorerRouteStore","nakiNigunArtistService","NakiNigunArtistService","nakiNigunAblumFileStreamService","NakiNigunAlbumFileStreamService","findAudioTrackAlbumSongs","findAlbums","findArtists","createAlbumTrackAudioFileUrl","getAlbumTrackAudioFile","AblumTrackContentExplorerFilter","AblumTrackContentExplorerViewStore","cell","trackId","newPlaylist","d","removedPlaylist","PodcastEpisodeContentExplorer","PodcastEpisodeContentExplorerTemplate","ContentExplorer","ContentExplorerTemplate","AlbumTrackContentExplorer","AlbumTrackContentExplorerViewStore","AlbumTrackContentExplorerTemplate","provided","isDragging","togglePlaylistIsActive","goToPlaylistPreview","draggableProps","dragHandleProps","data-is-dragging","data-testid","data-index","isToggleDisabled","preventDefault","stopPropagation","removeAlbumTrackFromPlaylist","albumTrack","dir","AdminPlaylist","AdminPlaylistTemplate","AdminPlaylistItem","AdminPlaylistItemTemplate","Row","memo","Draggable","draggableId","isDragDisabled","save","adminPlaylistListViewStore","reorderPlaylists","setVirtualizedListRef","DragDropContext","Droppable","mode","renderClone","snapshot","rubric","FixedSizeList","itemCount","itemSize","itemData","outerRef","adminPlaylistPreviewViewStore","EmptyState","overflowX","AdminPlaylistListViewStore","virtualizedListRef","getAllAdminPlaylists","getAllAdminGeneratedPlaylists","setPlaylists","setSubmitting","cloneDeep","updateAdminGeneratedPlaylists","setIsRouteExitBlocked","moveAdminPlaylistItem","moveToTop","movePlaylistItem","scrollToItem","sourceIndex","destinationIndex","AdminPlaylistListRouteStore","AdminPlaylistPreviewViewStore","getAdminPlaylist","setItems","deleteAlbumTrackFromAdminPlaylist","newItems","AdminPlaylistPreviewRouteStore","AdminPlaylistList","AdminPlaylistListTemplate","AdminPlaylistPreview","AdminPlaylistPreviewTemplate","podcastListViewStore","podcastEditViewStore","podcastContentTypeSelectStore","isTorahAnytimeTypeSelected","PodcastCoverImageUpload","AddPodcastsToTheGroupLoader","AddPodcastVolumeItem","PodcastEditPodcastVolumeListTemplate","podcastGroupPreviewViewStore","deletePodcast","PodcastGroupPreviewSubPodcastList","PodcastContentType","contentType","podcastContentType","torahAnytime","podcastPreviewViewStore","toggleRecentlyUpdatedVisibilityStatus","isTorahAnytimePodcast","podcastFeed","episodeSortType","episodeLimit","PodcastPreviewPodcastVolumeList","recentlyUpdatedVisibility","PodcastAnalyticsStatsWidget","podcastGroupEditViewStore","PodcastGroupEditPageLayout","podcastGroup","AddPodcastGroupItem","PodcastGroupEditSubPodcastList","EpisodeFilter","setSearch","setHlsAvailable","setMp3Available","isSearchEmpty","onInlineReset","hlsAvailable","mp3Available","podcastEpisodeListViewStore","openGeneratePopupForPodcast","openGeneratePopupForEpisode","goToUploadEpisode","generateAudioFilesModal","episodes","filteredEpisodes","syncNewEpisodes","editPodcastEpisodeTitleModal","openEditPodcastEpisodeTitleModal","downloadPodcastEpisode","deletePodcastEpisode","parentPodcast","contentClassName","StatusTag","PodcastEpisodeListLoader","PodcastEpisode","GenerateAudioFilesModal","PodcastEpisodeEditTitleModal","FileUploadNote","UploadedFileInfo","attachAudioFile","removeAudioFile","podcastEpisodeEditViewStore","UploadAlbumTrackLoader","PodcastList","PodcastListViewStore","PodcastListTemplate","PodcastEdit","PodcastEditViewStore","PodcastEditTemplate","PodcastGroupPreview","PodcastGroupPreviewViewStore","PodcastGroupPreviewTemplate","PodcastPreview","PodcastPreviewViewStore","PodcastPreviewTemplate","PodcastGroupEdit","PodcastGroupEditViewStore","PodcastGroupEditTemplate","PodcastEpisodeList","PodcastEpisodeListViewStore","PodcastEpisodeListTemplate","PodcastEpisodeEdit","PodcastEpisodeEditViewStore","PodcastEpisodeEditTemplate","PodcastEditRouteStore","PodcastGroupEditRouteStore","PodcastListRouteStore","PodcastGroupPreviewRouteStore","PodcastPreviewRouteStore","PodcastEpisodeListRouteStore","PodcastEpisodeEditRouteStore","GenreListLoaderTemplate","loaderList","GenreContentListItemTemplate","GenreContentListItem","GenreListLoader","Header","genreContentListViewStore","GenreContentListRouteStore","GenreService","getGenreContent","GenreContentListViewStore","MrbBaseInfiniteScrollListViewStore","MrbInfiniteScrollGridViewStore","generateKey","mapper","createAlbumCoverImageUrl","Promise","all","getGenre","setGenre","statusCode","httpStatusCodes","NotFound","goToNotFound","GenreContentList","GenreContentListTemplate","NoDataEmptyState","onClickAddNew","AddNewAccount","adminProducerAccountsViewStore","addNewAccount","AddNewAccountLoader","AdminProducerAccountEdit","adminProducerListViewStore","AdminProducerListSummaryPreview","BackButton","producerName","producerPaymentReportPreviewViewStore","ProducerReportLayout","producerReportViewStore","backButtonRenderer","ProducerReport","ProducerPaymentReportSummary","adminProducerPreviewViewStore","chartStore","AdminProducerAccountsList","_id","LineChart","AnalyticsGraphLoader","ProducerReportsTable","ProducerPreviewSummary","producerPreviewViewStore","ProducerPreviewMostPopularContent","adminProducerEditViewStore","AddToAccountBalanceModal","AdminProducerAccountBalanceEdit","producerUserAccount","modalData","addToAccountBalance","UpdateStripeAccountModal","AdminProducerAccountStripeAccountEdit","updateStripeAccount","adminProducerAccountPreviewViewStore","revenueGridStore","balanceGridStore","addToAccountBalanceModal","updateStripeAccountModal","openAddToAccountBalanceModal","openUpdateStripeAccountModal","ProducerAccountPreviewRevenueTransaction","ProducerAccountPreviewBalance","AdminProducerAccountSummaryPreview","AdminProducerAccountAssignedProducersPreview","AdminProducerAccounts","AdminProducerAccountsViewStore","AdminProducerAccountsTemplate","AdminProducerList","AdminProducerListViewStore","AdminProducerListTemplate","ProducerPaymentReportPreview","ProducerPaymentReportPreviewViewStore","ProducerPaymentReportPreviewTemplate","AdminProducerPreview","AdminProducerPreviewViewStore","AdminProducerPreviewTemplate","AdminProducerEdit","AdminProducerEditViewStore","AdminProducerEditTemplate","AdminProducerAccountPreview","AdminProducerAccountPreviewViewStore","AdminProducerAccountPreviewTemplate","AdminProducerEditRouteStore","AdminProducerListRouteStore","AdminProducerPreviewRouteStore","ProducerPaymentReportPreviewRouteStore","AdminProducerAccountEditRouteStore","AdminProducerAccountPreviewRouteStore","DashboardRouteStore","DashboardViewStore","Dashboard","DashboardTemplate","nakiNigunArtistListViewStore","toggleMobileAppVisibilityStatus","deleteArtist","sidebarLrg","SongFilter","openGeneratePopupForAlbum","openGeneratePopupForSong","songs","filteredSongs","syncNewSongs","editAlbumTrackModal","goToUploadAlbumTrack","nakiNigunAlbumTrackEditViewStore","NakiNigunArtistEdit","NakiNigunArtistEditViewStore","NakiNigunArtistEditTemplate","NakiNigunArtistList","NakiNigunArtistListViewStore","NakiNigunArtistListTemplate","NakiNigunArtistPreview","NakiNigunArtistPreviewViewStore","NakiNigunArtistPreviewTemplate","NakiNigunAlbumTrackList","NakiNigunAlbumTrackListViewStore","NakiNigunAlbumTrackListTemplate","NakiNigunAlbumTrackEdit","NakiNigunAlbumTrackEditViewStore","NakiNigunAlbumTrackEditTemplate","NakiNigunArtistEditRouteStore","NakiNigunArtistListRouteStore","NakiNigunArtistPreviewRouteStore","NakiNigunAlbumTrackListRouteStore","NakiNigunAlbumTrackEditRouteStore","userListViewStore","roleSelectStore","userEditViewStore","isAdminItself","approveUser","disapproveUser","unlockUser","lockUser","changePassword","isApproved","isLockedOut","passwordResetModal","producers","guestEmail","artistInfo","UserEditLoader","checkBox","userProfile","AdminUserSubscriptionSettings","userId","artistRegisterMessage","producerType","phoneNumber","MrbPageContentSidebar","MrbLineContentLoader","setY","setHeight","UserPasswordChange","userContentExpirationViewStore","userDisplayName","tabsStore","userStationExpirationViewStore","userPodcastExpirationViewStore","UserSettingsLoader","MrbTabLayout","MrbTabContent","UserStationExpiration","UserPodcastExpiration","userDeviceSettingsViewStore","anyDevice","stationDeviceViewStore","podcastDeviceViewStore","dropdown","headersRenderer","UserDeviceSettingsTabHeaders","StationDevice","PodcastDevice","UserDeviceSettingsEmptyState","userDeviceListViewStore","MrbGrid","cellRender","UserDeviceCell","userDeviceId","UserList","UserListViewStore","UserListTemplate","UserEdit","UserEditViewStore","UserEditTemplate","UserContentExpiration","UserContentExpirationViewStore","UserContentExpirationTemplate","UserDeviceList","UserDeviceListViewStore","UserDeviceListTemplate","UserDeviceSettings","UserDeviceSettingsViewStore","UserDeviceSettingsTemplate","UserListRouteStore","UserEditRouteStore","UserContentExpirationRouteStore","UserDeviceSettingsRouteStore","UserDeviceListRouteStore","DeviceSearchFilter","deviceMenuSearchViewStore","deviceSearchFilter","deviceMenuEditViewStore","addSeparator","addSearch","DeviceMenuEditPageLayout","SearchDeviceLoader","DeviceListLoader","DeviceMenuList","DeviceMenuSearchResult","DeviceMenuLatestItems","DeviceMenuEditRouteStore","DeviceService","deviceMenuTypeService","DeviceMenuTypeCacheService","getDeviceMenuTypes","getMenu","getMenuLatestItems","updateMenu","SearchResult","position","totalResults","focusedItemId","setFocusedItem","nextItem","setPosition","previousItem","DeviceMenuSearchViewStore","_class5","results","deviceMenuViewStore","deviceMenu","startsWith","toLowerCase","take","menuItem","_descriptor4","_descriptor5","searchContainerRef","element","scrollIntoView","block","searchResult","scrollSearchResultIntoView","setFocusedItemId","delay","document","addEventListener","toggleSearchPosition","resolve","removeEventListener","DeviceMenuLatestItemsViewStore","shuffleId","deviceMenuType","loadLatestItems","getDeviceMenuLatestItems","DeviceMenuEditViewStore","deviceMenuLatestItemsViewStore","setDeviceMenuTypes","deviceMenuTypes","goBack","deviceMenuTypeId","omit","updateDeviceMenu","separatorDeviceMenuType","separator","separatorMenuItem","searchDeviceMenuType","searchMenuItem","reorderMenu","moveDeviceMenuItem","newDeviceMenu","removeMenuItem","getResource","getDeviceMenu","DeviceMenuEdit","DeviceMenuEditTemplate","DownloadItem","onCancel","onRetry","downloadStatus","Progressbar","displayValue","downloadProgress","finished","new","downloading","canceled","failed","DownloadList","startingIndex","noContentMessage","isCurrentlyDownloading","hasDownloadData","DownloadManager","currentlyDownloadingItem","queuedItems","canceledItems","failedItems","finishedItems","selectedViewValue","setSelectedViewValue","closeWindow","itemsToDownload","getDisplayedItems","getNoContentMessage","handleCancel","cancelDownload","handleRetry","retryDownload","Accordion","remaining","getNumberOfRemainingItems","customStyle","bottom","right","zIndex","handleRemoveCard","additionalContent","showClose","menuStore","isOpen","MrbProgressBarLoader","mainLoaderStore","MainSidebar","MrbConfirmDialog","AdministrationLayout","AdministrationLayoutTemplate","AdministrationRouteStore","MainRouteStore","beforeEnter","fromState","toState","userStore","isAdministrator","reject","notFoundState","AddPodcastsToTheGroupLoaderTemplate","PodcastGroupLineLoaderTemplate","PodcastEpisodeListLoaderTemplate","PodcastGroupEditPageHeader","PodcastGroupEditPageHeaderTemplate","PodcastCoverImageUploadTemplate","PodcastGroupEditPageLayoutTemplate","AddPodcastGroupItemViewStore","AddPodcastGroupItemTemplate","PodcastGroupEditSubPodcast","PodcastGroupEditSubPodcastViewStore","PodcastGroupEditSubPodcastTemplate","PodcastGroupEditSubPodcastListTemplate","PodcastGroupPreviewSubPodcast","PodcastGroupPreviewSubPodcastViewStore","PodcastGroupPreviewSubPodcastTemplate","PodcastGroupPreviewSubPodcastListTemplate","PodcastAnalyticsStatsWidgetViewStore","PodcastAnalyticsStatsWidgetTemplate","PodcastGroupPreviewSubPodcastAnalyticsStats","PodcastGroupPreviewSubPodcastAnalyticsStatsTemplate","PodcastEditPodcastVolume","PodcastEditPodcastVolumeViewStore","PodcastEditPodcastVolumeTemplate","PodcastEditPodcastVolumeList","AddPodcastVolumeItemViewStore","AddPodcastVolumeItemTemplate","PodcastPreviewPodcastVolume","PodcastPreviewPodcastVolumeViewStore","PodcastPreviewPodcastVolumeTemplate","PodcastPreviewPodcastVolumeListTemplate","PodcastEpisodeTemplate","PodcastEpisodeEditTitleModalTemplate","PodcastEpisodeEditTitle","PodcastEpisodeEditTitleViewStore","PodcastEpisodeEditTitleTemplate","AddPodcastOnLarge","AddPodcastOnSmall","PodcastPreviewLineLoaderTemplate","setX","UnsavedSubPodcastValidation","anyUnsavedSubPodcast","addPodcastGroupItemViewStore","SubPodcastPanelHeader","podcastIndex","deleteSubPodcast","PODCAST_FORM_STATUS","podcastGroupEditSubPodcastViewStore","subPodcasts","reorderPodcasts","PodcastVolumePanelHeader","podcastVolumeIndex","podcastVolume","deletePodcastVolume","podcastEditPodcastVolumeViewStore","podcastVolumes","reorderPodcastVolumes","addPodcastVolumeItemViewStore","podcastGroupPreviewSubPodcastViewStore","isAppVisibilityDisabled","isNakiTouchVisibilityDisabled","subPodcastAnalyticsStatsWidgetViewStore","onClickPodcastEpisodeList","subPodcast","podcastAnalyticsStatsWidgetViewStore","currentPeriodLabel","previousPeriodLabel","StatsWidgetLoader","statsPreview","numberFormatter","currentCycleScore","currentCyclePosition","previousCyclePosition","TrendingIndicator","indicatorClassNameExtend","currentCycleNumber","previousCycleNumber","podcastPreviewPodcastVolumeViewStore","publishDate","podcastEpisodeEditTitleViewStore","BasePodcastEditRouteStore","episodeSortTypeService","EpisodeSortTypeCacheService","producerService","ProducerService","getEpisodeSortTypes","getPodcastCoverImageUrl","BasePodcastEditViewStore","episodeSortTypes","config","PodcastCoverImageUploadViewStore","setEpisodeSortTypes","sortType","torahAnytimeService","TorahAnytimeService","getSetting","UPDATED","some","changed","subPodcastsChanged","blockRouteExit","invalidateSubPodcasts","registerRouteExitBlocking","_onAfterSave","getPodcastGroup","createPodcastGroup","updatePodcastGroup","onCreateSuccess","onUpdateSuccess","errorCode","applicationErrorCodes","rssSync","rssSyncFailed","response","addSubPodcast","updateSubPodcast","merge","newPodcasts","markSubPodcastAsChanged","markSubPodcastAsUpdated","isFormChanged","isChanged","podcastVolumesChanged","_descriptor6","default","findProducers","createProducer","isClearable","torahAnytimeSettings","podcastContentTypes","addIsRequiredRule","removeIsRequiredRule","skipPodcastContentTypeReaction","enable","apiUrl","fetchTorahAnytimeSettings","episodeSortTypeId","getPodcast","updatePodcast","premiumInfoIsVisible","$changed","addPodcastVolume","podcastVolumeId","updatePodcastVolume","markPodcastVolumeAsChanged","markPodcastVolumeAsUpdated","getTorahAnytimeSetting","setTorahAnytimeSettings","warning","newPodcastVolumes","selectedLocationOption","selectedLanguageOption","selectedGenres","genreOption","selectedProducerOption","isPodcastGroupPremium","isPodcastGroupVisibleInApp","isPodcastGroupVisibleInNakiTouch","disabledForShufflingWeight","createRef","panelRef","isNewlyAdded","setForm","focus","setTimeout","behavior","each","podcastFileEntryId","createGroup","updateGroup","onSuccess","setFieldsDisabled","editPodcastEpisodeTitle","newPodcastEpisodeTitle","updatePodcastEpisodeTitle","rssSyncService","RssSyncService","getAllEpisodes","hlsEncodePodcastEpisodes","hlsEncodePodcasts","syncPodcasts","syncPodcastsBackground","PodcastEpisodeListFilter","episode","add","generate","downloadRequest","addItemToQueue","contentEncoderSyncStore","podcastEpisodeTasks","_assignSyncTask","episodeTasks","getEpisodes","setEpisodes","processHls","processMp3","ids","overwriteHls","overwriteMp3","resetSync","podcastEpisode","processHlsEncodingForSingleEntity","processHlsEncodingForPodcastEpisode","info","_this$item$parentPodc","subtitle","processHlsEncodingForAllEntities","processHlsEncodingForPodcast","syncTasks","isUpdated","newSyncTask","episodeId","newTitle","deleteEpisode","newEpisodes","getPodcastAnalyticsStats","SubPodcastAnalyticsStatsWidgetViewStore","isInitialized","fetchResource","setIsInitialized","BasePodcastPreviewRouteStore","podcastAnalyticsService","PodcastAnalyticsService","getPodcastStats","updateRecentlyUpdatedVisibilityStatus","updateHlsEnabledStatus","BasePodcastPreviewViewStore","_err$data","setDisplayMissingProducers","_createNavigateBackAction","formData","FormData","append","uploadEpisode","Conflict","nakiNigunArtistFileStreamService","NakiNigunArtistFileStreamService","nakiNigunAlbumFileStreamService","getNakiNigunArtistCoverImageUrl","getNakiNigunAlbumCoverImageUrl","NakiNigunArtistEditForm","NakiNigunAlbumEditForm","NakiNigunAlbumTrackEditTitleForm","NakiNigunAlbumCoverImageUploadViewStore","markAlbumAsChanged","isArtistPremium","markAlbumAsUpdated","updateAlbum","NakiNigunArtistCoverImageUploadViewStore","addAlbum","contentSortTypeId","albumsChanged","invalidateAlbums","getNakiNigunArtist","createNakiNigunArtist","updateNakiNigunArtist","newAlbums","override","editAlbumTrackTitle","newAlbumTrackTitle","updateAlbumTrackTitle","deleteNakiNigunArtist","findNakiNigunArtists","getAllSongs","hlsEncodeAlbums","hlsEncodeAlbumTracks","syncNakiNigunAlbums","syncNakiNigunAlbumsBackground","NakiNigunAlbumTrackListFilter","song","albumTrackTasks","songTasks","getSongs","getAlbum","setSongs","processHlsEncodingForAlbumTrack","processHlsEncodingForAlbum","songId","newSongs","isArtistActive","updateAlbumActiveStatus","updateAlbumPremiumStatus","updateAlbumFeaturedStatus","updateAlbumOnByDefaultStatus","updateAlbumOnByDefaultInAppStatus","updateAlbumOnByDefaultInNakiTouchStatus","updateAlbumHlsEnabledStatus","albumService","updateMobileAppVisibilityStatus","_this$item","getNakiNigunAlbum","uploadAlbumTrack","albumid"],"mappings":"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","file":"static/js/adminModules.98ad03b7.chunk.js","sourcesContent":["import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class PodcastEditForm 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: \"title\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.TITLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.TITLE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"description\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.DESCRIPTION_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.DESCRIPTION_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"alternativeDescription\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PORTAL_DESCRIPTION_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PORTAL_DESCRIPTION_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"premiumInfo\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PREMIUM_INFO_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PREMIUM_INFO_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"descriptionLink\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.DESCRIPTION_LINK_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.DESCRIPTION_LINK_PLACEHOLDER\",\r\n rules: \"string|url\",\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_ACTIVE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_ACTIVE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isFeatured\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_FEATURED_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_FEATURED_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isPremium\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_PREMIUM_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_PREMIUM_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isVisible\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefault\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefaultInApp\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_APP_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_APP_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefaultInEmbeddedApp\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_EMBEDDED_APP_LABEL\",\r\n placeholder:\r\n \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_EMBEDDED_APP_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"overrideRadioUsersSettings\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"overrideAppUsersSettings\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isVisibleInApp\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_APP\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_APP\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isVisibleInEmbeddedApp\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_EMBEDDED_APP\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_EMBEDDED_APP\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"excludedFromRevenue\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EXCLUDED_FROM_REVENUE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EXCLUDED_FROM_REVENUE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n value: false,\r\n },\r\n {\r\n name: \"genreIds\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.GENRE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.GENRE_PLACEHOLDER\",\r\n },\r\n {\r\n name: \"locationId\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.LOCATION_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.LOCATION_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"languageId\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.LANGUAGE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.LANGUAGE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"producerId\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PRODUCER_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PRODUCER_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"keywords\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.KEYWORDS_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.KEYWORDS_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"podcastContentType\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PODCAST_CONTENT_TYPE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PODCAST_CONTENT_TYPE_PLACEHOLDER\",\r\n rules: \"required|numeric\",\r\n },\r\n {\r\n name: \"podcastFeed\",\r\n fields: [\r\n {\r\n name: \"feedUrl\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.FEED_URL_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.FEED_URL_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"episodeSortTypeId\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EPISODE_SORT_TYPE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EPISODE_SORT_TYPE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"episodeLimit\",\r\n type: \"numeric\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EPISODE_LIMIT_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EPISODE_LIMIT_PLACEHOLDER\",\r\n rules: \"numeric|not_in:0\",\r\n },\r\n {\r\n name: \"recentlyUpdatedVisibility\",\r\n type: \"checkbox\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.RECENTLY_UPDATED_VISIBILITY_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.RECENTLY_UPDATED_VISIBILITY_PLACEHOLDER\",\r\n },\r\n {\r\n name: \"hlsEnabled\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_HLS_ENABLED_LABEL\",\r\n placeholder: \"\",\r\n type: \"checkbox\",\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class PodcastGroupEditForm 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: \"title\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.TITLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.TITLE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"alternativeDescription\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PORTAL_DESCRIPTION_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PORTAL_DESCRIPTION_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"premiumInfo\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PREMIUM_INFO_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PREMIUM_INFO_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"descriptionLink\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.DESCRIPTION_LINK_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.DESCRIPTION_LINK_PLACEHOLDER\",\r\n rules: \"string|url\",\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_ACTIVE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_ACTIVE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isFeatured\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_FEATURED_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_FEATURED_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isPremium\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_PREMIUM_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_PREMIUM_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isVisible\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isVisibleInApp\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_APP\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_APP\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isVisibleInEmbeddedApp\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_EMBEDDED_APP\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_EMBEDDED_APP\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class PodcastGroupItemEditForm 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: \"title\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.TITLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.TITLE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"description\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.DESCRIPTION_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.DESCRIPTION_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"descriptionLink\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.DESCRIPTION_LINK_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.DESCRIPTION_LINK_PLACEHOLDER\",\r\n rules: \"string|url\",\r\n },\r\n {\r\n name: \"alternativeDescription\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PORTAL_DESCRIPTION_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PORTAL_DESCRIPTION_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_ACTIVE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_ACTIVE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isPremium\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_PREMIUM_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_PREMIUM_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefault\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefaultInApp\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_APP_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_APP_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefaultInEmbeddedApp\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_EMBEDDED_APP_LABEL\",\r\n placeholder:\r\n \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_EMBEDDED_APP_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"excludedFromRevenue\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EXCLUDED_FROM_REVENUE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EXCLUDED_FROM_REVENUE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"overrideRadioUsersSettings\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"overrideAppUsersSettings\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isVisibleInApp\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_APP\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_APP\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isVisibleInEmbeddedApp\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_EMBEDDED_APP\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_VISIBLE_IN_EMBEDDED_APP\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"genreIds\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.GENRE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.GENRE_PLACEHOLDER\",\r\n },\r\n {\r\n name: \"locationId\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.LOCATION_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.LOCATION_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"languageId\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.LANGUAGE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.LANGUAGE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"producerId\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PRODUCER_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PRODUCER_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"keywords\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.KEYWORDS_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.KEYWORDS_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"podcastFeed\",\r\n fields: [\r\n {\r\n name: \"feedUrl\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.FEED_URL_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.FEED_URL_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"episodeSortTypeId\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EPISODE_SORT_TYPE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EPISODE_SORT_TYPE_PLACEHOLDER\",\r\n type: \"required|string\",\r\n },\r\n {\r\n name: \"episodeLimit\",\r\n type: \"numeric\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EPISODE_LIMIT_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.EPISODE_LIMIT_PLACEHOLDER\",\r\n rules: \"numeric|not_in:0\",\r\n },\r\n {\r\n name: \"recentlyUpdatedVisibility\",\r\n type: \"checkbox\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.RECENTLY_UPDATED_VISIBILITY_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.RECENTLY_UPDATED_VISIBILITY_PLACEHOLDER\",\r\n },\r\n {\r\n name: \"hlsEnabled\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.IS_HLS_ENABLED_LABEL\",\r\n placeholder: \"\",\r\n type: \"checkbox\",\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class PodcastVolumeEditForm 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: \"title\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.TITLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.TITLE_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 PodcastEpisodeEditTitleForm 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: \"title\",\r\n label: \"ADMINISTRATION.PODCAST.EPISODES.FIELDS.TITLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EPISODES.FIELDS.TITLE_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 PodcastEpisodeEditForm 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: \"title\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.TITLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.TITLE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import React from 'react'\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst NakiNigunArtistEditNameLoaderTemplate = ({\r\n ...props\r\n}) => {\r\n const screenwidth = window.innerWidth;\r\n let loaderWidth;\r\n\r\n if (screenwidth > 1199) {\r\n loaderWidth = screenwidth - 587;\r\n } else if (screenwidth > 991) {\r\n loaderWidth = screenwidth - 250;\r\n } else {\r\n loaderWidth = screenwidth;\r\n }\r\n\r\n return (\r\n 544 ? 160 : 240}`}\r\n backgroundColor=\"#262729\"\r\n foregroundColor=\"#2b2b2b\"\r\n {...props}\r\n >\r\n \r\n \r\n\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default NakiNigunArtistEditNameLoaderTemplate\r\n\r\nconst ToggleLoader = ({ screenwidth }) => {\r\n\r\n return (\r\n screenwidth > 544 ?\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n )\r\n}","import React from 'react'\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst NakiNigunAddAlbumLoaderTemplate = (props) => {\r\n const screenwidth = window.innerWidth;\r\n const loaderWidth = screenwidth > 990 ? screenwidth - 260 : screenwidth;\r\n\r\n return (\r\n 767 ? 476 : 830}`}\r\n backgroundColor=\"#262729\"\r\n foregroundColor=\"#2b2b2b\"\r\n {...props}\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default NakiNigunAddAlbumLoaderTemplate;\r\n\r\nconst AddAlbumsLoader = ({ screenwidth }) => {\r\n return (\r\n screenwidth > 767 ?\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n :\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n );\r\n};","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst NakiNigunArtistAlbumLoaderTemplate = ({ listNumber = 3 }) => {\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 {Array.from({ length: listNumber }, () => {\r\n return (\r\n
\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport default NakiNigunArtistAlbumLoaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbEditFormLayout } from \"mrb/components/layout\";\r\nimport { MrbFieldInput, MrbFieldNumericInput } from \"mrb/components/input\";\r\nimport { MrbFieldSelect } from \"mrb/components/select\";\r\nimport { MrbFieldToggle } from \"mrb/components/checkbox\";\r\nimport { MrbFieldRadioButtons } from \"mrb/components/radio\";\r\nimport { CoverImageUpload, ProducerFieldSelect } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction NakiNigunAddAlbumTemplate({ nakiNigunAddAlbumViewStore, t }) {\r\n const {\r\n form,\r\n episodeSortTypeOptions,\r\n resetForm,\r\n coverImageUploadViewStore,\r\n genreSelectStore,\r\n producerSelectStore,\r\n isPremiumDisabled,\r\n isActiveStatusDisabled,\r\n } = nakiNigunAddAlbumViewStore;\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nNakiNigunAddAlbumTemplate.propTypes = {\r\n nakiNigunAddAlbumViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(NakiNigunAddAlbumTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbCollapsiblePanel } from \"mrb/components/collapsible-panel\";\r\nimport { MrbEditFormLayout } from \"mrb/components/layout\";\r\nimport { MrbFieldSelect } from \"mrb/components/select\";\r\nimport { MrbFieldInput, MrbFieldNumericInput } from \"mrb/components/input\";\r\nimport { MrbFieldToggle } from \"mrb/components/checkbox\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbFieldRadioButtons } from \"mrb/components/radio\";\r\nimport { ARTIST_FORM_STATUS } from \"administration/naki-nigun/stores\";\r\nimport { CoverImageUpload, ProducerFieldSelect } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunAlbumEditTemplate({ nakiNigunAlbumEditViewStore, t }) {\r\n const {\r\n form,\r\n albumIndex,\r\n album,\r\n episodeSortTypeOptions,\r\n isCollapsed,\r\n toggleCollapse,\r\n setPanelRef,\r\n coverImageUploadViewStore,\r\n resetForm,\r\n deleteAlbum,\r\n genreSelectStore,\r\n producerSelectStore,\r\n overrideRadioUsersSettingsIsVisible,\r\n overrideAppUsersSettingsIsVisible,\r\n isPremiumDisabled,\r\n isActiveStatusDisabled,\r\n } = nakiNigunAlbumEditViewStore;\r\n return (\r\n \r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n {overrideRadioUsersSettingsIsVisible ? (\r\n \r\n ) : null}\r\n \r\n \r\n {overrideAppUsersSettingsIsVisible ? (\r\n \r\n ) : null}\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n )}\r\n \r\n
\r\n );\r\n}\r\n\r\nNakiNigunAlbumEditTemplate.propTypes = {\r\n nakiNigunAlbumEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst AlbumPanelHeader = observer(function AlbumPanelHeader({ title, t, isCollapsed, albumIndex, album, deleteAlbum }) {\r\n return (\r\n \r\n
\r\n \r\n {albumIndex}.\r\n {t(title)}\r\n {album.isPremium && (\r\n \r\n )}\r\n
\r\n
\r\n {album.FORM_STATUS === ARTIST_FORM_STATUS.CHANGED && (\r\n
\r\n

\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.VALIDATION.ALBUM_CHANGED\")}\r\n

\r\n
\r\n )}\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nexport default observer(NakiNigunAlbumEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { NakiNigunAlbumEdit } from \"administration/naki-nigun/components\";\r\nimport { DragDropList } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunArtistEditAlbumListTemplate({ nakiNigunArtistEditViewStore, t }) {\r\n const { albums, reorderAlbums } = nakiNigunArtistEditViewStore;\r\n\r\n return (\r\n \r\n {albums && albums.length > 0 && (\r\n (\r\n \r\n )}\r\n >\r\n )}\r\n \r\n );\r\n}\r\n\r\nNakiNigunArtistEditAlbumListTemplate.propTypes = {\r\n nakiNigunArtistEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunArtistEditAlbumListTemplate);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { renderActions } from \"mrb/components/layout/utils\";\r\nimport { MrbBreadcrumbs } from \"mrb/components/breadcrumbs\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { isFunction } from \"lodash\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { MrbEditFormValidation } from \"mrb/components/layout/content\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunArtistEditPageHeaderTemplate({\r\n form,\r\n onClickCancel,\r\n title,\r\n layoutActions,\r\n navigationOptions,\r\n navigateBack,\r\n t = (i) => i,\r\n submitLabel,\r\n cancelLabel,\r\n store,\r\n}) {\r\n return (\r\n \r\n
\r\n {navigateBack ? (\r\n \r\n \r\n \r\n \r\n {t(navigateBack.title)}\r\n \r\n ) : (\r\n
{t(title)}
\r\n )}\r\n
\r\n \r\n \r\n\r\n \r\n {renderActions(layoutActions)}\r\n
\r\n
\r\n {navigationOptions && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nNakiNigunArtistEditPageHeaderTemplate.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n onClickCancel: PropTypes.func,\r\n title: PropTypes.string,\r\n layoutActions: PropTypes.object,\r\n navigationOptions: PropTypes.object,\r\n navigateBack: PropTypes.object,\r\n t: PropTypes.func,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n store: PropTypes.object.isRequired,\r\n};\r\n\r\nconst EditPageActions = observer(function EditPageActions({\r\n form,\r\n onClickCancel,\r\n submitLabel = \"Save\",\r\n cancelLabel = \"Cancel\",\r\n t,\r\n}) {\r\n return (\r\n \r\n {onClickCancel && isFunction(onClickCancel) && (\r\n \r\n )}{\" \"}\r\n \r\n \r\n );\r\n});\r\n\r\nEditPageActions.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n onClickCancel: PropTypes.func,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst UnsavedAlbumValidation = observer(function UnsavedAlbumValidation({ store, t }) {\r\n return (\r\n store.anyUnsavedAlbum && (\r\n
\r\n

\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.VALIDATION.ALBUM_CHANGED\")}\r\n

\r\n
\r\n )\r\n );\r\n});\r\n\r\nUnsavedAlbumValidation.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunArtistEditPageHeaderTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbEditContent, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { NakiNigunArtistEditPageHeader } from \"administration/naki-nigun/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunArtistEditPageLayoutTemplate({ store, children, t, submitLabel, cancelLabel, ...pageProps }) {\r\n const { form, onClickCancel, title, layoutActions, navigationOptions, navigateBack } = store;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nNakiNigunArtistEditPageLayoutTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n children: PropTypes.any,\r\n t: PropTypes.func,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n};\r\n\r\nexport default observer(NakiNigunArtistEditPageLayoutTemplate);\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 { observer } from \"mobx-react\";\r\nimport { MrbToggle } from \"mrb/components/checkbox\";\r\nimport { Genres, Image, ProducerLabel } from \"common/components\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction NakiNigunArtistPreviewAlbumTemplate({ nakiNigunArtistPreviewAlbumViewStore, t }) {\r\n const {\r\n album,\r\n isCollapsed,\r\n toggleCollapse,\r\n toggleIsActive,\r\n togglePremiumStatus,\r\n toggleOnByDefaultStatus,\r\n toggleOnByDefaultInAppStatus,\r\n toggleOnByDefaultInNakiTouchStatus,\r\n toggleIsFeatured,\r\n onClickEdit,\r\n setPanelRef,\r\n coverImageUrl,\r\n isPremiumDisabled,\r\n isActiveStatusDisabled,\r\n onClickAlbumTrackList,\r\n toggleHlsEnabledStatus,\r\n } = nakiNigunArtistPreviewAlbumViewStore;\r\n const { displayMissingProducers } = nakiNigunArtistPreviewAlbumViewStore.nakiNigunArtistPreviewViewStore;\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 {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.FIELDS.FEED_URL\")}\r\n

\r\n \r\n {album.albumFeed.feedUrl}\r\n \r\n
\r\n
\r\n\r\n
\r\n

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

\r\n {album.year || \"-\"}\r\n
\r\n\r\n
\r\n

\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.FIELDS.GENRES\")}\r\n

\r\n {album.genres && album.genres.length > 0 ? : \"-\"}\r\n
\r\n\r\n
\r\n

\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.FIELDS.CONTENT_SORT_TYPE\")}\r\n

\r\n

\r\n {album.albumFeed &&\r\n album.albumFeed.contentSortType &&\r\n album.albumFeed.contentSortType.name}\r\n

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

\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.FIELDS.PRODUCER\")}\r\n

\r\n

\r\n {album.producer && (\r\n \r\n )}\r\n

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

\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.FIELDS.COVER_IMAGE\")}\r\n

\r\n \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(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.BUTTONS.STATUS\")}\r\n toggleIsActive(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.BUTTONS.PREMIUM\")}\r\n togglePremiumStatus(event.target.checked)}\r\n />\r\n
\r\n
\r\n\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.BUTTONS.MAKE_DEFAULT\")}\r\n toggleOnByDefaultStatus(event.target.checked)}\r\n />\r\n
\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.BUTTONS.MAKE_DEFAULT_IN_APP\")}\r\n toggleOnByDefaultInAppStatus(event.target.checked)}\r\n />\r\n
\r\n
\r\n {t(\r\n \"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.BUTTONS.MAKE_DEFAULT_IN_EMBEDDED_APP\"\r\n )}\r\n toggleOnByDefaultInNakiTouchStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.BUTTONS.FEATURED\")}\r\n toggleIsFeatured(event.target.checked)}\r\n />\r\n
\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.BUTTONS.HLS_ENABLED\")}\r\n toggleHlsEnabledStatus(event.target.checked)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\" \"}\r\n \r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nNakiNigunArtistPreviewAlbumTemplate.propTypes = {\r\n album: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst AlbumPanelHeader = observer(function AlbumPanelHeader({\r\n title,\r\n t,\r\n isCollapsed,\r\n album,\r\n displayMissingProducers,\r\n isPremiumDisabled,\r\n}) {\r\n return (\r\n \r\n
\r\n {t(title)}{\" \"}\r\n {album.isPremium && (\r\n \r\n )}\r\n
\r\n
\r\n {((isPremiumDisabled && album.producerId === null) ||\r\n (displayMissingProducers && album.producerId === null)) && (\r\n

\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.VALIDATION.MISSING_PRODUCER_LABEL\")}\r\n

\r\n )}{\" \"}\r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nexport default observer(NakiNigunArtistPreviewAlbumTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { NakiNigunArtistPreviewAlbum } from \"administration/naki-nigun/components\";\r\nimport { PodcastGroupLineLoader } from \"administration/podcast/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunArtistPreviewAlbumListTemplate({ nakiNigunArtistPreviewViewStore, t, innerList }) {\r\n const { item, loaderStore } = nakiNigunArtistPreviewViewStore;\r\n\r\n return (\r\n
\r\n
\r\n }>\r\n {() => (\r\n
\r\n {map(item.albums, (album, key) => (\r\n \r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nNakiNigunArtistPreviewAlbumListTemplate.propTypes = {\r\n nakiNigunArtistPreviewViewStore: PropTypes.object.isRequired,\r\n innerList: PropTypes.bool,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunArtistPreviewAlbumListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { Image } from \"common/components\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { convertSecondsToHMS } from \"common/utils\";\r\nimport { isEmpty, isNil } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { useRootStore } from \"mrb/core\";\r\n\r\nfunction NakiNigunAlbumTrackTemplate({\r\n item,\r\n isSyncing,\r\n generateAudioFiles,\r\n wrapperClassName,\r\n isActive,\r\n isHlsEnabled,\r\n openEditAlbumTrack,\r\n t,\r\n downloadAlbumTrack,\r\n deleteAlbumTrack,\r\n}) {\r\n const rootStore = useRootStore();\r\n const artworkUrl = item.artworkFileEntryId\r\n ? rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(item.artworkFileEntryId, 50, 50)\r\n : null;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{item.title}

\r\n\r\n {!isNil(item.syncTask) ? (\r\n \r\n ) : null}\r\n
\r\n\r\n
\r\n {\r\n openEditAlbumTrack(item);\r\n }}\r\n />\r\n\r\n {item.audioStreamUrl && (\r\n downloadAlbumTrack(item)}\r\n className=\"c-btn c-btn--primary c-btn--rounded c-btn--rounded--sml c-btn--icon\"\r\n >\r\n \r\n \r\n )}\r\n {item.isManualUpload && (\r\n deleteAlbumTrack(item)}\r\n title={\"Delete Track\"}\r\n onlyIcon\r\n icon=\"u-icon u-icon--med u-icon--trash\"\r\n classNameOverride=\"c-btn c-btn--icon\"\r\n >\r\n )}\r\n
\r\n
\r\n
\r\n

{convertSecondsToHMS(item.duration)}

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

Source URL

\r\n \r\n {item.streamUrl}\r\n \r\n
\r\n\r\n
\r\n {!isEmpty(item.hlsStreamUrl) ? (\r\n
\r\n

HLS availability

\r\n

Available

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

HLS availability

\r\n

Not available

\r\n
\r\n )}\r\n\r\n {!isEmpty(item.audioStreamUrl) ? (\r\n
\r\n

MP3 availability

\r\n

Available

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

MP3 availability

\r\n

Not available

\r\n
\r\n )}\r\n\r\n {item.audioFileBitrate > 0 && item.audioFileSize > 0 && (\r\n <>\r\n
\r\n

MP3 file bitrate

\r\n

{`${item.audioFileBitrate} Kbit/s`}

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

MP3 file size

\r\n

\r\n {`${(item.audioFileSize / Math.round(1024 * 1024)).toFixed(2)} MB`}\r\n

\r\n
\r\n \r\n )}\r\n
\r\n
\r\n {!isEmpty(item.audioStreamUrl) && isHlsEnabled ? (\r\n
\r\n

Streaming from local server

\r\n

Yes

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

Streaming from local server

\r\n

No

\r\n
\r\n )}\r\n
\r\n {isActive && isHlsEnabled && (\r\n generateAudioFiles(item)}\r\n />\r\n )}\r\n
\r\n );\r\n}\r\n\r\nNakiNigunAlbumTrackTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n generateAudioFiles: PropTypes.func.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunAlbumTrackTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { observer } from \"mobx-react\";\r\nimport { NakiNigunAlbumTrackEditTitle } from \"administration/naki-nigun/components\";\r\n\r\nconst NakiNigunAlbumTrackEditModalTemplate = observer(function NakiNigunAlbumTrackEditModalTemplate({\r\n nakiNigunAlbumTrackListViewStore,\r\n modalParams,\r\n t,\r\n}) {\r\n return (\r\n \r\n {() => (\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nNakiNigunAlbumTrackEditModalTemplate.propTypes = {\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default NakiNigunAlbumTrackEditModalTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput } from \"mrb/components/input\";\r\nimport { MrbEditFormValidation } from \"mrb/components/layout/content\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { isFunction } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunAlbumTrackEditTitle({ nakiNigunAlbumTrackEditTitleViewStore, closeModal, t }) {\r\n const { form } = nakiNigunAlbumTrackEditTitleViewStore;\r\n return (\r\n \r\n \r\n
\r\n {closeModal && isFunction(closeModal) && (\r\n \r\n )}{\" \"}\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nNakiNigunAlbumTrackEditTitle.propTypes = {\r\n nakiNigunAlbumTrackEditTitleViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(NakiNigunAlbumTrackEditTitle);\r\n","import React from \"react\";\r\nimport { NakiNigunArtistEditNameLoaderTemplate } from \"themes/administration/naki-nigun/components\";\r\n\r\nconst NakiNigunArtistEditNameLoader = (props) => {\r\n return ;\r\n};\r\n\r\nexport default NakiNigunArtistEditNameLoader;\r\n","import React from \"react\";\r\nimport { NakiNigunAddAlbumLoaderTemplate } from \"themes/administration/naki-nigun/components\";\r\n\r\nconst NakiNigunAddAlbumLoader = (props) => {\r\n return ;\r\n};\r\n\r\nexport default NakiNigunAddAlbumLoader;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistAlbumLoaderTemplate } from \"themes/administration/naki-nigun/components\";\r\n\r\nconst NakiNigunArtistAlbumLoader = (props) => {\r\n return ;\r\n};\r\n\r\nexport default NakiNigunArtistAlbumLoader;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { NakiNigunAddAlbumTemplate } from \"themes/administration/naki-nigun/components\";\r\nimport { NakiNigunAddAlbumViewStore } from \"administration/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunAddAlbumViewStore(rootStore, componentProps),\r\n \"nakiNigunAddAlbumViewStore\"\r\n)\r\n@observer\r\nclass NakiNigunAddAlbum extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunAddAlbum;\r\n","import React from \"react\";\r\nimport { NakiNigunAlbumEditTemplate } from \"themes/administration/naki-nigun/components\";\r\nimport { NakiNigunAlbumEditViewStore } from \"administration/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunAlbumEditViewStore(rootStore, componentProps),\r\n \"nakiNigunAlbumEditViewStore\"\r\n)\r\nclass NakiNigunAlbumEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumEdit;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistEditAlbumListTemplate } from \"themes/administration/naki-nigun/components\";\r\n\r\nclass NakiNigunArtistEditAlbumList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistEditAlbumList;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistEditPageHeaderTemplate } from \"themes/administration/naki-nigun/components\";\r\n\r\nclass NakiNigunArtistEditPageHeader extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistEditPageHeader;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistEditPageLayoutTemplate } from \"themes/administration/naki-nigun/components\";\r\n\r\nclass NakiNigunArtistEditPageLayout extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistEditPageLayout;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistPreviewAlbumTemplate } from \"themes/administration/naki-nigun/components\";\r\nimport { NakiNigunArtistPreviewAlbumViewStore } from \"administration/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunArtistPreviewAlbumViewStore(rootStore, componentProps),\r\n \"nakiNigunArtistPreviewAlbumViewStore\"\r\n)\r\nclass NakiNigunArtistPreviewAlbum extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistPreviewAlbum;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistPreviewAlbumListTemplate } from \"themes/administration/naki-nigun/components\";\r\n\r\nclass NakiNigunArtistPreviewAlbumList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistPreviewAlbumList;\r\n","import React from \"react\";\r\nimport { NakiNigunAlbumTrackTemplate } from \"themes/administration/naki-nigun/components\";\r\n\r\nclass NakiNigunAlbumTrack extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumTrack;\r\n","import React from \"react\";\r\nimport { NakiNigunAlbumTrackEditModalTemplate } from \"themes/administration/naki-nigun/components\";\r\n\r\nclass NakiNigunAlbumTrackEditModal extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumTrackEditModal;\r\n","import React from \"react\";\r\nimport { NakiNigunAlbumTrackEditTitleTemplate } from \"themes/administration/naki-nigun/components\";\r\nimport { NakiNigunAlbumTrackEditTitleViewStore } from \"administration/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunAlbumTrackEditTitleViewStore(rootStore, componentProps),\r\n \"nakiNigunAlbumTrackEditTitleViewStore\"\r\n)\r\nclass NakiNigunAlbumTrackEditTitle extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumTrackEditTitle;\r\n","import React, { useState, useCallback } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst SectionListLoaderTemplate = (props) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n 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\nexport default SectionListLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst FeaturedSectionLoaderTemplate = (props) => {\r\n const { gridNum = 9 } = props;\r\n const gridList = [];\r\n\r\n for (let i = 0; i < gridNum; i++) {\r\n gridList.push(\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n return
{gridList}
;\r\n};\r\n\r\nexport default FeaturedSectionLoaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbSelect } from \"mrb/components/select\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction EditFeaturedSectionContentTemplate({ editFeaturedSectionContentViewStore, cancel, t }) {\r\n const { contentSelectStore, onSelectItem } = editFeaturedSectionContentViewStore;\r\n\r\n return (\r\n
\r\n
\r\n }\r\n classNameExtend=\"c-dropdown--dark c-dropdown--base\"\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nEditFeaturedSectionContentTemplate.propTypes = {\r\n editFeaturedSectionContentViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction OptionLabel({ item }) {\r\n let icon = null;\r\n if (!isNil(item.stationId)) {\r\n icon = \"stations\";\r\n } else if (!isNil(item.podcastId)) {\r\n icon = \"podcasts\";\r\n } else if (!isNil(item.artistId)) {\r\n icon = \"nigun\";\r\n } else if (!isNil(item.albumId)) {\r\n icon = \"nigun\";\r\n }\r\n return (\r\n

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

\r\n );\r\n}\r\n\r\nexport default observer(EditFeaturedSectionContentTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { EditFeaturedSectionContent } from \"administration/naki-mobile/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction EditFeaturedSectionContentModalTemplate({ modalParams, loaderStore, t }) {\r\n return (\r\n \r\n

Select from list

\r\n \r\n
\r\n );\r\n}\r\n\r\nEditFeaturedSectionContentModalTemplate.propTypes = {\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(EditFeaturedSectionContentModalTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbSelect } from \"mrb/components/select\";\r\nimport { MrbToggle } from \"mrb/components/checkbox\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { useRootStore } from \"mrb/core/contexts\";\r\nimport { map, isNil } from \"lodash\";\r\n\r\nfunction NakiMobileHomeSectionTemplate({ nakiMobileHomeSectionViewStore, t }) {\r\n return ;\r\n}\r\n\r\nconst EditPanelContainer = observer(function EditPanelContainer({ nakiMobileHomeSectionViewStore, t }) {\r\n return ;\r\n});\r\n\r\nconst EditPanel = observer(function EditPanel({ nakiMobileHomeSectionViewStore, t }) {\r\n const {\r\n item,\r\n isSystemSection,\r\n setIsActive,\r\n onTitleChange,\r\n contentSelectStore,\r\n onSelectItem,\r\n isAddContentButtonDisabled,\r\n deleteSection,\r\n selectedItemExists,\r\n goToGenreContent,\r\n } = nakiMobileHomeSectionViewStore;\r\n return (\r\n
\r\n
\r\n
\r\n \r\n setIsActive(event.target.checked)}\r\n />\r\n\r\n
\r\n {item.genreId && (\r\n \r\n )}\r\n {!isSystemSection && (\r\n \r\n )}\r\n
\r\n
\r\n\r\n {!isSystemSection && !item.genreId && (\r\n
\r\n
\r\n
\r\n }\r\n classNameExtend=\"c-dropdown--dark c-dropdown--base u-width--400--px\"\r\n />\r\n \r\n {selectedItemExists && (\r\n
\r\n {contentSelectStore.selectedItem.title} already selected.\r\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 ContentPanel = observer(function ContentPanel({ nakiMobileHomeSectionViewStore, t }) {\r\n const { item, deleteItem } = nakiMobileHomeSectionViewStore;\r\n\r\n if (item.items.length === 0) return null;\r\n\r\n return
{map(item.items, (item) => renderItem(item, deleteItem))}
;\r\n});\r\n\r\nfunction renderItem(item, onDelete) {\r\n if (!isNil(item.station)) {\r\n return onDelete(item.id)} />;\r\n } else if (!isNil(item.podcast)) {\r\n return onDelete(item.id)} />;\r\n } else if (!isNil(item.artist)) {\r\n return onDelete(item.id)} />;\r\n } else if (!isNil(item.album)) {\r\n return onDelete(item.id)} />;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction Station({ station, onDelete }) {\r\n const rootStore = useRootStore();\r\n let coverImageUrl;\r\n if (station.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createStationCoverImageUrl(station.coverImageId, 200, 200);\r\n }\r\n return (\r\n
\r\n \r\n \r\n

{station.title}

\r\n \r\n
\r\n );\r\n}\r\n\r\nfunction Podcast({ podcast, onDelete }) {\r\n const rootStore = useRootStore();\r\n let coverImageUrl;\r\n if (podcast.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createPodcastCoverImageUrl(podcast.coverImageId, 200, 200);\r\n }\r\n return (\r\n
\r\n \r\n \r\n

{podcast.title}

\r\n \r\n
\r\n );\r\n}\r\n\r\nfunction NakiNigunArtist({ artist, onDelete }) {\r\n const rootStore = useRootStore();\r\n let coverImageUrl;\r\n if (artist.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createNakiNigunArtistCoverImageUrl(artist.coverImageId, 200, 200);\r\n }\r\n return (\r\n
\r\n \r\n \r\n

{artist.name}

\r\n \r\n
\r\n );\r\n}\r\n\r\nfunction NakiNigunAlbum({ album, onDelete }) {\r\n const rootStore = useRootStore();\r\n let coverImageUrl;\r\n if (album.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(album.coverImageId, 200, 200);\r\n }\r\n return (\r\n
\r\n \r\n \r\n

{album.title}

\r\n \r\n
\r\n );\r\n}\r\n\r\nconst TitleInput = observer(function TitleInput({ item, onChange }) {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n});\r\n\r\nfunction OptionLabel({ item }) {\r\n let icon = null;\r\n if (!isNil(item.stationId)) {\r\n icon = \"stations\";\r\n } else if (!isNil(item.podcastId)) {\r\n icon = \"podcasts\";\r\n } else if (!isNil(item.artistId)) {\r\n icon = \"nigun\";\r\n } else if (!isNil(item.albumId)) {\r\n icon = \"nigun\";\r\n }\r\n return (\r\n \r\n \r\n {item.title}\r\n {item.isPremium && }\r\n \r\n );\r\n}\r\n\r\nNakiMobileHomeSectionTemplate.propTypes = {\r\n nakiMobileHomeSectionViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(NakiMobileHomeSectionTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbSelect } from \"mrb/components/select\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction AddGenreHomeSectionModalTemplate({ nakiMobileHomeSectionListViewStore, modalParams, t }) {\r\n return (\r\n \r\n

Select from list

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n {\r\n nakiMobileHomeSectionListViewStore.addGenreSection();\r\n }}\r\n />\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nAddGenreHomeSectionModalTemplate.propTypes = {\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(AddGenreHomeSectionModalTemplate);\r\n","import React from \"react\";\r\nimport { SectionListLoaderTemplate } from \"themes/administration/naki-mobile/components\";\r\n\r\nclass SectionListLoader extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default SectionListLoader;\r\n","import React from \"react\";\r\nimport { FeaturedSectionLoaderTemplate } from \"themes/administration/naki-mobile/components\";\r\n\r\nclass FeaturedSectionLoader extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default FeaturedSectionLoader;\r\n","import { action } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { MrbSelectStore } from \"mrb/components/select\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass EditFeaturedSectionContentViewStore extends MrbBaseViewStore {\r\n item = null;\r\n onUpdate = null;\r\n mobileAppSystemType = null;\r\n\r\n constructor(rootStore, { routeStore, mobileAppSystemType, item, onUpdate }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n this.mobileAppSystemType = mobileAppSystemType;\r\n this.item = item;\r\n this.onUpdate = onUpdate;\r\n\r\n this.contentSelectStore = new MrbSelectStore({\r\n isSearchable: true,\r\n textKey: \"title\",\r\n valueKey: \"id\",\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm, pageNumber, pageSize) => {\r\n return this.routeStore.getContent({\r\n systemType: this.mobileAppSystemType,\r\n search: searchTerm,\r\n pageNumber: pageNumber,\r\n pageSize: pageSize,\r\n });\r\n },\r\n mapItem: (item) => {\r\n return {\r\n label: item.title,\r\n value: item.stationId || item.podcastId || item.artistId || item.albumId,\r\n item: item,\r\n };\r\n },\r\n },\r\n });\r\n this.onSelectItem = this.onSelectItem.bind(this);\r\n }\r\n\r\n @action.bound\r\n onSelectItem() {\r\n const item = this.contentSelectStore.selectedItem;\r\n\r\n this.updateItem(item);\r\n this.contentSelectStore.clearOptions();\r\n this.contentSelectStore.clear();\r\n this.contentSelectStore.filter();\r\n }\r\n\r\n @action.bound\r\n updateItem(item) {\r\n this.item.stationId = null;\r\n this.item.station = null;\r\n this.item.podcastId = null;\r\n this.item.podcast = null;\r\n this.item.nakiNigunArtistId = null;\r\n this.item.artist = null;\r\n this.item.nakiNigunAlbumId = null;\r\n this.item.album = null;\r\n if (!isNil(item.stationId)) {\r\n this.item.stationId = item.stationId;\r\n this.item.station = {\r\n id: item.stationId,\r\n title: item.title,\r\n isPremium: item.isPremium,\r\n coverImageId: item.coverImageId,\r\n };\r\n } else if (!isNil(item.podcastId)) {\r\n this.item.podcastId = item.podcastId;\r\n this.item.podcast = {\r\n id: item.podcastId,\r\n title: item.title,\r\n isPremium: item.isPremium,\r\n coverImageId: item.coverImageId,\r\n podcastType: item.podcastType,\r\n };\r\n } else if (!isNil(item.artistId)) {\r\n this.item.nakiNigunArtistId = item.artistId;\r\n this.item.artist = {\r\n id: item.artistId,\r\n name: item.title,\r\n isPremium: item.isPremium,\r\n coverImageId: item.coverImageId,\r\n };\r\n } else if (!isNil(item.albumId)) {\r\n this.item.nakiNigunAlbumId = item.albumId;\r\n this.item.album = {\r\n id: item.albumId,\r\n title: item.title,\r\n isPremium: item.isPremium,\r\n coverImageId: item.coverImageId,\r\n };\r\n }\r\n\r\n this.onUpdate();\r\n }\r\n}\r\n\r\nexport default EditFeaturedSectionContentViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { AppHomeSectionService, MediaVaultStreamService, FeaturedSectionFileStreamService } from \"common/services\";\r\nimport moment from \"moment\";\r\n\r\nclass BaseFeaturedSectionRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(AppHomeSectionService);\r\n this.mediaVaultStreamService = new MediaVaultStreamService(\r\n this.rootStore.apiClient,\r\n this.rootStore.application.baasic\r\n );\r\n this.featuredSectionFileStreamService = this.rootStore.createApplicationService(\r\n FeaturedSectionFileStreamService\r\n );\r\n }\r\n\r\n async getFeaturedGrid(systemType) {\r\n const response = await this.service.getFeaturedGrid({\r\n embed: \"album,artist,station,podcast\",\r\n systemType: systemType,\r\n });\r\n return response.data;\r\n }\r\n\r\n async updateFeaturedGrid(systemType, resources) {\r\n const response = await this.service.updateFeaturedGrid(systemType, resources);\r\n return response.data;\r\n }\r\n\r\n async getContent(filter) {\r\n const response = await this.service.getContent(filter);\r\n return response.data;\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n return this.mediaVaultStreamService.mediaVaultModule.streams.routeDefinition.get(id);\r\n }\r\n\r\n async uploadImageFile(file) {\r\n const now = moment();\r\n const [name, extension] = file.name.split(\".\");\r\n const path = `${name}_${now.year()}-${now.month()}-${now.date()}-${now.hour()}-${now.minute()}-${now.second()}.${extension}`;\r\n const response = await this.mediaVaultStreamService.create(\r\n {\r\n path: path,\r\n fileName: file.name,\r\n },\r\n file\r\n );\r\n return response.data;\r\n }\r\n\r\n getFeaturedSectionCoverImageUrl(fileEntryId) {\r\n return this.featuredSectionFileStreamService.routeService.get(fileEntryId);\r\n }\r\n}\r\n\r\nexport default BaseFeaturedSectionRouteStore;\r\n","import BaseFeaturedSectionRouteStore from \"./BaseFeaturedSectionRouteStore\";\r\n\r\nclass NakiMobileFeaturedSectionRouteStore extends BaseFeaturedSectionRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n}\r\n\r\nexport default NakiMobileFeaturedSectionRouteStore;\r\n","function canExpandLeft(column) {\r\n return column > 0;\r\n}\r\n\r\nfunction canExpandRight(column, columnSpan, columnLimit) {\r\n return column + 1 + (columnSpan - 1) < columnLimit;\r\n}\r\n\r\nfunction canExpandBottom(row, rowSpan, rowLimit) {\r\n return row + 1 + (rowSpan - 1) < rowLimit;\r\n}\r\n\r\nfunction canExpandTop(row) {\r\n return row > 0;\r\n}\r\n\r\nfunction canCollapseLeft(columnSpan) {\r\n return columnSpan > 1;\r\n}\r\n\r\nfunction canCollapseRight(columnSpan) {\r\n return columnSpan > 1;\r\n}\r\n\r\nfunction canCollapseTop(rowSpan) {\r\n return rowSpan > 1;\r\n}\r\n\r\nfunction canCollapseBottom(rowSpan) {\r\n return rowSpan > 1;\r\n}\r\n\r\nexport {\r\n canExpandLeft,\r\n canExpandRight,\r\n canExpandBottom,\r\n canExpandTop,\r\n canCollapseTop,\r\n canCollapseLeft,\r\n canCollapseRight,\r\n canCollapseBottom,\r\n};\r\n","import { isNil } from \"lodash\";\r\n\r\nfunction isGridItemDefined(item) {\r\n return (\r\n !isNil(item.stationId) ||\r\n !isNil(item.podcastId) ||\r\n !isNil(item.nakiNigunAlbumId) ||\r\n !isNil(item.nakiNigunArtistId)\r\n );\r\n}\r\n\r\nexport default isGridItemDefined;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport {\r\n canExpandLeft,\r\n canExpandRight,\r\n canExpandTop,\r\n canExpandBottom,\r\n canCollapseTop,\r\n canCollapseLeft,\r\n canCollapseRight,\r\n canCollapseBottom,\r\n} from \"administration/naki-mobile/utils\";\r\nimport { findIndex, filter } from \"lodash\";\r\n\r\nclass BaseFeaturedSectionViewStore extends MrbBaseViewStore {\r\n rowsLimit = 3;\r\n columnsLimit = 3;\r\n\r\n @observable items = [];\r\n\r\n @observable isSubmitting = false;\r\n\r\n mobileAppSystemType = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.editItem = this.editItem.bind(this);\r\n }\r\n\r\n onInit() {\r\n return this.getFeaturedGrid();\r\n }\r\n\r\n @action.bound\r\n async getFeaturedGrid() {\r\n try {\r\n const grid = await this.routeStore.getFeaturedGrid(this.mobileAppSystemType);\r\n const mockGrid = [];\r\n for (let row = 1; row <= this.rowsLimit; row++) {\r\n for (let column = 1; column <= this.columnsLimit; column++) {\r\n mockGrid.push({\r\n stationId: null,\r\n podcastId: null,\r\n nakiNigunAlbumId: null,\r\n NakiNigunArtistId: null,\r\n gridRow: row,\r\n gridColumn: column,\r\n gridRowSpan: 1,\r\n gridColumnSpan: 1,\r\n });\r\n }\r\n }\r\n //this.setGrid(mockGrid);\r\n\r\n this.setGrid(grid);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load featured section data. Please contact the support team.\"\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n setIsSubmitting(value) {\r\n this.isSubmitting = value;\r\n }\r\n\r\n @action.bound\r\n async updateFeaturedGrid() {\r\n try {\r\n this.setIsSubmitting(true);\r\n await this.routeStore.updateFeaturedGrid(this.mobileAppSystemType, this.items);\r\n\r\n const grid = await this.routeStore.getFeaturedGrid(this.mobileAppSystemType);\r\n this.setGrid(grid);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to update featured section. Please contact the support team.\"\r\n );\r\n } finally {\r\n this.setIsSubmitting(false);\r\n }\r\n }\r\n\r\n @action.bound\r\n setGrid(items) {\r\n this.items = items;\r\n }\r\n\r\n gridConflict(rowNum, columnNum) {\r\n const index = findIndex(\r\n this.items,\r\n (item) =>\r\n rowNum >= item.gridRow &&\r\n rowNum <= item.gridRow + (item.gridRowSpan - 1) &&\r\n columnNum >= item.gridColumn &&\r\n columnNum <= item.gridColumn + (item.gridColumnSpan - 1)\r\n );\r\n return index !== -1;\r\n }\r\n\r\n editItem(item) {\r\n this.editItemModalParams.open({\r\n item: item,\r\n });\r\n }\r\n\r\n @action.bound\r\n removeGridElementsInConflict(newGridElement) {\r\n const itemsWithoutConflict = filter(\r\n this.items,\r\n (item) =>\r\n !(\r\n newGridElement.gridColumn <= item.gridColumn + (item.gridColumnSpan - 1) &&\r\n newGridElement.gridColumn + (newGridElement.gridColumnSpan - 1) >= item.gridColumn &&\r\n newGridElement.gridRow <= item.gridRow + (item.gridRowSpan - 1) &&\r\n newGridElement.gridRow + (newGridElement.gridRowSpan - 1) >= item.gridRow\r\n )\r\n );\r\n\r\n this.items = itemsWithoutConflict;\r\n }\r\n\r\n @action.bound\r\n ensureGridStructure() {\r\n for (let row = 0; row < this.rowsLimit; row++) {\r\n for (let column = 0; column < this.columnsLimit; column++) {\r\n const index = findIndex(\r\n this.items,\r\n (item) =>\r\n row >= item.gridRow &&\r\n row <= item.gridRow + (item.gridRowSpan - 1) &&\r\n column >= item.gridColumn &&\r\n column <= item.gridColumn + (item.gridColumnSpan - 1)\r\n );\r\n if (index === -1) {\r\n // Item exists\r\n this.items.push({\r\n gridRow: row,\r\n gridColumn: column,\r\n gridRowSpan: 1,\r\n gridColumnSpan: 1,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n expandToLeft(item) {\r\n if (!canExpandLeft(item.gridColumn)) {\r\n // Expand not supported\r\n return;\r\n }\r\n\r\n const newGridElement = { ...item };\r\n\r\n // Push item to left and increase column span\r\n --newGridElement.gridColumn;\r\n newGridElement.gridColumnSpan++;\r\n\r\n //TODO: Find all items that should be moved\r\n this.removeGridElementsInConflict(newGridElement);\r\n this.items.push(newGridElement);\r\n this.ensureGridStructure();\r\n }\r\n\r\n @action.bound\r\n collapseLeft(item) {\r\n if (!canCollapseLeft(item.gridColumnSpan)) {\r\n // Collapse not supported\r\n return;\r\n }\r\n\r\n const newGridElement = { ...item };\r\n // Increase column span\r\n newGridElement.gridColumnSpan--;\r\n newGridElement.gridColumn++;\r\n\r\n //TODO: Find all items that should be moved\r\n this.removeGridElementsInConflict(newGridElement);\r\n this.items.push(newGridElement);\r\n this.ensureGridStructure();\r\n }\r\n\r\n @action.bound\r\n expandToRight(item) {\r\n if (!canExpandRight(item.gridColumn, item.gridColumnSpan, this.columnsLimit)) {\r\n // Expand not supported\r\n return;\r\n }\r\n\r\n const newGridElement = { ...item };\r\n\r\n // Increase column span\r\n newGridElement.gridColumnSpan++;\r\n\r\n this.removeGridElementsInConflict(newGridElement);\r\n this.items.push(newGridElement);\r\n this.ensureGridStructure();\r\n }\r\n\r\n @action.bound\r\n collapseRight(item) {\r\n if (!canCollapseRight(item.gridColumnSpan)) {\r\n // Collapse not supported\r\n return;\r\n }\r\n\r\n const newGridElement = { ...item };\r\n // Increase column span\r\n newGridElement.gridColumnSpan--;\r\n\r\n //TODO: Find all items that should be moved\r\n this.removeGridElementsInConflict(newGridElement);\r\n this.items.push(newGridElement);\r\n this.ensureGridStructure();\r\n }\r\n\r\n @action.bound\r\n expandToTop(item) {\r\n if (!canExpandTop(item.gridRow)) {\r\n // Expand not supported\r\n return;\r\n }\r\n\r\n const newGridElement = { ...item };\r\n\r\n // Push item to top and increase row span\r\n --newGridElement.gridRow;\r\n newGridElement.gridRowSpan++;\r\n\r\n this.removeGridElementsInConflict(newGridElement);\r\n this.items.push(newGridElement);\r\n this.ensureGridStructure();\r\n }\r\n\r\n @action.bound\r\n collapseTop(item) {\r\n if (!canCollapseTop(item.gridRowSpan)) {\r\n // Collapse not supported\r\n return;\r\n }\r\n\r\n const newGridElement = { ...item };\r\n // Increase column span\r\n newGridElement.gridRow++;\r\n newGridElement.gridRowSpan--;\r\n\r\n //TODO: Find all items that should be moved\r\n this.removeGridElementsInConflict(newGridElement);\r\n this.items.push(newGridElement);\r\n this.ensureGridStructure();\r\n }\r\n\r\n @action.bound\r\n expandToBottom(item) {\r\n if (!canExpandBottom(item.gridRow, item.gridRowSpan, this.rowsLimit)) {\r\n // Expand not supported\r\n return;\r\n }\r\n\r\n const newGridElement = { ...item };\r\n\r\n // Increase row span\r\n newGridElement.gridRowSpan++;\r\n\r\n this.removeGridElementsInConflict(newGridElement);\r\n this.items.push(newGridElement);\r\n this.ensureGridStructure();\r\n }\r\n\r\n @action.bound\r\n collapseBottom(item) {\r\n if (!canCollapseBottom(item.gridRowSpan)) {\r\n // Collapse not supported\r\n return;\r\n }\r\n\r\n const newGridElement = { ...item };\r\n // Increase column span\r\n newGridElement.gridRowSpan--;\r\n\r\n //TODO: Find all items that should be moved\r\n this.removeGridElementsInConflict(newGridElement);\r\n this.items.push(newGridElement);\r\n this.ensureGridStructure();\r\n }\r\n\r\n @action.bound\r\n clearSelection(item) {\r\n item.stationId = null;\r\n item.station = null;\r\n item.podcastId = null;\r\n item.podcast = null;\r\n item.nakiNigunArtistId = null;\r\n item.nakiNigunArtist = null;\r\n item.nakiNigunAlbumId = null;\r\n item.nakiNigunAlbum = null;\r\n }\r\n}\r\n\r\nexport default BaseFeaturedSectionViewStore;\r\n","import { makeObservable } from \"mobx\";\r\nimport { nakiRadioSystemTypes } from \"common/constants\";\r\nimport BaseFeaturedSectionViewStore from \"./BaseFeaturedSectionViewStore\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\n\r\nclass NakiMobileFeaturedSectionViewStore extends BaseFeaturedSectionViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, { routeStore });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.mobileAppSystemType = nakiRadioSystemTypes.mobile;\r\n\r\n this.editItemModalParams = new MrbModalParams(\r\n {},\r\n {\r\n routeStore: this.routeStore,\r\n mobileAppSystemType: this.mobileAppSystemType,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default NakiMobileFeaturedSectionViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { action, computed, makeObservable } from \"mobx\";\r\nimport { MrbSelectStore } from \"mrb/components/select\";\r\nimport { UUID } from \"common/utils\";\r\nimport { find, findIndex, isNil, isEmpty, filter } from \"lodash\";\r\n\r\nclass NakiMobileHomeSectionViewStore extends MrbBaseViewStore {\r\n @computed get item() {\r\n return find(this.nakiMobileHomeSectionListViewStore.sections, (section) => section.id === this.id);\r\n }\r\n\r\n @computed get isAddContentButtonDisabled() {\r\n return isNil(this.contentSelectStore.selectedItem) || !this.item.isActive || this.selectedItemExists;\r\n }\r\n\r\n @computed get isSystemSection() {\r\n return !isEmpty(this.item.systemSectionIdentifier);\r\n }\r\n\r\n @computed get selectedItemExists() {\r\n const selectedItem = this.contentSelectStore.selectedItem;\r\n if (!selectedItem) {\r\n return false;\r\n }\r\n\r\n return (\r\n findIndex(\r\n this.item.items,\r\n (x) =>\r\n /* eslint-disable eqeqeq */\r\n x.stationId == selectedItem.stationId &&\r\n x.podcastId == selectedItem.podcastId &&\r\n x.nakiNigunArtistId == selectedItem.artistId &&\r\n x.nakiNigunAlbumId == selectedItem.albumId\r\n ) !== -1\r\n );\r\n }\r\n\r\n constructor(rootStore, { nakiMobileHomeSectionListViewStore, id }) {\r\n super(rootStore);\r\n this.nakiMobileHomeSectionListViewStore = nakiMobileHomeSectionListViewStore;\r\n this.routeStore = this.nakiMobileHomeSectionListViewStore.routeStore;\r\n this.id = id;\r\n makeObservable(this);\r\n\r\n this.contentSelectStore = new MrbSelectStore({\r\n isSearchable: true,\r\n textKey: \"title\",\r\n valueKey: \"id\",\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm, pageNumber, pageSize) => {\r\n return this.routeStore.getContent({\r\n search: searchTerm,\r\n pageNumber: pageNumber,\r\n pageSize: pageSize,\r\n });\r\n },\r\n mapItem: (item) => {\r\n return {\r\n label: item.title,\r\n value: item.stationId || item.podcastId || item.artistId || item.albumId,\r\n item: item,\r\n };\r\n },\r\n },\r\n });\r\n }\r\n\r\n @action.bound\r\n setIsActive(value) {\r\n this.nakiMobileHomeSectionListViewStore.toggleIsActive(this.id, value);\r\n }\r\n\r\n @action.bound\r\n onTitleChange(event) {\r\n this.item.title = event.target.value;\r\n }\r\n\r\n addItem(item) {\r\n this.item.items.push(item);\r\n }\r\n\r\n @action.bound\r\n onSelectItem() {\r\n const item = this.contentSelectStore.selectedItem;\r\n const obj = {\r\n id: UUID.create(),\r\n sortOrder: this.item.items.length,\r\n };\r\n if (!isNil(item.stationId)) {\r\n obj.stationId = item.stationId;\r\n obj.station = {\r\n id: item.stationId,\r\n title: item.title,\r\n isPremium: item.isPremium,\r\n coverImageId: item.coverImageId,\r\n };\r\n } else if (!isNil(item.podcastId)) {\r\n obj.podcastId = item.podcastId;\r\n obj.podcast = {\r\n id: item.podcastId,\r\n title: item.title,\r\n isPremium: item.isPremium,\r\n coverImageId: item.coverImageId,\r\n podcastType: item.podcastType,\r\n };\r\n } else if (!isNil(item.artistId)) {\r\n obj.nakiNigunArtistId = item.artistId;\r\n obj.artist = {\r\n id: item.artistId,\r\n name: item.title,\r\n isPremium: item.isPremium,\r\n coverImageId: item.coverImageId,\r\n };\r\n } else if (!isNil(item.albumId)) {\r\n obj.nakiNigunAlbumId = item.albumId;\r\n obj.album = {\r\n id: item.albumId,\r\n title: item.title,\r\n isPremium: item.isPremium,\r\n coverImageId: item.coverImageId,\r\n };\r\n }\r\n if (this.itemExists(obj)) {\r\n return;\r\n }\r\n this.addItem(obj);\r\n this.contentSelectStore.clearOptions();\r\n this.contentSelectStore.clear();\r\n this.contentSelectStore.filter();\r\n }\r\n\r\n itemExists(item) {\r\n if (!item) {\r\n return false;\r\n }\r\n return (\r\n findIndex(\r\n this.item.items,\r\n (x) =>\r\n /* eslint-disable eqeqeq */\r\n x.stationId == item.stationId &&\r\n x.podcastId == item.podcastId &&\r\n x.nakiNigunArtistId == item.nakiNigunArtistId &&\r\n x.nakiNigunAlbumId == item.nakiNigunAlbumId\r\n ) !== -1\r\n );\r\n }\r\n\r\n @action.bound\r\n deleteSection() {\r\n this.nakiMobileHomeSectionListViewStore.deleteSection(this.id);\r\n }\r\n\r\n @action.bound\r\n deleteItem(id) {\r\n this.item.items = filter(this.item.items, (item) => item.id !== id);\r\n }\r\n\r\n @action.bound\r\n goToGenreContent() {\r\n this.rootStore.routerStore.goTo(\"master.administration.genre.content\", {\r\n id: this.item.genreId,\r\n });\r\n }\r\n}\r\n\r\nexport default NakiMobileHomeSectionViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { AppHomeSectionService, GenreLookupService } from \"common/services\";\r\n\r\nclass NakiMobileHomeSectionListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(AppHomeSectionService);\r\n this.genreLookupService = this.rootStore.createApplicationService(GenreLookupService);\r\n }\r\n\r\n async getAll() {\r\n const response = await this.service.getAll({\r\n embed: \"items,items.album,items.artist,items.station,items.podcast\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async update(resources) {\r\n const response = await this.service.update(resources);\r\n return response.data;\r\n }\r\n\r\n async getContent(filter) {\r\n const response = await this.service.getContent(filter);\r\n return response.data;\r\n }\r\n\r\n async findGenres(searchPhrase) {\r\n const response = await this.genreLookupService.find(searchPhrase);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiMobileHomeSectionListRouteStore;\r\n","import { action, computed, makeObservable, observable, toJS } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { UUID } from \"common/utils\";\r\nimport { findIndex, filter, forEach } from \"lodash\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { MrbSelectStore } from \"mrb/components/select\";\r\nimport { find, isNil } from \"lodash\";\r\n\r\nclass NakiMobileHomeSectionListViewStore extends MrbBaseViewStore {\r\n sectionsLimit = 20;\r\n\r\n @observable sections = [];\r\n @observable isSubmitting = false;\r\n\r\n @computed get sectionsLimitReached() {\r\n return this.sections.length >= this.sectionsLimit;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n makeObservable(this);\r\n this.addGenreHomeSectionModalParams = new MrbModalParams();\r\n\r\n this.genreSelectStore = new MrbSelectStore({\r\n isSearchable: true,\r\n virtualized: false,\r\n initFetch: false,\r\n isOptionDisabled: (option) => {\r\n let genreSectionAlreadyExists = find(this.sections, (section) => section.genreId === option.item.id);\r\n return !isNil(genreSectionAlreadyExists);\r\n },\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findGenres({\r\n search: searchTerm,\r\n });\r\n },\r\n },\r\n });\r\n }\r\n\r\n onInit() {\r\n return this.fetchResources();\r\n }\r\n\r\n async fetchResources() {\r\n try {\r\n const items = await this.get();\r\n this.setSections(items);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load home screen sections. Please contact the support team.\"\r\n );\r\n }\r\n }\r\n\r\n get() {\r\n return this.routeStore.getAll();\r\n }\r\n\r\n @action.bound\r\n async onClickSave() {\r\n try {\r\n this.setIsSubmitting(true);\r\n forEach(this.sections, (section, index) => {\r\n section.sortOrder = index;\r\n if (section.items && section.items.length > 0) {\r\n forEach(section.items, (item, itemIndex) => {\r\n item.sortOrder = itemIndex;\r\n });\r\n }\r\n });\r\n await this.routeStore.update(this.sections);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to update home screen sections. Please contact the support team.\"\r\n );\r\n } finally {\r\n this.setIsSubmitting(false);\r\n }\r\n }\r\n\r\n @action.bound\r\n addSection() {\r\n const section = {\r\n id: UUID.create(),\r\n title: \"New Section\",\r\n isSystem: false,\r\n isActive: true,\r\n items: [],\r\n sortOrder: this.sections.length,\r\n };\r\n this.sections.push(section);\r\n }\r\n\r\n @action.bound\r\n addGenreSection() {\r\n const genreItem = this.genreSelectStore.selectedItem;\r\n const section = {\r\n id: UUID.create(),\r\n title: genreItem.name,\r\n genreId: genreItem.id,\r\n isSystem: false,\r\n isActive: true,\r\n items: [],\r\n sortOrder: this.sections.length,\r\n };\r\n\r\n this.sections.push(section);\r\n this.genreSelectStore.clear();\r\n this.addGenreHomeSectionModalParams.close();\r\n }\r\n\r\n @action.bound\r\n openAddGenreHomeSectionModal() {\r\n this.addGenreHomeSectionModalParams.open();\r\n }\r\n\r\n @action.bound\r\n setSections(items) {\r\n this.sections = items;\r\n }\r\n\r\n @action.bound\r\n setIsSubmitting(value) {\r\n this.isSubmitting = value;\r\n }\r\n\r\n @action.bound\r\n reorderSections(result) {\r\n const { destination, source } = result;\r\n if (!destination) {\r\n return;\r\n }\r\n\r\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\r\n return;\r\n }\r\n\r\n const newSections = Array.from(toJS(this.sections));\r\n const section = newSections.splice(source.index, 1)[0];\r\n newSections.splice(destination.index, 0, section);\r\n\r\n this.setSections(newSections);\r\n }\r\n\r\n toggleIsActive(id, value) {\r\n const index = findIndex(this.sections, (section) => section.id === id);\r\n if (index >= 0) {\r\n if (this.sections[index]) {\r\n this.sections[index].isActive = value;\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n deleteSection(sectionId) {\r\n this.sections = filter(this.sections, (section) => section.id !== sectionId);\r\n }\r\n}\r\n\r\nexport default NakiMobileHomeSectionListViewStore;\r\n","import { BaseCoverImageUploadViewStore } from \"common/stores\";\r\nimport { forEach } from \"lodash\";\r\n\r\nclass NakiMobileFeaturedSectionCoverImageUploadViewStore extends BaseCoverImageUploadViewStore {\r\n errorsMap = {\r\n \"file-invalid-type\": () => {\r\n return \"File type must be .jpg, .png or .gif\";\r\n },\r\n \"file-too-large\": () => {\r\n return \"File is larger than 20MB\";\r\n },\r\n };\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n onFileRejected: (uploadResults) => {\r\n console.log(uploadResults);\r\n if (uploadResults && uploadResults.length > 0) {\r\n forEach(uploadResults[0].errors, (error) => {\r\n rootStore.notificationStore.error(this.errorsMap[error.code]);\r\n });\r\n }\r\n },\r\n });\r\n this.routeStore = routeStore;\r\n }\r\n\r\n uploadImageToMediaVault(file) {\r\n return this.routeStore.uploadImageFile(file);\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n return this.routeStore.getMediaVaultFileUrl(id);\r\n }\r\n}\r\n\r\nexport default NakiMobileFeaturedSectionCoverImageUploadViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { NakiMobileFeaturedSectionCoverImageUploadViewStore } from \"administration/naki-mobile/stores\";\r\n\r\nclass FeaturedSectionItemViewStore extends MrbBaseViewStore {\r\n constructor(rootStore, { item, routeStore }) {\r\n super(rootStore);\r\n this.item = item;\r\n this.routeStore = routeStore;\r\n\r\n this.coverImageUploadViewStore = new NakiMobileFeaturedSectionCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n });\r\n\r\n this.reaction(\r\n () => this.coverImageUploadViewStore.uploadedFileId,\r\n (fileId) => {\r\n this.item.fileEntryId = fileId;\r\n }\r\n );\r\n\r\n this.uploadImage = this.uploadImage.bind(this);\r\n this.revertToDefaultArtwork = this.revertToDefaultArtwork.bind(this);\r\n }\r\n\r\n async onInit() {\r\n if (this.item.fileEntryId) {\r\n this.coverImageUploadViewStore.setImageUrl(\r\n this.routeStore.getFeaturedSectionCoverImageUrl(this.item.fileEntryId)\r\n );\r\n }\r\n }\r\n\r\n uploadImage(event) {\r\n this.coverImageUploadViewStore.uploadImage(event);\r\n }\r\n\r\n revertToDefaultArtwork(item) {\r\n this.coverImageUploadViewStore.setImageUrl(null);\r\n this.coverImageUploadViewStore.changeUploadedFileId(null);\r\n this.coverImageUploadViewStore.fileUploadStore.clear();\r\n if (item != null) {\r\n item.fileEntryId = null;\r\n }\r\n }\r\n}\r\n\r\nexport default FeaturedSectionItemViewStore;\r\n","import { makeObservable } from \"mobx\";\r\nimport { nakiRadioSystemTypes } from \"common/constants\";\r\nimport BaseFeaturedSectionViewStore from \"./BaseFeaturedSectionViewStore\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\n\r\nclass NakiMobileEmbeddedFeaturedSectionViewStore extends BaseFeaturedSectionViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, { routeStore });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.mobileAppSystemType = nakiRadioSystemTypes.mobile_embedded;\r\n\r\n this.editItemModalParams = new MrbModalParams(\r\n {},\r\n {\r\n routeStore: this.routeStore,\r\n mobileAppSystemType: this.mobileAppSystemType,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default NakiMobileEmbeddedFeaturedSectionViewStore;\r\n","import { BaseFeaturedSectionRouteStore } from \"administration/naki-mobile/stores\";\r\n\r\nclass NakiMobileEmbeddedFeaturedSectionRouteStore extends BaseFeaturedSectionRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n}\r\n\r\nexport default NakiMobileEmbeddedFeaturedSectionRouteStore;\r\n","import { action, makeObservable, observable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { find } from \"lodash\";\r\n\r\nclass FeaturedSectionViewStore extends MrbBaseViewStore {\r\n @observable selectedTab = { value: 1, title: \"mobile\" };\r\n\r\n tabs = [\r\n { value: 1, title: \"mobile\" },\r\n { value: 2, title: \"mobile_embedded\" },\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.administration.naki-mobile.featured-section.mobile\") {\r\n this.setSelectedTab(1);\r\n } else if (currentRoute.name === \"master.administration.naki-mobile.featured-section.mobile-embedded\") {\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 (\r\n this.selectedTab.value === 2 &&\r\n currentRoute.name === \"master.administration.naki-mobile.featured-section.mobile\"\r\n ) {\r\n this.setSelectedTab(1);\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 FeaturedSectionViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\n\r\nclass FeaturedSectionRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n}\r\n\r\nexport default FeaturedSectionRouteStore;\r\n","import React from \"react\";\r\nimport { EditFeaturedSectionContentTemplate } from \"themes/administration/naki-mobile/components\";\r\nimport { EditFeaturedSectionContentViewStore } from \"administration/naki-mobile/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new EditFeaturedSectionContentViewStore(rootStore, componentProps),\r\n \"editFeaturedSectionContentViewStore\"\r\n)\r\nclass EditFeaturedSectionContent extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default EditFeaturedSectionContent;\r\n","import React from \"react\";\r\nimport { EditFeaturedSectionContentModalTemplate } from \"themes/administration/naki-mobile/components\";\r\n\r\nfunction EditFeaturedSectionContentModal(props) {\r\n return ;\r\n}\r\n\r\nexport default EditFeaturedSectionContentModal;\r\n","import React from \"react\";\r\nimport { NakiMobileHomeSectionTemplate } from \"themes/administration/naki-mobile/components\";\r\nimport { NakiMobileHomeSectionViewStore } from \"administration/naki-mobile/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiMobileHomeSectionViewStore(rootStore, componentProps),\r\n \"nakiMobileHomeSectionViewStore\"\r\n)\r\nclass NakiMobileHomeSection extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiMobileHomeSection;\r\n","import React from \"react\";\r\nimport { AddGenreHomeSectionModalTemplate } from \"themes/administration/naki-mobile/components\";\r\n\r\nfunction AddGenreHomeSectionModal(props) {\r\n return ;\r\n}\r\n\r\nexport default AddGenreHomeSectionModal;\r\n","import React, { useState, useEffect, useMemo } from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { EditFeaturedSectionContentModal, FeaturedSectionLoader } from \"administration/naki-mobile/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { FeaturedSectionItemViewStore } from \"administration/naki-mobile/stores\";\r\nimport { UploadedImageLoader } from \"common/components\";\r\nimport { Image } from \"common/components\";\r\nimport { MrbFileUpload } from \"mrb/components/media\";\r\nimport {\r\n canExpandLeft,\r\n canExpandRight,\r\n canExpandTop,\r\n canExpandBottom,\r\n isGridItemDefined,\r\n canCollapseTop,\r\n canCollapseLeft,\r\n canCollapseRight,\r\n canCollapseBottom,\r\n} from \"administration/naki-mobile/utils\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map, isNil } from \"lodash\";\r\n\r\nfunction NakiMobileFeaturedSectionTemplate({ nakiMobileFeaturedSectionViewStore, t }) {\r\n const { editItemModalParams, loaderStore } = nakiMobileFeaturedSectionViewStore;\r\n\r\n return (\r\n \r\n \r\n
Featured Section
\r\n \r\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 Actions = observer(function Actions({ store, t }) {\r\n const { updateFeaturedGrid, isSubmitting } = store;\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nconst Grid = observer(function Grid({ viewStore }) {\r\n const {\r\n items,\r\n rowsLimit,\r\n columnsLimit,\r\n editItem,\r\n expandToLeft,\r\n expandToRight,\r\n expandToTop,\r\n expandToBottom,\r\n collapseLeft,\r\n collapseRight,\r\n collapseTop,\r\n collapseBottom,\r\n clearSelection,\r\n loaderStore,\r\n rootStore,\r\n routeStore,\r\n } = viewStore;\r\n\r\n const grid = map(items, (item) => (\r\n \r\n ));\r\n\r\n return (\r\n }>\r\n {() =>
{grid}
}\r\n
\r\n );\r\n});\r\n\r\nconst GridItem = observer(function GridItem({\r\n item,\r\n editItem,\r\n clearSelection,\r\n expandToLeft,\r\n expandToRight,\r\n expandToTop,\r\n expandToBottom,\r\n collapseLeft,\r\n collapseRight,\r\n collapseTop,\r\n collapseBottom,\r\n rowsLimit,\r\n columnsLimit,\r\n routeStore,\r\n rootStore,\r\n}) {\r\n const [isHovering, setIsHovering] = useState(false);\r\n\r\n const expandDownButton = canExpandBottom(item.gridRow, item.gridRowSpan, rowsLimit);\r\n const expandTopButton = canExpandTop(item.gridRow);\r\n const expandLeftButton = canExpandLeft(item.gridColumn);\r\n const expandRightButton = canExpandRight(item.gridColumn, item.gridColumnSpan, columnsLimit);\r\n\r\n const collapseTopButton = canCollapseTop(item.gridRowSpan);\r\n const collapseLeftButton = canCollapseLeft(item.gridColumnSpan);\r\n const collapseRightButton = canCollapseRight(item.gridColumnSpan);\r\n const collapseBottomButton = canCollapseBottom(item.gridRowSpan);\r\n\r\n const gridArea = createGridAreaDefinition(item.gridRow, item.gridColumn, item.gridRowSpan, item.gridColumnSpan);\r\n\r\n return (\r\n setIsHovering(true)}\r\n onMouseLeave={() => setIsHovering(false)}\r\n style={{\r\n gridArea: gridArea,\r\n }}\r\n >\r\n {isGridItemDefined(item) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {/* Use for debug */}\r\n {/*
\r\n Row: {item.gridRow}\r\n Col: {item.gridColumn}\r\n RowSpan: {item.gridRowSpan}\r\n ColSpan: {item.gridColumnSpan}\r\n
*/}\r\n\r\n {isHovering && (\r\n \r\n
\r\n {expandLeftButton ? (\r\n expandToLeft(item)}\r\n />\r\n ) : null}\r\n {collapseLeftButton ? (\r\n collapseLeft(item)}\r\n />\r\n ) : null}\r\n
\r\n\r\n
\r\n {collapseTopButton ? (\r\n collapseTop(item)}\r\n />\r\n ) : null}\r\n {expandTopButton ? (\r\n expandToTop(item)}\r\n />\r\n ) : null}\r\n
\r\n\r\n
\r\n {collapseRightButton ? (\r\n collapseRight(item)}\r\n />\r\n ) : null}\r\n {expandRightButton ? (\r\n expandToRight(item)}\r\n />\r\n ) : null}\r\n
\r\n\r\n
\r\n {expandDownButton ? (\r\n expandToBottom(item)}\r\n />\r\n ) : null}\r\n {collapseBottomButton ? (\r\n collapseBottom(item)}\r\n />\r\n ) : null}\r\n
\r\n
\r\n )}\r\n \r\n );\r\n});\r\n\r\nfunction DefaultItem({ item, edit }) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n edit(item)} />\r\n
\r\n );\r\n}\r\n\r\nconst DefinedItem = observer(function DefinedItem({ item, edit, gridArea, clearSelection, rootStore, routeStore }) {\r\n const store = useMemo(\r\n () => new FeaturedSectionItemViewStore(rootStore, { item, routeStore }),\r\n [item, rootStore, routeStore]\r\n );\r\n\r\n useEffect(() => {\r\n store.initialize();\r\n }, [store]);\r\n\r\n const gridStart = gridArea.split(\" / \")[0];\r\n const gridEnd = gridArea.split(\" / \")[2];\r\n let imgSize = \"\";\r\n\r\n if (gridEnd - gridStart === 1) {\r\n imgSize = \"sml\";\r\n } else if (gridEnd - gridStart === 2) {\r\n imgSize = \"med\";\r\n } else {\r\n imgSize = \"lrg\";\r\n }\r\n const width = item.gridColumnSpan * 200;\r\n const height = item.gridRowSpan * 200;\r\n\r\n let coverImageUrl = null;\r\n if (item.fileEntryId) {\r\n coverImageUrl = rootStore.coverImageFactory.createFeaturedSectionCoverImageUrl(item.fileEntryId, width, height);\r\n } else if (item.station && item.station.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createStationCoverImageUrl(\r\n item.station.coverImageId,\r\n width,\r\n height\r\n );\r\n } else if (item.podcast && item.podcast.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createPodcastCoverImageUrl(\r\n item.podcast.coverImageId,\r\n width,\r\n height\r\n );\r\n } else if (item.artist && item.artist.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createNakiNigunArtistCoverImageUrl(\r\n item.artist.coverImageId,\r\n width,\r\n height\r\n );\r\n } else if (item.album && item.album.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(\r\n item.album.coverImageId,\r\n width,\r\n height\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {(item.fileEntryId || store.coverImageUploadViewStore.file) && (\r\n store.revertToDefaultArtwork(item)}\r\n classNameOverride=\"c-btn c-btn--sml c-btn--outline u-mar--left--tny\"\r\n icon=\"u-cursor--pointer u-icon u-icon--base u-icon--close u-mar--right--tny\"\r\n />\r\n )}\r\n
\r\n }\r\n >\r\n {() => (\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n edit(item)} />\r\n {\r\n store.revertToDefaultArtwork();\r\n clearSelection(item);\r\n }}\r\n />\r\n
\r\n
\r\n );\r\n});\r\n\r\nfunction ContentLabel({ item }) {\r\n let icon = null;\r\n let title = null;\r\n let isPremium = false;\r\n\r\n if (!isNil(item.stationId)) {\r\n icon = \"stations\";\r\n title = item.station.title;\r\n isPremium = item.station.isPremium;\r\n } else if (!isNil(item.podcastId)) {\r\n icon = \"podcasts\";\r\n title = item.podcast.title;\r\n isPremium = item.podcast.isPremium;\r\n } else if (!isNil(item.nakiNigunArtistId)) {\r\n icon = \"nigun\";\r\n title = item.artist.name;\r\n isPremium = item.artist.isPremium;\r\n } else if (!isNil(item.nakiNigunAlbumId)) {\r\n icon = \"nigun\";\r\n title = item.album.title;\r\n isPremium = item.album.isPremium;\r\n }\r\n\r\n return (\r\n

\r\n \r\n {title}\r\n {isPremium && }\r\n

\r\n );\r\n}\r\n\r\nfunction createGridAreaDefinition(row, column, rowSpan = 1, columnSpan = 1) {\r\n return `${row + 1} / ${column + 1} / ${row + 1 + rowSpan} / ${column + 1 + columnSpan}`;\r\n}\r\n\r\nNakiMobileFeaturedSectionTemplate.propTypes = {\r\n nakiMobileFeaturedSectionViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(NakiMobileFeaturedSectionTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { DragDropList } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { NakiMobileHomeSection } from \"administration/naki-mobile/components\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { SectionListLoader, AddGenreHomeSectionModal } from \"administration/naki-mobile/components\";\r\nimport { Popover } from \"common/components\";\r\n\r\nfunction NakiMobileHomeSectionListTemplate({ nakiMobileHomeSectionListViewStore, t }) {\r\n return (\r\n \r\n \r\n
Home Screen Sections
\r\n \r\n
\r\n\r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nconst SectionList = observer(function SectionList({ nakiMobileHomeSectionListViewStore, t }) {\r\n const { sections, reorderSections, loaderStore } = nakiMobileHomeSectionListViewStore;\r\n return (\r\n
\r\n }>\r\n {() => (\r\n \r\n {sections.length > 0 && (\r\n
\r\n (\r\n \r\n )}\r\n >\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n});\r\n\r\nconst Actions = observer(function Actions({ store, t }) {\r\n const { onClickSave, isSubmitting } = store;\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nconst PanelHeader = observer(function PanelHeader({ nakiMobileHomeSectionListViewStore }) {\r\n const {\r\n addSection,\r\n openAddGenreHomeSectionModal,\r\n sections,\r\n isSubmitting,\r\n sectionsLimit,\r\n sectionsLimitReached,\r\n addGenreHomeSectionModalParams,\r\n } = nakiMobileHomeSectionListViewStore;\r\n const label = `Add Section (${sections.length}/${sectionsLimit})`;\r\n return (\r\n
\r\n \r\n }\r\n contentList={[\r\n {\r\n title: \"Add custom section\",\r\n action: addSection,\r\n isDisabled: isSubmitting || sectionsLimitReached,\r\n },\r\n {\r\n title: \"Add genre section\",\r\n action: openAddGenreHomeSectionModal,\r\n isDisabled: isSubmitting || sectionsLimitReached,\r\n },\r\n ]}\r\n />\r\n \r\n {sectionsLimitReached && (\r\n
\r\n Maximum number of home screen sections reached.\r\n
\r\n )}\r\n
\r\n );\r\n});\r\n\r\nNakiMobileHomeSectionListTemplate.propTypes = {\r\n nakiMobileHomeSectionListViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(NakiMobileHomeSectionListTemplate);\r\n","import React from \"react\";\r\nimport { MrbPage } 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\n\r\nfunction FeaturedSectionTemplate({ featuredSectionViewStore, renderChildRoute, t, ...props }) {\r\n const { selectedTab, setSelectedTab } = featuredSectionViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n setSelectedTab(1)}\r\n className={mergeCss(\r\n \"c-tabs__item\",\r\n selectedTab.title === \"mobile\" && \"c-tabs__item--active\"\r\n )}\r\n routeName=\"master.administration.naki-mobile.featured-section.mobile\"\r\n >\r\n {t(\"ADMINISTRATION.NAKI_MOBILE.FEATURED_SECTION.MOBILE.TITLE\")}\r\n \r\n setSelectedTab(2)}\r\n className={mergeCss(\r\n \"c-tabs__item\",\r\n selectedTab.title === \"mobile_embedded\" && \"c-tabs__item--active\"\r\n )}\r\n routeName=\"master.administration.naki-mobile.featured-section.mobile-embedded\"\r\n >\r\n {t(\"ADMINISTRATION.NAKI_MOBILE.FEATURED_SECTION.MOBILE_EMBEDDED.TITLE\")}\r\n \r\n \r\n
\r\n\r\n {renderChildRoute(props)}\r\n
\r\n
\r\n );\r\n}\r\n\r\nFeaturedSectionTemplate.propTypes = {\r\n featuredSectionViewStore: PropTypes.object.isRequired,\r\n renderChildRoute: PropTypes.func,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(FeaturedSectionTemplate);\r\n","import React, { useState, useEffect, useMemo } from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { EditFeaturedSectionContentModal, FeaturedSectionLoader } from \"administration/naki-mobile/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { FeaturedSectionItemViewStore } from \"administration/naki-mobile/stores\";\r\nimport { UploadedImageLoader } from \"common/components\";\r\nimport { Image } from \"common/components\";\r\nimport { MrbFileUpload } from \"mrb/components/media\";\r\nimport {\r\n canExpandLeft,\r\n canExpandRight,\r\n canExpandTop,\r\n canExpandBottom,\r\n isGridItemDefined,\r\n canCollapseTop,\r\n canCollapseLeft,\r\n canCollapseRight,\r\n canCollapseBottom,\r\n} from \"administration/naki-mobile/utils\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { map, isNil } from \"lodash\";\r\n\r\nfunction NakiMobileEmbeddedFeaturedSectionTemplate({ nakiMobileEmbeddedFeaturedSectionViewStore, t }) {\r\n const { editItemModalParams, loaderStore } = nakiMobileEmbeddedFeaturedSectionViewStore;\r\n\r\n return (\r\n \r\n \r\n
Featured Section
\r\n \r\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 Actions = observer(function Actions({ store, t }) {\r\n const { updateFeaturedGrid, isSubmitting } = store;\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nconst Grid = observer(function Grid({ viewStore }) {\r\n const {\r\n items,\r\n rowsLimit,\r\n columnsLimit,\r\n editItem,\r\n expandToLeft,\r\n expandToRight,\r\n expandToTop,\r\n expandToBottom,\r\n collapseLeft,\r\n collapseRight,\r\n collapseTop,\r\n collapseBottom,\r\n clearSelection,\r\n loaderStore,\r\n rootStore,\r\n routeStore,\r\n } = viewStore;\r\n\r\n const grid = map(items, (item) => (\r\n \r\n ));\r\n\r\n return (\r\n }>\r\n {() =>
{grid}
}\r\n
\r\n );\r\n});\r\n\r\nconst GridItem = observer(function GridItem({\r\n item,\r\n editItem,\r\n clearSelection,\r\n expandToLeft,\r\n expandToRight,\r\n expandToTop,\r\n expandToBottom,\r\n collapseLeft,\r\n collapseRight,\r\n collapseTop,\r\n collapseBottom,\r\n rowsLimit,\r\n columnsLimit,\r\n routeStore,\r\n rootStore,\r\n}) {\r\n const [isHovering, setIsHovering] = useState(false);\r\n\r\n const expandDownButton = canExpandBottom(item.gridRow, item.gridRowSpan, rowsLimit);\r\n const expandTopButton = canExpandTop(item.gridRow);\r\n const expandLeftButton = canExpandLeft(item.gridColumn);\r\n const expandRightButton = canExpandRight(item.gridColumn, item.gridColumnSpan, columnsLimit);\r\n\r\n const collapseTopButton = canCollapseTop(item.gridRowSpan);\r\n const collapseLeftButton = canCollapseLeft(item.gridColumnSpan);\r\n const collapseRightButton = canCollapseRight(item.gridColumnSpan);\r\n const collapseBottomButton = canCollapseBottom(item.gridRowSpan);\r\n\r\n const gridArea = createGridAreaDefinition(item.gridRow, item.gridColumn, item.gridRowSpan, item.gridColumnSpan);\r\n\r\n return (\r\n setIsHovering(true)}\r\n onMouseLeave={() => setIsHovering(false)}\r\n style={{\r\n gridArea: gridArea,\r\n }}\r\n >\r\n {isGridItemDefined(item) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {/* Use for debug */}\r\n {/*
\r\n Row: {item.gridRow}\r\n Col: {item.gridColumn}\r\n RowSpan: {item.gridRowSpan}\r\n ColSpan: {item.gridColumnSpan}\r\n
*/}\r\n\r\n {isHovering && (\r\n \r\n
\r\n {expandLeftButton ? (\r\n expandToLeft(item)}\r\n />\r\n ) : null}\r\n {collapseLeftButton ? (\r\n collapseLeft(item)}\r\n />\r\n ) : null}\r\n
\r\n\r\n
\r\n {collapseTopButton ? (\r\n collapseTop(item)}\r\n />\r\n ) : null}\r\n {expandTopButton ? (\r\n expandToTop(item)}\r\n />\r\n ) : null}\r\n
\r\n\r\n
\r\n {collapseRightButton ? (\r\n collapseRight(item)}\r\n />\r\n ) : null}\r\n {expandRightButton ? (\r\n expandToRight(item)}\r\n />\r\n ) : null}\r\n
\r\n\r\n
\r\n {expandDownButton ? (\r\n expandToBottom(item)}\r\n />\r\n ) : null}\r\n {collapseBottomButton ? (\r\n collapseBottom(item)}\r\n />\r\n ) : null}\r\n
\r\n
\r\n )}\r\n \r\n );\r\n});\r\n\r\nfunction DefaultItem({ item, edit }) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n edit(item)} />\r\n
\r\n );\r\n}\r\n\r\nconst DefinedItem = observer(function DefinedItem({ item, edit, gridArea, clearSelection, rootStore, routeStore }) {\r\n const store = useMemo(\r\n () => new FeaturedSectionItemViewStore(rootStore, { item, routeStore }),\r\n [item, rootStore, routeStore]\r\n );\r\n\r\n useEffect(() => {\r\n store.initialize();\r\n }, [store]);\r\n\r\n const gridStart = gridArea.split(\" / \")[0];\r\n const gridEnd = gridArea.split(\" / \")[2];\r\n let imgSize = \"\";\r\n\r\n if (gridEnd - gridStart === 1) {\r\n imgSize = \"sml\";\r\n } else if (gridEnd - gridStart === 2) {\r\n imgSize = \"med\";\r\n } else {\r\n imgSize = \"lrg\";\r\n }\r\n const width = item.gridColumnSpan * 200;\r\n const height = item.gridRowSpan * 200;\r\n\r\n let coverImageUrl = null;\r\n if (item.fileEntryId) {\r\n coverImageUrl = rootStore.coverImageFactory.createFeaturedSectionCoverImageUrl(item.fileEntryId, width, height);\r\n } else if (item.station && item.station.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createStationCoverImageUrl(\r\n item.station.coverImageId,\r\n width,\r\n height\r\n );\r\n } else if (item.podcast && item.podcast.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createPodcastCoverImageUrl(\r\n item.podcast.coverImageId,\r\n width,\r\n height\r\n );\r\n } else if (item.artist && item.artist.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createNakiNigunArtistCoverImageUrl(\r\n item.artist.coverImageId,\r\n width,\r\n height\r\n );\r\n } else if (item.album && item.album.coverImageId) {\r\n coverImageUrl = rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(\r\n item.album.coverImageId,\r\n width,\r\n height\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {(item.fileEntryId || store.coverImageUploadViewStore.file) && (\r\n store.revertToDefaultArtwork(item)}\r\n classNameOverride=\"c-btn c-btn--sml c-btn--outline u-mar--left--tny\"\r\n icon=\"u-cursor--pointer u-icon u-icon--base u-icon--close u-mar--right--tny\"\r\n />\r\n )}\r\n
\r\n }\r\n >\r\n {() => (\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n edit(item)} />\r\n {\r\n store.revertToDefaultArtwork();\r\n clearSelection(item);\r\n }}\r\n />\r\n
\r\n
\r\n );\r\n});\r\n\r\nfunction ContentLabel({ item }) {\r\n let icon = null;\r\n let title = null;\r\n let isPremium = false;\r\n\r\n if (!isNil(item.stationId)) {\r\n icon = \"stations\";\r\n title = item.station.title;\r\n isPremium = item.station.isPremium;\r\n } else if (!isNil(item.podcastId)) {\r\n icon = \"podcasts\";\r\n title = item.podcast.title;\r\n isPremium = item.podcast.isPremium;\r\n } else if (!isNil(item.nakiNigunArtistId)) {\r\n icon = \"nigun\";\r\n title = item.artist.name;\r\n isPremium = item.artist.isPremium;\r\n } else if (!isNil(item.nakiNigunAlbumId)) {\r\n icon = \"nigun\";\r\n title = item.album.title;\r\n isPremium = item.album.isPremium;\r\n }\r\n\r\n return (\r\n

\r\n \r\n {title}\r\n {isPremium && }\r\n

\r\n );\r\n}\r\n\r\nfunction createGridAreaDefinition(row, column, rowSpan = 1, columnSpan = 1) {\r\n return `${row + 1} / ${column + 1} / ${row + 1 + rowSpan} / ${column + 1 + columnSpan}`;\r\n}\r\n\r\nNakiMobileEmbeddedFeaturedSectionTemplate.propTypes = {\r\n nakiMobileEmbeddedFeaturedSectionViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(NakiMobileEmbeddedFeaturedSectionTemplate);\r\n","import React from \"react\";\r\nimport { NakiMobileFeaturedSectionTemplate } from \"themes/administration/naki-mobile/pages\";\r\nimport { NakiMobileFeaturedSectionViewStore } from \"administration/naki-mobile/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiMobileFeaturedSectionViewStore(rootStore, componentProps),\r\n \"nakiMobileFeaturedSectionViewStore\"\r\n)\r\nclass NakiMobileFeaturedSection extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiMobileFeaturedSection;\r\n","import React from \"react\";\r\nimport { NakiMobileHomeSectionListTemplate } from \"themes/administration/naki-mobile/pages\";\r\nimport { NakiMobileHomeSectionListViewStore } from \"administration/naki-mobile/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiMobileHomeSectionListViewStore(rootStore, componentProps),\r\n \"nakiMobileHomeSectionListViewStore\"\r\n)\r\nclass NakiMobileHomeSectionList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiMobileHomeSectionList;\r\n","import React from \"react\";\r\nimport { NakiMobileEmbeddedFeaturedSectionTemplate } from \"themes/administration/naki-mobile/pages\";\r\nimport { NakiMobileEmbeddedFeaturedSectionViewStore } from \"administration/naki-mobile/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiMobileEmbeddedFeaturedSectionViewStore(rootStore, componentProps),\r\n \"nakiMobileEmbeddedFeaturedSectionViewStore\"\r\n)\r\nclass NakiMobileEmbeddedFeaturedSection extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiMobileEmbeddedFeaturedSection;\r\n","import React from \"react\";\r\nimport { FeaturedSectionTemplate } from \"themes/administration/naki-mobile/pages\";\r\nimport { FeaturedSectionViewStore } from \"administration/naki-mobile/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new FeaturedSectionViewStore(rootStore, componentProps),\r\n \"featuredSectionViewStore\"\r\n)\r\n@observer\r\nclass FeaturedSection extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default FeaturedSection;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n NakiMobileHomeSectionList,\r\n NakiMobileFeaturedSection,\r\n NakiMobileEmbeddedFeaturedSection,\r\n FeaturedSection,\r\n} from \"administration/naki-mobile/pages\";\r\nimport {\r\n NakiMobileHomeSectionListRouteStore,\r\n NakiMobileFeaturedSectionRouteStore,\r\n NakiMobileEmbeddedFeaturedSectionRouteStore,\r\n FeaturedSectionRouteStore,\r\n} from \"administration/naki-mobile/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"NakiMobile\",\r\n routes: [\r\n {\r\n name: \"master.administration.naki-mobile\",\r\n pattern: \"/naki-mobile\",\r\n children: [\r\n {\r\n name: \"master.administration.naki-mobile.sections\",\r\n pattern: \"sections\",\r\n store: NakiMobileHomeSectionListRouteStore,\r\n component: NakiMobileHomeSectionList,\r\n data: {\r\n title: \"Home Screen Sections\",\r\n },\r\n },\r\n {\r\n name: \"master.administration.naki-mobile.featured-section\",\r\n pattern: \"featured-section\",\r\n store: FeaturedSectionRouteStore,\r\n component: FeaturedSection,\r\n children: [\r\n {\r\n name: \"master.administration.naki-mobile.featured-section.mobile\",\r\n pattern: \"\",\r\n component: NakiMobileFeaturedSection,\r\n store: NakiMobileFeaturedSectionRouteStore,\r\n },\r\n {\r\n name: \"master.administration.naki-mobile.featured-section.mobile-embedded\",\r\n pattern: \"\",\r\n component: NakiMobileEmbeddedFeaturedSection,\r\n store: NakiMobileEmbeddedFeaturedSectionRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.NAKI_MOBILE\",\r\n order: 9,\r\n icon: \"mobile\",\r\n subMenu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.NAKI_MOBILE_HOME_SCREEN\",\r\n order: 1,\r\n route: \"master.administration.naki-mobile.sections\",\r\n },\r\n {\r\n title: \"ADMINISTRATION.MENU.NAKI_MOBILE_FEATURED_SECTION\",\r\n order: 2,\r\n route: \"master.administration.naki-mobile.featured-section.mobile\",\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 { MrbListPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction ShuffleListTemplate({ shuffleListViewStore, t }) {\r\n const { gridStore, queryUtility } = shuffleListViewStore;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nShuffleListTemplate.propTypes = {\r\n shuffleListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(ShuffleListTemplate);\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ShuffleCreateLoaderTemplate = (props) => {\r\n const screenwidth = window.innerWidth;\r\n\r\n return (\r\n 768 ? 768 : screenwidth\r\n } 180`}\r\n backgroundColor=\"#262729\"\r\n foregroundColor=\"#2b2b2b\"\r\n {...props}\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 ShuffleCreateLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ShuffleListLoaderTemplate = ({ row = 3 }) => {\r\n const items = [];\r\n\r\n for (let i = 0; i < row; i++) {\r\n items.push();\r\n }\r\n\r\n return {items};\r\n};\r\n\r\nconst ShuffleLoaderTemplate = (props) => {\r\n const screenwidth = window.innerWidth;\r\n\r\n return (\r\n
\r\n 768 ? \"768\" : screenwidth}\r\n height=\"100%\"\r\n viewBox={`0 0 ${screenwidth > 768 ? \"768\" : screenwidth} 80`}\r\n backgroundColor=\"#262729\"\r\n foregroundColor=\"#2b2b2b\"\r\n {...props}\r\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 ShuffleListLoaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ShuffleEditStationItemTemplate({ item, store, t }) {\r\n const { deleteShuffleItem } = store;\r\n return (\r\n
\r\n
\r\n
\r\n {item.station.title}{\" \"}\r\n {item.station.isPremium && (\r\n \r\n )}\r\n
\r\n deleteShuffleItem(item.id)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nShuffleEditStationItemTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst WeightPicker = observer(function WeightOverride({ item, store, t }) {\r\n const { shuffleWeightOptions, setItemShuffleWeight } = store;\r\n return (\r\n \r\n
\r\n setItemShuffleWeight(item.id, value)}\r\n />\r\n
\r\n
\r\n );\r\n});\r\n\r\nWeightPicker.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(ShuffleEditStationItemTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ShuffleEditNakiNigunAlbumItemTemplate({ item, store, t }) {\r\n const { deleteShuffleItem } = store;\r\n return (\r\n
\r\n
\r\n
\r\n

{item.nakiNigunAlbum.artist.name}

{\" \"}\r\n -\r\n {item.nakiNigunAlbum.title}\r\n {item.nakiNigunAlbum.isPremium && (\r\n \r\n )}\r\n
\r\n deleteShuffleItem(item.id)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nShuffleEditNakiNigunAlbumItemTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst WeightPicker = observer(function WeightOverride({ item, store, t }) {\r\n const { shuffleWeightOptions, setItemShuffleWeight } = store;\r\n return (\r\n \r\n
\r\n setItemShuffleWeight(item.id, value)}\r\n />\r\n
\r\n
\r\n );\r\n});\r\n\r\nWeightPicker.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(ShuffleEditNakiNigunAlbumItemTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ShuffleEditPodcastItemTemplate({ item, store, t }) {\r\n const { deleteShuffleItem } = store;\r\n return (\r\n
\r\n
\r\n
\r\n {item.podcast.title}{\" \"}\r\n {item.podcast.isPremium && (\r\n \r\n )}\r\n
\r\n deleteShuffleItem(item.id)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nShuffleEditPodcastItemTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst WeightPicker = observer(function WeightOverride({ item, store, t }) {\r\n const { shuffleWeightOptions, setItemShuffleWeight } = store;\r\n return (\r\n \r\n
\r\n setItemShuffleWeight(item.id, value)}\r\n />\r\n
\r\n
\r\n );\r\n});\r\n\r\nWeightPicker.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(ShuffleEditPodcastItemTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ShuffleEditItemsTemplate({ shuffleEditViewStore, t, itemRender }) {\r\n const { items } = shuffleEditViewStore;\r\n if (!items || items.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {map(items, (item) => (\r\n \r\n {itemRender({ item, t, store: shuffleEditViewStore })}\r\n \r\n ))}\r\n
\r\n
\r\n );\r\n}\r\n\r\nShuffleEditItemsTemplate.propTypes = {\r\n shuffleEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n itemRender: PropTypes.func,\r\n};\r\n\r\nexport default observer(ShuffleEditItemsTemplate);\r\n","import React from \"react\";\r\nimport { ShuffleCreateLoaderTemplate } from \"themes/administration/shuffle/components\";\r\n\r\nfunction ShuffleCreateLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ShuffleCreateLoader;\r\n","import React from \"react\";\r\nimport { ShuffleListLoaderTemplate } from \"themes/administration/shuffle/components\";\r\n\r\nfunction ShuffleListLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ShuffleListLoader;\r\n","import React from \"react\";\r\nimport { ShuffleEditStationItemTemplate } from \"themes/administration/shuffle/components\";\r\n\r\nclass ShuffleEditStationItem extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ShuffleEditStationItem;\r\n","import React from \"react\";\r\nimport { ShuffleEditNakiNigunAlbumItemTemplate } from \"themes/administration/shuffle/components\";\r\n\r\nclass ShuffleEditNakiNigunAlbumItem extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ShuffleEditNakiNigunAlbumItem;\r\n","import React from \"react\";\r\nimport { ShuffleEditPodcastItemTemplate } from \"themes/administration/shuffle/components\";\r\n\r\nclass ShuffleEditPodcastItem extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ShuffleEditPodcastItem;\r\n","import React from \"react\";\r\nimport { ShuffleEditItemsTemplate } from \"themes/administration/shuffle/components\";\r\n\r\nclass ShuffleEditItems extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ShuffleEditItems;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbEditPage, MrbFieldInput } from \"mrb/components\";\r\nimport { MrbSelect } from \"mrb/components/select\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { ShuffleEditItems, ShuffleEditNakiNigunAlbumItem } from \"administration/shuffle/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { ShuffleCreateLoader } from \"administration/shuffle/components\";\r\n\r\nfunction NakiNigunShuffleEditTemplate({ nakiNigunShuffleEditViewStore, t }) {\r\n const { form, loaderStore, shuffleItemSelectStore, addNakiNigunAlbumShuffleItem, isAddDisabled } =\r\n nakiNigunShuffleEditViewStore;\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 classNameExtend=\"c-dropdown--dark c-dropdown--base\"\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n }\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nNakiNigunShuffleEditTemplate.propTypes = {\r\n nakiNigunShuffleEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction OptionLabel({ item }) {\r\n return (\r\n \r\n {item.artist.name}\r\n -\r\n {item.title}\r\n \r\n );\r\n}\r\n\r\nexport default defaultTemplate(NakiNigunShuffleEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbEditPage, MrbFieldInput } from \"mrb/components\";\r\nimport { MrbSelect } from \"mrb/components/select\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport {\r\n ShuffleEditItems,\r\n ShuffleEditPodcastItem,\r\n} from \"administration/shuffle/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { ShuffleCreateLoader } from \"administration/shuffle/components\";\r\n\r\nfunction PodcastShuffleEditTemplate({ podcastShuffleEditViewStore, t }) {\r\n const {\r\n form,\r\n loaderStore,\r\n shuffleItemSelectStore,\r\n addPodcastShuffleItem,\r\n isAddDisabled,\r\n } = podcastShuffleEditViewStore;\r\n\r\n return (\r\n \r\n \r\n }\r\n >\r\n {() => (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n (\r\n \r\n )}\r\n />\r\n
\r\n )}\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nPodcastShuffleEditTemplate.propTypes = {\r\n podcastShuffleEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(PodcastShuffleEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbEditPage, MrbFieldInput } from \"mrb/components\";\r\nimport { MrbSelect } from \"mrb/components/select\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport {\r\n ShuffleEditItems,\r\n ShuffleEditStationItem,\r\n} from \"administration/shuffle/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { ShuffleCreateLoader } from \"administration/shuffle/components\";\r\n\r\nfunction StationShuffleEditTemplate({ stationShuffleEditViewStore, t }) {\r\n const {\r\n form,\r\n loaderStore,\r\n shuffleItemSelectStore,\r\n addStationShuffleItem,\r\n isAddDisabled,\r\n } = stationShuffleEditViewStore;\r\n\r\n return (\r\n \r\n \r\n }\r\n >\r\n {() => (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n (\r\n \r\n )}\r\n />\r\n
\r\n )}\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nStationShuffleEditTemplate.propTypes = {\r\n stationShuffleEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(StationShuffleEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { map } from \"lodash\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { ShuffleListLoader } from \"administration/shuffle/components\";\r\nimport { MrbHeaderWithoutImageLoader } from \"mrb/components/loader\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nfunction ShufflePreviewTemplate({ shufflePreviewViewStore, t }) {\r\n const { item, loaderStore, goTo } = shufflePreviewViewStore;\r\n return (\r\n \r\n \r\n }>\r\n {() => (\r\n \r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.SHUFFLE.PREVIEW.FIELDS.TITLE\")}\r\n

\r\n

{item.name}

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

\r\n {t(\"ADMINISTRATION.SHUFFLE.PREVIEW.FIELDS.TYPE\")}\r\n

\r\n {item.shuffleType && item.shuffleType.name}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n }>\r\n {() => (\r\n
\r\n
\r\n {item?.shuffleItems.length > 0 ? (\r\n \r\n {map(item.shuffleItems, (shuffleItem, index) => (\r\n
\r\n
\r\n
\r\n goTo(shuffleItem)}\r\n >\r\n {shuffleItem.name && shuffleItem.name}\r\n {shuffleItem.isPremium && (\r\n \r\n )}\r\n
\r\n \r\n
\r\n {shuffleItem.isActive ? \"Active\" : \"Inactive\"}\r\n

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

\r\n Shuffle Weight\r\n

\r\n {shuffleItem.shuffleWeight.name}\r\n
\r\n
\r\n
\r\n ))}\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n )}\r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nShufflePreviewTemplate.propTypes = {\r\n shufflePreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction ShuffleEmptyState() {\r\n return (\r\n
\r\n \r\n

No shuffled content

\r\n

Please, create new shuffle podcast, station or Naki Nigun list.

\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(ShufflePreviewTemplate);\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ShuffleService } from \"common/services\";\r\n\r\nclass ShuffleListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(ShuffleService);\r\n }\r\n\r\n async findShuffles(params) {\r\n const response = await this.service.find(params);\r\n return response.data;\r\n }\r\n\r\n async deleteShuffle(resource) {\r\n const response = await this.service.delete(resource);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ShuffleListRouteStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { shuffleType } from \"common/constants\";\r\nclass ShuffleListViewStore extends MrbBaseListViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n embed: \"shuffleType\",\r\n orderBy: \"name\",\r\n orderDirection: \"asc\",\r\n },\r\n layoutActions: {\r\n createPodcastShuffle: {\r\n onClick: () => this.rootStore.routerStore.goTo(\"master.administration.shuffle.create-podcast\"),\r\n authorization: null,\r\n label: \"ADMINISTRATION.SHUFFLE.LIST.BUTTONS.ADD_PODCAST_SHUFFLE\",\r\n },\r\n createStationShuffle: {\r\n onClick: () => this.rootStore.routerStore.goTo(\"master.administration.shuffle.create-station\"),\r\n authorization: null,\r\n label: \"ADMINISTRATION.SHUFFLE.LIST.BUTTONS.ADD_STATION_SHUFFLE\",\r\n },\r\n createNakiNigunShuffle: {\r\n onClick: () => this.rootStore.routerStore.goTo(\"master.administration.shuffle.create-naki-nigun\"),\r\n authorization: null,\r\n label: \"ADMINISTRATION.SHUFFLE.LIST.BUTTONS.ADD_NAKI_NIGUN_SHUFFLE\",\r\n },\r\n },\r\n });\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n onRowClick: (node) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.shuffle.preview\", { id: node.data.id }),\r\n columns: [\r\n {\r\n key: \"name\",\r\n title: \"Name\",\r\n sortable: true,\r\n },\r\n {\r\n key: \"shuffleType.name\",\r\n title: \"Type\",\r\n },\r\n ],\r\n actions: {\r\n edit: {\r\n onClick: (item) => {\r\n if (item.shuffleType.abrv === shuffleType.station) {\r\n this.rootStore.routerStore.goTo(\"master.administration.shuffle.edit-station\", {\r\n id: item.id,\r\n });\r\n } else if (item.shuffleType.abrv === shuffleType.podcast) {\r\n this.rootStore.routerStore.goTo(\"master.administration.shuffle.edit-podcast\", {\r\n id: item.id,\r\n });\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.administration.shuffle.edit-naki-nigun\", {\r\n id: item.id,\r\n });\r\n }\r\n },\r\n label: \"Edit\",\r\n authorization: null,\r\n buttonProps: {\r\n className: \"c-btn c-btn--sml c-btn--ghost u-mar--right--tny\",\r\n },\r\n },\r\n delete: {\r\n onClick: (item) =>\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete shuffle?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deleteShuffle(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 shuffle.\",\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 label: \"ADMINISTRATION.SHUFFLE.LIST.ACTIONS.DELETE\",\r\n buttonProps: {\r\n className: \"c-btn c-btn--sml c-btn--ghost\",\r\n },\r\n },\r\n },\r\n })\r\n );\r\n }\r\n\r\n find(params) {\r\n return this.routeStore.findShuffles(params);\r\n }\r\n}\r\n\r\nexport default ShuffleListViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ShuffleService, ShuffleWeightCacheService } from \"common/services\";\r\n\r\nclass BaseShuffleEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(ShuffleService);\r\n\r\n this.shuffleWeightService = new ShuffleWeightCacheService(\r\n this.rootStore\r\n );\r\n }\r\n\r\n getShuffleWeights() {\r\n return this.shuffleWeightService.getItems();\r\n }\r\n}\r\n\r\nexport default BaseShuffleEditRouteStore;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class ShuffleEditForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"name\",\r\n label: \"ADMINISTRATION.SHUFFLE.EDIT.FIELDS.NAME_LABEL\",\r\n placeholder:\r\n \"ADMINISTRATION.SHUFFLE.EDIT.FIELDS.NAME_PLACEHOLDER\",\r\n rules: \"string|required\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { action, computed, observable, makeObservable, toJS } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { ShuffleEditForm } from \"administration/shuffle/forms\";\r\nimport { map, isNil, sortBy, snakeCase, findIndex, filter } from \"lodash\";\r\n\r\nclass BaseShuffleEditViewStore extends MrbBaseEditViewStore {\r\n @observable items = [];\r\n\r\n @observable.ref shuffleWeights = [];\r\n\r\n shuffleItemSelectStore = null;\r\n\r\n @computed get shuffleWeightOptions() {\r\n return map(this.shuffleWeights, (item) => {\r\n return {\r\n value: item.id,\r\n label: `ADMINISTRATION.SHUFFLE.EDIT.OPTIONS.SHUFFLE_WEIGHT.${snakeCase(\r\n item.name\r\n ).toUpperCase()}_OPTION_LABEL`,\r\n };\r\n });\r\n }\r\n\r\n @computed get isAddDisabled() {\r\n return isNil(this.shuffleItemSelectStore.selectedItem);\r\n }\r\n\r\n @computed get shuffleWeightIds() {\r\n return map(this.shuffleWeights, (item) => item.id);\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: \"shuffle\",\r\n FormClass: ShuffleEditForm,\r\n autoFocusField: \"name\",\r\n navigateBack: \"master.administration.shuffle.list\",\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.reaction(\r\n () => this.form.submitted && this.items.length === 0,\r\n (invalidateShuffleItems) => {\r\n if (invalidateShuffleItems) {\r\n this.form.invalidate(\"ADMINISTRATION.SHUFFLE.EDIT.VALIDATION.SHUFFLE_ITEMS_EMPTY\");\r\n } else {\r\n this.form.validator.error = null;\r\n }\r\n }\r\n );\r\n }\r\n\r\n async onInit() {\r\n await this.loadLookups();\r\n await super.onInit();\r\n await this.shuffleItemSelectStore.filter();\r\n }\r\n\r\n async loadLookups() {\r\n const shuffleWeights = await this.routeStore.getShuffleWeights();\r\n this.setShuffleWeights(shuffleWeights);\r\n }\r\n\r\n setItem(item) {\r\n this.items = item.shuffleItems;\r\n item.shuffleItems = null;\r\n super.setItem(item);\r\n }\r\n\r\n @action.bound\r\n setShuffleWeights(items) {\r\n this.shuffleWeights = sortBy(items, [\"weight\"]);\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 createResource(data) {\r\n if (this.items.length === 0) {\r\n this.form.invalidate(\"ADMINISTRATION.SHUFFLE.EDIT.VALIDATION.SHUFFLE_ITEMS_EMPTY\");\r\n return;\r\n }\r\n data.shuffleItems = toJS(this.items);\r\n return super.createResource(data);\r\n }\r\n\r\n updateResource(data) {\r\n if (this.items.length === 0) {\r\n this.form.invalidate(\"ADMINISTRATION.SHUFFLE.EDIT.VALIDATION.SHUFFLE_ITEMS_EMPTY\");\r\n return;\r\n }\r\n data.shuffleItems = toJS(this.items);\r\n return super.updateResource(data);\r\n }\r\n\r\n addShuffleItem(item) {\r\n this.items.push(item);\r\n this.shuffleItemSelectStore.clear();\r\n }\r\n\r\n @action.bound\r\n setItemShuffleWeight(shuffleItemId, shuffleWeightId) {\r\n const index = findIndex(this.items, (item) => item.id === shuffleItemId);\r\n if (index >= 0) {\r\n this.items[index].shuffleWeightId = shuffleWeightId;\r\n }\r\n }\r\n\r\n @action.bound\r\n deleteShuffleItem(shuffleItemId) {\r\n this.items = filter(this.items, (item) => item.id !== shuffleItemId);\r\n }\r\n\r\n itemExists(itemId) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}\r\n\r\nexport default BaseShuffleEditViewStore;\r\n","import { BaseShuffleEditRouteStore } from \"administration/shuffle/stores\";\r\nimport { NakiNigunAlbumService } from \"common/services\";\r\n\r\nclass NakiNigunShuffleEditRouteStore extends BaseShuffleEditRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.nakiNigunAlbumService = this.rootStore.createApplicationService(NakiNigunAlbumService);\r\n }\r\n\r\n async getNakiNigunAlbumShuffle(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"shuffleItems,shuffleItems.nakiNigunAlbum,shuffleItems.nakiNigunAlbum.artist\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async createNakiNigunAlbumShuffle(resource) {\r\n const response = await this.service.createNakiNigun(resource);\r\n return response.data;\r\n }\r\n\r\n async updateNakiNigunAlbumShuffle(resource) {\r\n const response = await this.service.update(resource);\r\n return response.data;\r\n }\r\n\r\n async findShufflableNakiNigunAlbum(params) {\r\n const response = await this.nakiNigunAlbumService.findShufflableNakiNigunAlbum(params);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiNigunShuffleEditRouteStore;\r\n","import { action } from \"mobx\";\r\nimport { BaseShuffleEditViewStore } from \"administration/shuffle/stores\";\r\nimport { MrbSelectStore } from \"mrb/components/select\";\r\nimport { UUID } from \"common/utils\";\r\nimport { findIndex, head, map } from \"lodash\";\r\n\r\nclass NakiNigunShuffleEditViewStore extends BaseShuffleEditViewStore {\r\n constructor(rootStore, componentProps) {\r\n super(rootStore, componentProps);\r\n\r\n this.shuffleItemSelectStore = new MrbSelectStore({\r\n isSearchable: true,\r\n textKey: \"title\",\r\n valueKey: \"id\",\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm, pageNumber, pageSize) => {\r\n const selectedIds = map(this.items, (item) => item.nakiNigunAlbum.id);\r\n return this.routeStore.findShufflableNakiNigunAlbum({\r\n search: searchTerm,\r\n orderBy: \"title\",\r\n orderDirection: \"asc\",\r\n fields: \"id,title,isPremium,artist\",\r\n embed: \"artist\",\r\n pageNumber: pageNumber,\r\n pageSize: pageSize,\r\n excludeIds: selectedIds.length > 0 ? selectedIds : null,\r\n });\r\n },\r\n mapItem: (item) => {\r\n return {\r\n label: `${item.artist.name} - ${item.title}`,\r\n value: item.id,\r\n item: item,\r\n };\r\n },\r\n },\r\n });\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getNakiNigunAlbumShuffle(id);\r\n }\r\n\r\n create(data) {\r\n return this.routeStore.createNakiNigunAlbumShuffle(data);\r\n }\r\n\r\n update(data) {\r\n return this.routeStore.updateNakiNigunAlbumShuffle(data);\r\n }\r\n\r\n @action.bound\r\n addNakiNigunAlbumShuffleItem() {\r\n const nakiNigunAlbum = this.shuffleItemSelectStore.selectedItem;\r\n const obj = {\r\n id: UUID.create(),\r\n nakiNigunAlbumId: nakiNigunAlbum.id,\r\n nakiNigunAlbum: nakiNigunAlbum,\r\n shuffleWeightId: head(this.shuffleWeights).id,\r\n };\r\n if (this.itemExists(obj.nakiNigunAlbumId)) {\r\n return;\r\n }\r\n this.addShuffleItem(obj);\r\n this.shuffleItemSelectStore.clearOptions();\r\n this.shuffleItemSelectStore.filter();\r\n }\r\n\r\n itemExists(itemId) {\r\n return findIndex(this.items, (item) => item.nakiNigunAlbumId === itemId) !== -1;\r\n }\r\n}\r\n\r\nexport default NakiNigunShuffleEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ShuffleService } from \"common/services\";\r\n\r\nclass ShuffleEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(ShuffleService);\r\n }\r\n}\r\n\r\nexport default ShuffleEditRouteStore;\r\n","import { BaseShuffleEditRouteStore } from \"administration/shuffle/stores\";\r\nimport { PodcastService } from \"common/services\";\r\n\r\nclass PodcastShuffleEditRouteStore extends BaseShuffleEditRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.podcastService = this.rootStore.createApplicationService(PodcastService);\r\n }\r\n\r\n async getPodcastShuffle(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"shuffleItems,shuffleItems.podcast,shuffleItems.podcast.podcastFeed\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async createPodcastShuffle(resource) {\r\n const response = await this.service.createPodcast(resource);\r\n return response.data;\r\n }\r\n\r\n async updatePodcastShuffle(resource) {\r\n const response = await this.service.update(resource);\r\n return response.data;\r\n }\r\n\r\n async findShufflablePodcast(params) {\r\n const response = await this.podcastService.findShufflablePodcast(params);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default PodcastShuffleEditRouteStore;\r\n","import { BaseShuffleEditRouteStore } from \"administration/shuffle/stores\";\r\nimport { StationService } from \"common/services\";\r\n\r\nclass StationShuffleEditRouteStore extends BaseShuffleEditRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.stationService = this.rootStore.createApplicationService(\r\n StationService\r\n );\r\n }\r\n\r\n async getStationShuffle(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"shuffleItems,shuffleItems.station\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async createStationShuffle(resource) {\r\n const response = await this.service.createStation(resource);\r\n return response.data;\r\n }\r\n\r\n async updateStationShuffle(resource) {\r\n const response = await this.service.update(resource);\r\n return response.data;\r\n }\r\n\r\n async findShufflableStation(params) {\r\n const response = await this.stationService.findShufflableStation(\r\n params\r\n );\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default StationShuffleEditRouteStore;\r\n","import { action } from \"mobx\";\r\nimport { BaseShuffleEditViewStore } from \"administration/shuffle/stores\";\r\nimport { MrbSelectStore } from \"mrb/components/select\";\r\nimport { UUID } from \"common/utils\";\r\nimport { findIndex, head, map } from \"lodash\";\r\n\r\nclass StationShuffleEditViewStore extends BaseShuffleEditViewStore {\r\n constructor(rootStore, componentProps) {\r\n super(rootStore, componentProps);\r\n\r\n this.shuffleItemSelectStore = new MrbSelectStore({\r\n isSearchable: true,\r\n textKey: \"title\",\r\n valueKey: \"id\",\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm, pageNumber, pageSize) => {\r\n const selectedIds = map(\r\n this.items,\r\n (item) => item.station.id\r\n );\r\n return this.routeStore.findShufflableStation({\r\n search: searchTerm,\r\n orderBy: \"title\",\r\n orderDirection: \"asc\",\r\n fields: \"id,title,isPremium\",\r\n pageNumber: pageNumber,\r\n pageSize: pageSize,\r\n excludeIds: selectedIds.length > 0 ? selectedIds : null,\r\n });\r\n },\r\n },\r\n });\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getStationShuffle(id);\r\n }\r\n\r\n create(data) {\r\n return this.routeStore.createStationShuffle(data);\r\n }\r\n\r\n update(data) {\r\n return this.routeStore.updateStationShuffle(data);\r\n }\r\n\r\n @action.bound\r\n addStationShuffleItem() {\r\n const station = this.shuffleItemSelectStore.selectedItem;\r\n const obj = {\r\n id: UUID.create(),\r\n stationId: station.id,\r\n station: station,\r\n shuffleWeightId: head(this.shuffleWeights).id,\r\n };\r\n if (this.itemExists(obj.stationId)) {\r\n return;\r\n }\r\n this.addShuffleItem(obj);\r\n this.shuffleItemSelectStore.clearOptions();\r\n this.shuffleItemSelectStore.filter();\r\n }\r\n\r\n itemExists(itemId) {\r\n return (\r\n findIndex(this.items, (item) => item.stationId === itemId) !== -1\r\n );\r\n }\r\n}\r\n\r\nexport default StationShuffleEditViewStore;\r\n","import { action } from \"mobx\";\r\nimport { BaseShuffleEditViewStore } from \"administration/shuffle/stores\";\r\nimport { MrbSelectStore } from \"mrb/components/select\";\r\nimport { UUID } from \"common/utils\";\r\nimport { head, findIndex, map } from \"lodash\";\r\n\r\nclass PodcastShuffleEditViewStore extends BaseShuffleEditViewStore {\r\n constructor(rootStore, componentProps) {\r\n super(rootStore, componentProps);\r\n\r\n this.shuffleItemSelectStore = new MrbSelectStore({\r\n isSearchable: true,\r\n textKey: \"title\",\r\n valueKey: \"id\",\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm, pageNumber, pageSize) => {\r\n return this.findPodcasts(searchTerm, pageNumber, pageSize);\r\n },\r\n },\r\n });\r\n }\r\n\r\n findPodcasts(searchTerm, pageNumber, pageSize) {\r\n const selectedIds = map(this.items, (item) => item.podcast.id);\r\n\r\n const params = {\r\n search: searchTerm,\r\n pageNumber: pageNumber,\r\n pageSize: pageSize,\r\n orderBy: \"title\",\r\n orderDirection: \"asc\",\r\n fields: \"id,title,isPremium\",\r\n excludeIds: selectedIds.length > 0 ? selectedIds : null,\r\n };\r\n return this.routeStore.findShufflablePodcast(params);\r\n }\r\n\r\n create(data) {\r\n return this.routeStore.createPodcastShuffle(data);\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getPodcastShuffle(id);\r\n }\r\n\r\n update(data) {\r\n return this.routeStore.updatePodcastShuffle(data);\r\n }\r\n\r\n @action.bound\r\n addPodcastShuffleItem() {\r\n const podcast = this.shuffleItemSelectStore.selectedItem;\r\n const obj = {\r\n id: UUID.create(),\r\n podcastId: podcast.id,\r\n podcast: podcast,\r\n shuffleWeightId: head(this.shuffleWeights).id,\r\n };\r\n if (this.itemExists(obj.podcastId)) {\r\n return;\r\n }\r\n this.addShuffleItem(obj);\r\n this.shuffleItemSelectStore.clearOptions();\r\n this.shuffleItemSelectStore.filter();\r\n }\r\n\r\n itemExists(itemId) {\r\n return (\r\n findIndex(this.items, (item) => item.podcastId === itemId) !== -1\r\n );\r\n }\r\n}\r\n\r\nexport default PodcastShuffleEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ShuffleService, ShuffleWeightCacheService } from \"common/services\";\r\n\r\nclass ShufflePreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(ShuffleService);\r\n\r\n this.shuffleWeightService = new ShuffleWeightCacheService(this.rootStore);\r\n }\r\n\r\n async getShuffle(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"shuffleType,shuffleItems,shuffleItems.station,shuffleItems.podcast,shuffleItems.nakiNigunAlbum,shuffleItems.nakiNigunAlbum.artist\",\r\n });\r\n return response.data;\r\n }\r\n\r\n getShuffleWeights() {\r\n return this.shuffleWeightService.getItems();\r\n }\r\n}\r\n\r\nexport default ShufflePreviewRouteStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBasePreviewViewStore } from \"mrb/core\";\r\nimport { shuffleType } from \"common/constants\";\r\nimport { map, find, isNil } from \"lodash\";\r\n\r\nclass ShufflePreviewViewStore extends MrbBasePreviewViewStore {\r\n @observable.ref shuffleWeights = [];\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 layoutActions: {\r\n edit: {\r\n onClick: () => {\r\n if (this.item.shuffleType.abrv === shuffleType.station) {\r\n this.rootStore.routerStore.goTo(\"master.administration.shuffle.edit-station\", {\r\n id: this.item.id,\r\n });\r\n } else if (this.item.shuffleType.abrv === shuffleType.podcast) {\r\n this.rootStore.routerStore.goTo(\"master.administration.shuffle.edit-podcast\", {\r\n id: this.item.id,\r\n });\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.administration.shuffle.edit-naki-nigun\", {\r\n id: this.item.id,\r\n });\r\n }\r\n },\r\n label: \"Edit\",\r\n className: \"c-btn c-btn--base c-btn--primary\",\r\n },\r\n },\r\n navigateBack: \"master.administration.shuffle.list\",\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n async onInit() {\r\n await this.loadLookups();\r\n return super.onInit();\r\n }\r\n\r\n setItem(item) {\r\n if (item.shuffleType.abrv === shuffleType.station) {\r\n this.setStationShuffle(item);\r\n } else if (item.shuffleType.abrv === shuffleType.podcast) {\r\n this.setPodcastShuffle(item);\r\n } else {\r\n this.setNakiNigunShuffle(item);\r\n }\r\n }\r\n\r\n @action.bound\r\n setStationShuffle({ shuffleItems, ...rest }) {\r\n this.item = {\r\n ...rest,\r\n shuffleItems: map(shuffleItems, (shuffleItem) => {\r\n return {\r\n stationId: shuffleItem.station.id,\r\n isActive: shuffleItem.station.isActive,\r\n name: shuffleItem.station.title,\r\n isPremium: shuffleItem.station.isPremium,\r\n shuffleWeight: find(\r\n this.shuffleWeights,\r\n (shuffleWeight) => shuffleWeight.id === shuffleItem.shuffleWeightId\r\n ),\r\n };\r\n }),\r\n };\r\n }\r\n\r\n @action.bound\r\n setPodcastShuffle({ shuffleItems, ...rest }) {\r\n this.item = {\r\n ...rest,\r\n shuffleItems: map(shuffleItems, (shuffleItem) => {\r\n return {\r\n podcastId: shuffleItem.podcast.id,\r\n parentPodcastId: shuffleItem.podcast.parentPodcastId,\r\n isActive: shuffleItem.podcast.isActive,\r\n name: shuffleItem.podcast.title,\r\n isPremium: shuffleItem.podcast.isPremium,\r\n shuffleWeight: find(\r\n this.shuffleWeights,\r\n (shuffleWeight) => shuffleWeight.id === shuffleItem.shuffleWeightId\r\n ),\r\n };\r\n }),\r\n };\r\n }\r\n\r\n @action.bound\r\n setNakiNigunShuffle({ shuffleItems, ...rest }) {\r\n this.item = {\r\n ...rest,\r\n shuffleItems: map(shuffleItems, (shuffleItem) => {\r\n return {\r\n nakiNigunAlbumId: shuffleItem.nakiNigunAlbum.id,\r\n nakiNigunArtistId: shuffleItem.nakiNigunAlbum.artistId,\r\n isActive: shuffleItem.nakiNigunAlbum.isActive,\r\n name: `${shuffleItem.nakiNigunAlbum.artist.name} - ${shuffleItem.nakiNigunAlbum.title}`,\r\n isPremium: shuffleItem.nakiNigunAlbum.isPremium,\r\n shuffleWeight: find(\r\n this.shuffleWeights,\r\n (shuffleWeight) => shuffleWeight.id === shuffleItem.shuffleWeightId\r\n ),\r\n };\r\n }),\r\n };\r\n }\r\n\r\n async get(id) {\r\n return this.routeStore.getShuffle(id);\r\n }\r\n\r\n async loadLookups() {\r\n const shuffleWeights = await this.routeStore.getShuffleWeights();\r\n this.setShuffleWeights(shuffleWeights);\r\n }\r\n\r\n @action.bound\r\n setShuffleWeights(items) {\r\n this.shuffleWeights = items;\r\n }\r\n\r\n goTo = (item) => {\r\n if (item.stationId) {\r\n this.rootStore.routerStore.goTo(\"master.administration.station.preview\", { id: item.stationId });\r\n } else if (item.podcastId) {\r\n if (!isNil(item.parentPodcastId)) {\r\n this.rootStore.routerStore.goTo(\r\n \"master.administration.podcast.preview-group\",\r\n { id: item.parentPodcastId },\r\n { subPodcastId: item.podcastId }\r\n );\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.preview\", { id: item.podcastId });\r\n }\r\n } else if (item.nakiNigunAlbumId) {\r\n this.rootStore.routerStore.goTo(\r\n \"master.administration.naki-nigun.artist.preview\",\r\n { id: item.nakiNigunArtistId },\r\n { albumId: item.nakiNigunAlbumId }\r\n );\r\n }\r\n };\r\n}\r\n\r\nexport default ShufflePreviewViewStore;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { NakiNigunShuffleEditTemplate } from \"themes/administration/shuffle/pages\";\r\nimport { NakiNigunShuffleEditViewStore } from \"administration/shuffle/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunShuffleEditViewStore(rootStore, componentProps),\r\n \"nakiNigunShuffleEditViewStore\"\r\n)\r\n@observer\r\nclass NakiNigunShuffleEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunShuffleEdit;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ShuffleListTemplate } from \"themes/administration/shuffle/pages\";\r\nimport { ShuffleListViewStore } from \"administration/shuffle/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new ShuffleListViewStore(rootStore, componentProps),\r\n \"shuffleListViewStore\"\r\n)\r\n@observer\r\nclass ShuffleList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ShuffleList;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PodcastShuffleEditTemplate } from \"themes/administration/shuffle/pages\";\r\nimport { PodcastShuffleEditViewStore } from \"administration/shuffle/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastShuffleEditViewStore(rootStore, componentProps),\r\n \"podcastShuffleEditViewStore\"\r\n)\r\n@observer\r\nclass PodcastShuffleEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastShuffleEdit;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { StationShuffleEditTemplate } from \"themes/administration/shuffle/pages\";\r\nimport { StationShuffleEditViewStore } from \"administration/shuffle/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new StationShuffleEditViewStore(rootStore, componentProps),\r\n \"stationShuffleEditViewStore\"\r\n)\r\n@observer\r\nclass StationShuffleEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationShuffleEdit;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ShufflePreviewTemplate } from \"themes/administration/shuffle/pages\";\r\nimport { ShufflePreviewViewStore } from \"administration/shuffle/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new ShufflePreviewViewStore(rootStore, componentProps),\r\n \"shufflePreviewViewStore\"\r\n)\r\n@observer\r\nclass ShufflePreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ShufflePreview;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n StationShuffleEdit,\r\n PodcastShuffleEdit,\r\n NakiNigunShuffleEdit,\r\n ShuffleList,\r\n ShufflePreview,\r\n} from \"administration/shuffle/pages\";\r\nimport {\r\n StationShuffleEditRouteStore,\r\n PodcastShuffleEditRouteStore,\r\n NakiNigunShuffleEditRouteStore,\r\n ShuffleListRouteStore,\r\n ShufflePreviewRouteStore,\r\n} from \"administration/shuffle/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"Shuffle\",\r\n routes: [\r\n {\r\n name: \"master.administration.shuffle\",\r\n pattern: \"/shuffle\",\r\n children: [\r\n {\r\n name: \"master.administration.shuffle.create-station\",\r\n pattern: \"/create-station\",\r\n component: StationShuffleEdit,\r\n store: StationShuffleEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.shuffle.edit-station\",\r\n pattern: \"/:id/edit-station\",\r\n component: StationShuffleEdit,\r\n store: StationShuffleEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.shuffle.create-podcast\",\r\n pattern: \"/create-podcast\",\r\n component: PodcastShuffleEdit,\r\n store: PodcastShuffleEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.shuffle.edit-podcast\",\r\n pattern: \"/:id/edit-podcast\",\r\n component: PodcastShuffleEdit,\r\n store: PodcastShuffleEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.shuffle.create-naki-nigun\",\r\n pattern: \"/create-naki-nigun\",\r\n component: NakiNigunShuffleEdit,\r\n store: NakiNigunShuffleEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.shuffle.edit-naki-nigun\",\r\n pattern: \"/:id/edit-naki-nigun\",\r\n component: NakiNigunShuffleEdit,\r\n store: NakiNigunShuffleEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.shuffle.list\",\r\n pattern: \"\",\r\n component: ShuffleList,\r\n store: ShuffleListRouteStore,\r\n data: {\r\n title: \"Shuffles\",\r\n },\r\n },\r\n {\r\n name: \"master.administration.shuffle.preview\",\r\n pattern: \"/:id\",\r\n component: ShufflePreview,\r\n store: ShufflePreviewRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.SHUFFLE\",\r\n order: 5,\r\n icon: \"shuffles\",\r\n route: \"master.administration.shuffle.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React, { useState, useCallback } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst StationPromoEditLoaderTemplate = (props) => {\r\n const screenWidth = window.innerWidth;\r\n const loaderHeight = screenWidth > 766 ? 250 : 450;\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 {screenWidth > 766 ? (\r\n \r\n \r\n \r\n\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n ) : (\r\n \r\n \r\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 StationPromoEditLoaderTemplate;\r\n","import React, { useState, useCallback } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst StationsPreviewDescriptionLoaderTemplate = (props) => {\r\n const screenWidth = window.innerWidth;\r\n const loaderHeight = screenWidth > 766 ? 220 : 330;\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 {screenWidth > 766 ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\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 StationsPreviewDescriptionLoaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { StatsWidget } from \"administration/analytics/components\";\r\n\r\nfunction StationAnalyticsStatsWidgetTemplate({ stationAnalyticsStatsWidgetViewStore, t }) {\r\n return ;\r\n}\r\n\r\nStationAnalyticsStatsWidgetTemplate.propTypes = {\r\n stationAnalyticsStatsWidgetViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default StationAnalyticsStatsWidgetTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFileUpload, MrbImage } from \"mrb/components/media\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport coverPlaceholder from \"themes/assets/images/placeholder-template.svg\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UploadedImageLoader, ImageUploadNote } from \"common/components\";\r\n\r\nfunction StationCoverImageUploadTemplate({ stationCoverImageUploadViewStore, classNameExtendUpload }) {\r\n const { fileUploadStore, imageUrl, loaderStore } = stationCoverImageUploadViewStore;\r\n return (\r\n \r\n }\r\n >\r\n {() => (\r\n \r\n
\r\n
\r\n {imageUrl && }\r\n {!imageUrl && }\r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nconst UploadFooter = observer(function UploadFooter({ store }) {\r\n const { imageUrl, uploadImage, remove, loaderStore } = store;\r\n\r\n return (\r\n \r\n {imageUrl ? (\r\n
\r\n \r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n});\r\n\r\nStationCoverImageUploadTemplate.propTypes = {\r\n stationCoverImageUploadViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(StationCoverImageUploadTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { CoverImageUpload, FieldRichTextEditor } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction StationPromoEditTemplate({ stationPromoEditViewStore, t }) {\r\n const { form, promoImageUploadViewStore } = stationPromoEditViewStore;\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\nStationPromoEditTemplate.propTypes = {\r\n stationPromoEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(StationPromoEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { Image, HTMLRender } from \"common/components\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction StationPromoPreviewTemplate({ stationPromoPreviewViewStore, t }) {\r\n const { item, coverImageUrl } = stationPromoPreviewViewStore;\r\n if (isNil(item)) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.FIELDS.PROMO.DESCRIPTION\")}\r\n

\r\n {item.description}\r\n
\r\n
\r\n );\r\n}\r\n\r\nStationPromoPreviewTemplate.propTypes = {\r\n stationPromoPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default StationPromoPreviewTemplate;\r\n","import React from \"react\";\r\nimport { StationPromoEditLoaderTemplate } from \"themes/administration/station/components\";\r\n\r\nclass StationPromoEditLoader extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationPromoEditLoader;\r\n","import React from \"react\";\r\nimport { StationsPreviewDescriptionLoaderTemplate } from \"themes/administration/station/components\";\r\n\r\nclass StationsPreviewDescriptionLoader extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationsPreviewDescriptionLoader;\r\n","import { action, computed, makeObservable, observable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { MrbContentLoaderStore } from \"mrb/components/loader\";\r\nimport { MrbFileUploadViewStore } from \"mrb/components/media\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\nimport { head } from \"lodash\";\r\n\r\nclass StationCoverImageUploadViewStore extends MrbBaseViewStore {\r\n @computed get file() {\r\n return head(this.fileUploadStore.files);\r\n }\r\n\r\n @observable uploadedFileId = null;\r\n\r\n @observable.ref imageUrl = null;\r\n\r\n @observable hasChanged = false;\r\n\r\n constructor(rootStore, routeStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.loaderStore = new MrbContentLoaderStore({\r\n suspendRenderOnInit: false,\r\n });\r\n this.fileUploadStore = new MrbFileUploadViewStore(this.rootStore, {\r\n acceptedFiles: \"image/jpeg, image/png, image/gif\",\r\n maxSize: 2000000,\r\n showValidation: false,\r\n errorsMap: {\r\n \"file-invalid-type\": () => {\r\n return \"File type must be .jpg, .png or .gif\";\r\n },\r\n \"file-too-large\": () => {\r\n return \"File is larger than 2MB\";\r\n },\r\n },\r\n });\r\n\r\n this.reaction(\r\n () => this.file,\r\n (file) => {\r\n if (file) {\r\n this.uploadFile(file);\r\n } else {\r\n this.setUploadedFileId(null);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.uploadedFileId,\r\n (id) => {\r\n if (id) {\r\n this.setImageUrl(this.routeStore.getMediaVaultFileUrl(id));\r\n } else {\r\n this.setImageUrl(null);\r\n }\r\n }\r\n );\r\n\r\n this.uploadImage = this.uploadImage.bind(this);\r\n this.remove = this.remove.bind(this);\r\n }\r\n\r\n @action.bound\r\n async uploadFile(file) {\r\n try {\r\n this.loaderStore.suspend();\r\n const mediaVaultFile = await this.routeStore.uploadImageFile(file);\r\n runInAction(() => {\r\n this.setUploadedFileId(mediaVaultFile.id);\r\n this.loaderStore.resume();\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to upload image. Please contact the support team.\",\r\n err\r\n );\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n @action.bound\r\n setUploadedFileId(fileId) {\r\n this.uploadedFileId = fileId;\r\n this.hasChanged = true;\r\n }\r\n\r\n @action.bound\r\n setImageUrl(url) {\r\n if (url) {\r\n this.imageUrl = this.createAuthenticatedImageUrl(url);\r\n } else {\r\n this.imageUrl = null;\r\n }\r\n }\r\n\r\n uploadImage = (event) => {\r\n this.fileUploadStore.raiseBrowse(event);\r\n };\r\n\r\n remove = () => {\r\n this.setImageUrl(null);\r\n this.setUploadedFileId(null);\r\n this.fileUploadStore.clear();\r\n };\r\n\r\n createAuthenticatedImageUrl = (baseUrl) => {\r\n return createBaasicAuthenticatedMediaVaultUrl(this.rootStore, baseUrl, {\r\n width: 400,\r\n height: 400,\r\n });\r\n };\r\n}\r\n\r\nexport default StationCoverImageUploadViewStore;\r\n","import { BaseCoverImageUploadViewStore } from \"common/stores\";\r\n\r\nclass StationPromoImageUploadViewStore extends BaseCoverImageUploadViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n uploadImageToMediaVault(file) {\r\n return this.routeStore.uploadImageFile(file);\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n return this.routeStore.getMediaVaultFileUrl(id);\r\n }\r\n}\r\n\r\nexport default StationPromoImageUploadViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport {\r\n StationService,\r\n StationFileStreamService,\r\n MediaVaultStreamService,\r\n LocationService,\r\n LanguageService,\r\n GenreLookupService,\r\n} from \"common/services\";\r\nimport moment from \"moment\";\r\n\r\nclass StationEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(StationService);\r\n this.stationFileStreamService = rootStore.createApplicationService(StationFileStreamService);\r\n this.mediaVaultStreamService = new MediaVaultStreamService(\r\n this.rootStore.apiClient,\r\n this.rootStore.application.baasic\r\n );\r\n this.locationService = this.rootStore.createApplicationService(LocationService);\r\n this.languageService = this.rootStore.createApplicationService(LanguageService);\r\n this.genreLookupService = this.rootStore.createApplicationService(GenreLookupService);\r\n }\r\n\r\n async getStation(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"location,language,genres,stationPromo\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async createStation(data) {\r\n const response = await this.service.create(data);\r\n return response.data;\r\n }\r\n\r\n async updateStation(data) {\r\n const response = await this.service.update(data);\r\n return response.data;\r\n }\r\n\r\n getStationCoverImageUrl(coverImageId) {\r\n return this.stationFileStreamService.routeService.get(coverImageId);\r\n }\r\n\r\n async findGenres(searchPhrase) {\r\n const response = await this.genreLookupService.find(searchPhrase);\r\n return response.data;\r\n }\r\n\r\n async findLocations(searchPhrase) {\r\n const response = await this.locationService.find(searchPhrase);\r\n return response.data;\r\n }\r\n\r\n async createLocation(resource) {\r\n const response = await this.locationService.create(resource);\r\n return response.data;\r\n }\r\n\r\n async createLanguage(resource) {\r\n const response = await this.languageService.create(resource);\r\n return response.data;\r\n }\r\n\r\n async createGenre(resource) {\r\n const response = await this.genreLookupService.create(resource);\r\n return response.data;\r\n }\r\n\r\n async findLanguages(searchPhrase) {\r\n const response = await this.languageService.find(searchPhrase);\r\n return response.data;\r\n }\r\n\r\n async uploadImageFile(file) {\r\n const now = moment();\r\n const [name, extension] = file.name.split(\".\");\r\n const path = `${name}_${now.year()}-${now.month()}-${now.date()}-${now.hour()}-${now.minute()}-${now.second()}.${extension}`;\r\n const response = await this.mediaVaultStreamService.create(\r\n {\r\n path: path,\r\n fileName: file.name,\r\n },\r\n file\r\n );\r\n return response.data;\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n return this.mediaVaultStreamService.mediaVaultModule.streams.routeDefinition.get(id);\r\n }\r\n}\r\n\r\nexport default StationEditRouteStore;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class StationForm 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: \"title\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.TITLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.TITLE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"description\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.DESCRIPTION_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.DESCRIPTION_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"alternativeDescription\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.PORTAL_DESCRIPTION_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.PORTAL_DESCRIPTION_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"premiumInfo\",\r\n label: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PREMIUM_INFO_LABEL\",\r\n placeholder: \"ADMINISTRATION.PODCAST.EDIT.FIELDS.PREMIUM_INFO_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"descriptionLink\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.DESCRIPTION_LINK_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.DESCRIPTION_LINK_PLACEHOLDER\",\r\n rules: \"string|url\",\r\n },\r\n {\r\n name: \"streamUrl\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.STREAM_URL_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.STREAM_URL_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_ACTIVE_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_ACTIVE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isFeatured\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_FEATURED_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_FEATURED_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isPremium\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_PREMIUM_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_PREMIUM_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isVisible\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_VISIBLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_VISIBLE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefault\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefaultInApp\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_APP_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_APP_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefaultInEmbeddedApp\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_EMBEDDED_APP_LABEL\",\r\n placeholder:\r\n \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_EMBEDDED_APP_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"overrideRadioUsersSettings\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"overrideAppUsersSettings\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isVisibleInApp\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_VISIBLE_IN_APP\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_VISIBLE_IN_APP\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isVisibleInEmbeddedApp\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_VISIBLE_IN_EMBEDDED_APP\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.IS_VISIBLE_IN_EMBEDDED_APP\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"excludedFromRevenue\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.EXCLUDED_FROM_REVENUE\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.EXCLUDED_FROM_REVENUE\",\r\n type: \"checkbox\",\r\n value: false,\r\n },\r\n {\r\n name: \"locationId\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.LOCATION_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.LOCATION_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"languageId\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.LANGUAGE_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.LANGUAGE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"genreIds\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.GENRE_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.GENRE_PLACEHOLDER\",\r\n },\r\n {\r\n name: \"keywords\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.KEYWORDS_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.KEYWORDS_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"stationPromo\",\r\n fields: [\r\n {\r\n name: \"promoImageFileEntryId\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.PROMO.PROMO_IMAGE_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.PROMO.PROMO_IMAGE_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"description\",\r\n label: \"ADMINISTRATION.STATION.EDIT.FIELDS.PROMO.DESCRIPTION_LABEL\",\r\n placeholder: \"ADMINISTRATION.STATION.EDIT.FIELDS.PROMO.DESCRIPTION_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { observable, runInAction, makeObservable } from \"mobx\";\r\nimport { MrbFieldSelectStore } from \"mrb/components/select\";\r\nimport { StationEditForm } from \"administration/station/forms\";\r\nimport { StationCoverImageUploadViewStore, StationPromoEditViewStore } from \"administration/station/stores\";\r\nimport { map, isEmpty } from \"lodash\";\r\n\r\nclass StationEditViewStore extends MrbBaseEditViewStore {\r\n @observable overrideRadioUsersSettingsIsVisible = false;\r\n @observable overrideAppUsersSettingsIsVisible = false;\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: \"station\",\r\n FormClass: StationEditForm,\r\n autoFocusField: \"title\",\r\n navigateBack: \"master.administration.station.list\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n redirectOnCreateSuccess: ({ id }) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.station.preview\", { id: id }),\r\n redirectOnUpdateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.station.preview\", { id: this.id }),\r\n });\r\n\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.stationPromoEditViewStore = new StationPromoEditViewStore(rootStore, {\r\n stationEditViewStore: this,\r\n form: this.form,\r\n });\r\n this.coverImageUploadViewStore = new StationCoverImageUploadViewStore(rootStore, this.routeStore);\r\n\r\n this.locationSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findLocations(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createLocation({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"locationId\")\r\n );\r\n\r\n this.languageSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findLanguages(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createLanguage({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"languageId\")\r\n );\r\n\r\n this.genreSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n isMulti: true,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findGenres(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createGenre({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"genreIds\")\r\n );\r\n\r\n if (this.isEdit) {\r\n this.reaction(\r\n () => this.form.$(\"isTurnedOnByDefault\").value,\r\n (isTurnedOnByDefault) => {\r\n if (isTurnedOnByDefault !== this.item.isTurnedOnByDefault) {\r\n runInAction(() => {\r\n this.overrideRadioUsersSettingsIsVisible = true;\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.overrideRadioUsersSettingsIsVisible = false;\r\n this.form.$(\"overrideRadioUsersSettings\").value = false;\r\n });\r\n }\r\n }\r\n );\r\n this.reaction(\r\n () => this.form.$(\"isTurnedOnByDefaultInApp\").value,\r\n (isTurnedOnByDefault) => {\r\n if (isTurnedOnByDefault !== this.item.isTurnedOnByDefaultInApp) {\r\n runInAction(() => {\r\n this.overrideAppUsersSettingsIsVisible = true;\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.overrideAppUsersSettingsIsVisible = false;\r\n this.form.$(\"overrideAppUsersSettings\").value = false;\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n this.reaction(\r\n () => this.form.$(\"isPremium\").value,\r\n (isPremium) => {\r\n if (!isPremium) {\r\n this.form.$(\"premiumInfo\").set(null);\r\n }\r\n }\r\n );\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getStation(id);\r\n }\r\n\r\n setItem(item) {\r\n super.setItem(item);\r\n this.locationSelectStore.setSelectedItem(item.location);\r\n this.languageSelectStore.setSelectedItem(item.language);\r\n this.genreSelectStore.setSelectedItem(item.genres);\r\n }\r\n\r\n updateForm(values) {\r\n this.form.set({\r\n ...values,\r\n genreIds: values.genres ? map(values.genres, (genre) => genre.id) : null,\r\n });\r\n }\r\n\r\n resetForm() {\r\n this.form.set({\r\n isActive: true,\r\n isVisible: true,\r\n isVisibleInApp: true,\r\n });\r\n }\r\n\r\n async onInit() {\r\n await this.initializeResource();\r\n if (this.isEdit) {\r\n if (this.item.coverImageId) {\r\n this.coverImageUploadViewStore.setImageUrl(\r\n this.routeStore.getStationCoverImageUrl(this.item.coverImageId)\r\n );\r\n }\r\n if (this.item.stationPromo && this.item.stationPromo.promoImageFileEntryId) {\r\n this.stationPromoEditViewStore.promoImageUploadViewStore.setImageUrl(\r\n this.routeStore.getStationCoverImageUrl(this.item.stationPromo.promoImageFileEntryId)\r\n );\r\n }\r\n }\r\n }\r\n\r\n create(data) {\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n this.updatePremiumInfo(data);\r\n this.updateStationPromo(data);\r\n return this.routeStore.createStation(data);\r\n }\r\n\r\n updatePremiumInfo(data) {\r\n if (!data.isPremium && data.premiumInfo?.length > 0) {\r\n data.premiumInfo = null;\r\n }\r\n }\r\n\r\n updateStationPromo(data) {\r\n if (\r\n isEmpty(data.stationPromo.description) &&\r\n isEmpty(this.stationPromoEditViewStore.promoImageUploadViewStore.uploadedFileId)\r\n ) {\r\n delete data.stationPromo;\r\n } else {\r\n data.stationPromo.promoImageFileEntryId =\r\n this.stationPromoEditViewStore.promoImageUploadViewStore.uploadedFileId;\r\n }\r\n }\r\n\r\n async update(data) {\r\n if (this.coverImageUploadViewStore.hasChanged) {\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n } else {\r\n data.coverImageId = this.item.coverImageId;\r\n }\r\n this.updatePremiumInfo(data);\r\n this.updateStationPromo(data);\r\n await this.routeStore.updateStation(data);\r\n }\r\n\r\n onCreateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to create station.\", err);\r\n }\r\n\r\n onUpdateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to update station.\", err);\r\n }\r\n\r\n onDestroy() {\r\n this.coverImageUploadViewStore.destroy();\r\n this.stationPromoEditViewStore.destroy();\r\n }\r\n}\r\n\r\nexport default StationEditViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { StationPromoImageUploadViewStore } from \"administration/station/stores\";\r\n\r\nclass StationPromoEditViewStore extends MrbBaseViewStore {\r\n form = null;\r\n\r\n constructor(rootStore, { stationEditViewStore, form }) {\r\n super(rootStore);\r\n\r\n this.form = form;\r\n this.stationEditViewStore = stationEditViewStore;\r\n this.routeStore = stationEditViewStore.routeStore;\r\n\r\n this.promoImageUploadViewStore = new StationPromoImageUploadViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n width: 200,\r\n height: 200,\r\n });\r\n }\r\n}\r\n\r\nexport default StationPromoEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { StationService } from \"common/services\";\r\n\r\nclass StationListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(StationService);\r\n }\r\n\r\n async findStations(params) {\r\n const response = await this.service.find(params);\r\n return response.data;\r\n }\r\n\r\n async deleteStation(resource) {\r\n const response = await this.service.delete(resource);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default StationListRouteStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { mrbDefaultFormats } from \"mrb/common/formatting\";\r\n\r\nclass StationListViewStore extends MrbBaseListViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n layoutActions: {\r\n create: {\r\n onClick: () => this.rootStore.routerStore.goTo(\"master.administration.station.create\"),\r\n label: \"ADMINISTRATION.STATION.LIST.BUTTONS.ADD\",\r\n },\r\n },\r\n queryConfig: {\r\n orderBy: \"title\",\r\n orderDirection: \"asc\",\r\n },\r\n });\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n onRowClick: (node) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.station.preview\", { id: node.data.id }),\r\n columns: [\r\n {\r\n key: \"title\",\r\n title: \"ADMINISTRATION.STATION.LIST.COLUMNS.TITLE\",\r\n sortable: true,\r\n },\r\n {\r\n key: \"isActive\",\r\n title: \"ADMINISTRATION.STATION.LIST.COLUMNS.STATUS\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Active\",\r\n falseLabel: \"Inactive\",\r\n },\r\n },\r\n {\r\n key: \"isPremium\",\r\n title: \"ADMINISTRATION.STATION.LIST.COLUMNS.PREMIUM\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Premium\",\r\n falseLabel: \"Free\",\r\n },\r\n },\r\n {\r\n key: \"isTurnedOnByDefault\",\r\n title: \"ADMINISTRATION.STATION.LIST.COLUMNS.DEFAULT\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Enabled\",\r\n falseLabel: \"Disabled\",\r\n },\r\n },\r\n {\r\n key: \"isVisible\",\r\n title: \"ADMINISTRATION.STATION.LIST.COLUMNS.VISIBLE_ON_PORTAL\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Visible\",\r\n falseLabel: \"Hidden\",\r\n },\r\n },\r\n ],\r\n actions: {\r\n edit: {\r\n onClick: (item) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.station.edit\", { id: item.id }),\r\n label: \"ADMINISTRATION.STATION.LIST.ACTIONS.EDIT\",\r\n buttonProps: {\r\n className: \"c-btn c-btn--sml c-btn--ghost u-mar--right--tny\",\r\n },\r\n },\r\n delete: {\r\n onClick: (item) =>\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete station?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deleteStation(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 station.\",\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 label: \"ADMINISTRATION.STATION.LIST.ACTIONS.DELETE\",\r\n buttonProps: {\r\n className: \"c-btn c-btn--sml c-btn--ghost\",\r\n },\r\n },\r\n },\r\n })\r\n );\r\n }\r\n\r\n find(params) {\r\n return this.routeStore.findStations(params);\r\n }\r\n\r\n onFetchError() {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\"\r\n );\r\n }\r\n}\r\n\r\nexport default StationListViewStore;\r\n","import { BaseStatsWidgetViewStore } from \"administration/analytics/stores\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\n\r\nclass StationAnalyticsStatsWidgetViewStore extends BaseStatsWidgetViewStore {\r\n constructor(rootStore, { routeStore, stationId }) {\r\n super(rootStore, {\r\n routeName: \"master.administration.analytics.station-activity\",\r\n routeParams: { id: stationId },\r\n });\r\n this.routeStore = routeStore;\r\n this.stationId = stationId;\r\n\r\n this.setTimeRange(timeRangeType.thisMonth);\r\n }\r\n\r\n fetch(filter) {\r\n const params = {\r\n from: filter.from,\r\n to: filter.to,\r\n previousCycleFrom: filter.previousCycleFrom,\r\n previousCycleTo: filter.previousCycleTo,\r\n timeZone: filter.timeZone,\r\n };\r\n return this.routeStore.getStationAnalyticsStats(this.stationId, params);\r\n }\r\n}\r\n\r\nexport default StationAnalyticsStatsWidgetViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { StationService, StationFileStreamService, StationAnalyticsService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass StationPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(StationService);\r\n this.stationFileStreamService = this.rootStore.createApplicationService(StationFileStreamService);\r\n this.stationAnalyticsService = this.rootStore.createApplicationService(StationAnalyticsService);\r\n }\r\n\r\n async getStation(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"location,language,genres,stationPromo\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async getStationAnalyticsStats(id, options) {\r\n const response = await this.stationAnalyticsService.getStationStats(id, options);\r\n return response.data;\r\n }\r\n\r\n async updateExcludedFromRevenueStatus(id, excludedFromRevenue) {\r\n const response = await this.service.updateExcludedFromRevenueStatus(id, excludedFromRevenue);\r\n return response.data;\r\n }\r\n\r\n async updateActiveStatus(id, isActive) {\r\n const response = await this.service.updateActiveStatus(id, isActive);\r\n return response.data;\r\n }\r\n\r\n async updatePremiumStatus(id, isPremium) {\r\n const response = await this.service.updatePremiumStatus(id, isPremium);\r\n return response.data;\r\n }\r\n\r\n async updateOnByDefaultStatus(id, isOnByDefault) {\r\n const response = await this.service.updateOnByDefaultStatus(id, isOnByDefault);\r\n return response.data;\r\n }\r\n\r\n async updateOnByDefaultInAppStatus(id, isOnByDefault) {\r\n const response = await this.service.updateOnByDefaultInAppStatus(id, isOnByDefault);\r\n return response.data;\r\n }\r\n\r\n async updateOnByDefaultInNakiTouchStatus(id, isOnByDefault) {\r\n const response = await this.service.updateOnByDefaultInNakiTouchStatus(id, isOnByDefault);\r\n return response.data;\r\n }\r\n\r\n async updateVisibilityStatus(id, isVisible) {\r\n const response = await this.service.updateVisibilityStatus(id, isVisible);\r\n return response.data;\r\n }\r\n\r\n async updateAppVisibilityStatus(id, isVisible) {\r\n const response = await this.service.updateAppVisibilityStatus(id, isVisible);\r\n return response.data;\r\n }\r\n\r\n async updateNakiTouchVisibilityStatus(id, isVisible) {\r\n const response = await this.service.updateNakiTouchVisibilityStatus(id, isVisible);\r\n return response.data;\r\n }\r\n\r\n async updateFeaturedStatus(id, isFeatured) {\r\n const response = await this.service.updateFeaturedStatus(id, isFeatured);\r\n return response.data;\r\n }\r\n\r\n async deleteStation(resource) {\r\n const response = await this.service.delete(resource);\r\n return response.data;\r\n }\r\n\r\n createStationCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.stationFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default StationPreviewRouteStore;\r\n","import { action, computed, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBasePreviewViewStore } from \"mrb/core\";\r\n\r\nclass StationPreviewViewStore extends MrbBasePreviewViewStore {\r\n @computed get coverImageUrl() {\r\n if (this.item && this.item.coverImageId) {\r\n return this.routeStore.createStationCoverImageUrl(this.item.coverImageId, 200, 200);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n id: id,\r\n layoutActions: {\r\n edit: {\r\n onClick: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.station.edit\", { id: this.item.id }),\r\n label: \"ADMINISTRATION.STATION.PREVIEW.BUTTONS.EDIT\",\r\n className: \"c-btn c-btn--base c-btn--primary\",\r\n },\r\n },\r\n navigateBack: \"master.administration.station.list\",\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getStation(id);\r\n }\r\n\r\n @action.bound\r\n async toggleIsActive(value) {\r\n const oldValue = this.item.isActive;\r\n this.item.isActive = value;\r\n try {\r\n await this.routeStore.updateActiveStatus(this.item.id, this.item.isActive);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isActive = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change status\", err);\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async togglePremiumStatus(value) {\r\n const oldValue = this.item.isPremium;\r\n this.item.isPremium = value;\r\n try {\r\n await this.routeStore.updatePremiumStatus(this.item.id, this.item.isPremium);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isPremium = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change premium\", err);\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleExcludedFromRevenueStatus(value) {\r\n const oldValue = this.item.excludedFromRevenue;\r\n this.item.excludedFromRevenue = value;\r\n try {\r\n await this.routeStore.updateExcludedFromRevenueStatus(this.item.id, this.item.excludedFromRevenue);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.excludedFromRevenue = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change status\", err);\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultStatus(value) {\r\n const oldValue = this.item.isTurnedOnByDefault;\r\n this.item.isTurnedOnByDefault = value;\r\n try {\r\n await this.routeStore.updateOnByDefaultStatus(this.item.id, this.item.isTurnedOnByDefault);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isTurnedOnByDefault = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultInAppStatus(value) {\r\n const oldValue = this.item.isTurnedOnByDefaultInApp;\r\n this.item.isTurnedOnByDefaultInApp = value;\r\n try {\r\n await this.routeStore.updateOnByDefaultInAppStatus(this.item.id, this.item.isTurnedOnByDefaultInApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isTurnedOnByDefaultInApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultInNakiTouchStatus(value) {\r\n const oldValue = this.item.isTurnedOnByDefaultInEmbeddedApp;\r\n this.item.isTurnedOnByDefaultInEmbeddedApp = value;\r\n try {\r\n await this.routeStore.updateOnByDefaultInNakiTouchStatus(\r\n this.item.id,\r\n this.item.isTurnedOnByDefaultInEmbeddedApp\r\n );\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isTurnedOnByDefaultInEmbeddedApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleVisibilityStatus(value) {\r\n const oldValue = this.item.isVisible;\r\n this.item.isVisible = value;\r\n try {\r\n await this.routeStore.updateVisibilityStatus(this.item.id, this.item.isVisible);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isVisible = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleAppVisibilityStatus(value) {\r\n const oldValue = this.item.isVisibleInApp;\r\n this.item.isVisibleInApp = value;\r\n try {\r\n await this.routeStore.updateAppVisibilityStatus(this.item.id, this.item.isVisibleInApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isVisibleInApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change app visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleNakiTouchVisibilityStatus(value) {\r\n const oldValue = this.item.isVisibleInEmbeddedApp;\r\n this.item.isVisibleInEmbeddedApp = value;\r\n try {\r\n await this.routeStore.updateNakiTouchVisibilityStatus(this.item.id, this.item.isVisibleInEmbeddedApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isVisibleInEmbeddedApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change Naki Bolt visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleFeaturedStatus(value) {\r\n const oldValue = this.item.isFeatured;\r\n this.item.isFeatured = value;\r\n try {\r\n await this.routeStore.updateFeaturedStatus(this.item.id, this.item.isFeatured);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isFeatured = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change featured status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async deleteStation() {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete station?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deleteStation(this.item);\r\n this.rootStore.routerStore.goTo(\"master.administration.station.list\");\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred. Unable to delete station.\",\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 StationPreviewViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { computed, makeObservable } from \"mobx\";\r\n\r\nclass StationPromoPreviewViewStore extends MrbBaseViewStore {\r\n @computed get coverImageUrl() {\r\n if (this.item && this.item.coverImageId) {\r\n return this.routeStore.createStationCoverImageUrl(this.item.coverImageId, 200, 200);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n constructor(rootStore, { routeStore, item }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.item = item;\r\n }\r\n}\r\n\r\nexport default StationPromoPreviewViewStore;\r\n","import React from \"react\";\r\nimport { StationAnalyticsStatsWidgetTemplate } from \"themes/administration/station/components\";\r\nimport { StationAnalyticsStatsWidgetViewStore } from \"administration/station/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new StationAnalyticsStatsWidgetViewStore(rootStore, componentProps),\r\n \"stationAnalyticsStatsWidgetViewStore\"\r\n)\r\nclass StationAnalyticsStatsWidget extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationAnalyticsStatsWidget;","import React from \"react\";\r\nimport { StationCoverImageUploadTemplate } from \"themes/administration/station/components\";\r\n\r\nclass StationCoverImageUpload extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationCoverImageUpload;\r\n","import React from \"react\";\r\nimport { StationPromoEditTemplate } from \"themes/administration/station/components\";\r\n\r\nclass StationPromoEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationPromoEdit;\r\n","import React from \"react\";\r\nimport { StationPromoPreviewTemplate } from \"themes/administration/station/components\";\r\nimport { StationPromoPreviewViewStore } from \"administration/station/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new StationPromoPreviewViewStore(rootStore, componentProps),\r\n \"stationPromoPreviewViewStore\"\r\n)\r\nclass StationPromoPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationPromoPreview;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbFieldTextArea, MrbFieldToggle, MrbEditPage, MrbFieldSelect } from \"mrb/components\";\r\nimport { StationCoverImageUpload, StationPromoEdit, StationPromoEditLoader } from \"administration/station/components\";\r\nimport { MrbFileUploadValidation } from \"mrb/components/media\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { CoverImageUploadLoader, AddStationsOrPodcastsLoader, FieldRichTextEditor } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction StationEditTemplate({ stationEditViewStore, t }) {\r\n const {\r\n form,\r\n coverImageUploadViewStore,\r\n loaderStore,\r\n locationSelectStore,\r\n languageSelectStore,\r\n genreSelectStore,\r\n stationPromoEditViewStore,\r\n overrideRadioUsersSettingsIsVisible,\r\n overrideAppUsersSettingsIsVisible,\r\n } = stationEditViewStore;\r\n const { fileUploadStore } = coverImageUploadViewStore;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n {form.$(\"isPremium\").value ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n\r\n {overrideRadioUsersSettingsIsVisible ? (\r\n \r\n ) : null}\r\n \r\n\r\n {overrideAppUsersSettingsIsVisible ? (\r\n \r\n ) : null}\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n }>\r\n {() => (\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n

Mobile App Promo Widget

\r\n\r\n
\r\n }>\r\n {() => }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nStationEditTemplate.propTypes = {\r\n stationEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(StationEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbListPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction StationListTemplate({ stationListViewStore, t }) {\r\n const { gridStore, queryUtility } = stationListViewStore;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nStationListTemplate.propTypes = {\r\n stationListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(StationListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbToggle } from \"mrb/components/checkbox\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport {\r\n StationAnalyticsStatsWidget,\r\n StationPromoPreview,\r\n StationsPreviewDescriptionLoader,\r\n} from \"administration/station/components\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport {\r\n PreviewContentLoader,\r\n HTMLRender,\r\n Genres,\r\n DescriptionLoader,\r\n ToggleActionsLoader,\r\n Image,\r\n} from \"common/components\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction StationPreviewTemplate({ stationPreviewViewStore, t }) {\r\n const {\r\n item,\r\n coverImageUrl,\r\n toggleIsActive,\r\n togglePremiumStatus,\r\n toggleOnByDefaultStatus,\r\n toggleOnByDefaultInAppStatus,\r\n toggleOnByDefaultInNakiTouchStatus,\r\n toggleVisibilityStatus,\r\n toggleFeaturedStatus,\r\n toggleAppVisibilityStatus,\r\n toggleExcludedFromRevenueStatus,\r\n toggleNakiTouchVisibilityStatus,\r\n loaderStore,\r\n deleteStation,\r\n id,\r\n routeStore,\r\n } = stationPreviewViewStore;\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 {t(\"ADMINISTRATION.STATION.PREVIEW.FIELDS.TITLE\")}\r\n

\r\n

{item.title}

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

\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.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\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.FIELDS.PORTAL_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 {t(\"ADMINISTRATION.STATION.PREVIEW.FIELDS.PREMIUM_INFO\")}\r\n

\r\n \r\n {item.premiumInfo || \"-\"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n }\r\n >\r\n {() => (\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.FIELDS.STREAM_URL\")}\r\n

\r\n \r\n {item.streamUrl}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.FIELDS.LOCATION\")}\r\n

\r\n

\r\n {item.location && item.location.name ? item.location.name : \"-\"}\r\n

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

\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.FIELDS.LANGUAGE\")}\r\n

\r\n

\r\n {item.language && item.language.name ? item.language.name : \"-\"}\r\n

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

\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.FIELDS.GENRES\")}\r\n

\r\n {item.genres && item.genres.length > 0 ? (\r\n \r\n ) : (\r\n \"-\"\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.FIELDS.DESCRIPTION\")}\r\n

\r\n

{item.description}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n\r\n }\r\n >\r\n {() => (\r\n \r\n {!isNil(item.stationPromo) ? (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : null}\r\n
\r\n )}\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.BUTTONS.STATUS\")}\r\n
\r\n toggleIsActive(event.target.checked)}\r\n />\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.BUTTONS.PREMIUM\")}\r\n
\r\n togglePremiumStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.BUTTONS.MAKE_DEFAULT\")}\r\n
\r\n toggleOnByDefaultStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.BUTTONS.VISIBLE_IN_APP\")}\r\n
\r\n \r\n toggleAppVisibilityStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.BUTTONS.MAKE_DEFAULT_IN_APP\")}\r\n
\r\n \r\n toggleOnByDefaultInAppStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.BUTTONS.VISIBLE_ON_PORTAL\")}\r\n
\r\n toggleVisibilityStatus(event.target.checked)}\r\n />\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.BUTTONS.FEATURED_ON_PORTAL\")}\r\n
\r\n toggleFeaturedStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\r\n \"ADMINISTRATION.STATION.PREVIEW.BUTTONS.VISIBLE_IN_EMBEDDED_APP\"\r\n )}\r\n
\r\n \r\n toggleNakiTouchVisibilityStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n\r\n
\r\n
\r\n {t(\r\n \"ADMINISTRATION.STATION.PREVIEW.BUTTONS.MAKE_DEFAULT_IN_EMBEDDED_APP\"\r\n )}\r\n
\r\n \r\n toggleOnByDefaultInNakiTouchStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.BUTTONS.EXCLUDED_FROM_REVENUE\")}\r\n
\r\n \r\n toggleExcludedFromRevenueStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.STATION.PREVIEW.DELETE_LABEL\")}\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nStationPreviewTemplate.propTypes = {\r\n stationPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(StationPreviewTemplate);\r\n","import React from \"react\";\r\nimport { StationEditTemplate } from \"themes/administration/station/pages\";\r\nimport { StationEditViewStore } from \"administration/station/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new StationEditViewStore(rootStore, componentProps),\r\n \"stationEditViewStore\"\r\n)\r\nclass StationEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationEdit;\r\n","import React from \"react\";\r\nimport { StationListTemplate } from \"themes/administration/station/pages\";\r\nimport { StationListViewStore } from \"administration/station/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new StationListViewStore(rootStore, componentProps),\r\n \"stationListViewStore\"\r\n)\r\nclass StationList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationList;\r\n","import React from \"react\";\r\nimport { StationPreviewTemplate } from \"themes/administration/station/pages\";\r\nimport { StationPreviewViewStore } from \"administration/station/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new StationPreviewViewStore(rootStore, componentProps),\r\n \"stationPreviewViewStore\"\r\n)\r\nclass StationPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationPreview;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n StationEdit,\r\n StationList,\r\n StationPreview,\r\n} from \"administration/station/pages\";\r\nimport {\r\n StationEditRouteStore,\r\n StationListRouteStore,\r\n StationPreviewRouteStore,\r\n} from \"administration/station/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"Station\",\r\n routes: [\r\n {\r\n name: \"master.administration.station\",\r\n pattern: \"/station\",\r\n children: [\r\n {\r\n name: \"master.administration.station.create\",\r\n pattern: \"/create\",\r\n component: StationEdit,\r\n store: StationEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.station.edit\",\r\n pattern: \"/:id/edit\",\r\n component: StationEdit,\r\n store: StationEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.station.list\",\r\n pattern: \"\",\r\n component: StationList,\r\n store: StationListRouteStore,\r\n data: {\r\n title: \"ADMINISTRATION.STATION.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.administration.station.preview\",\r\n pattern: \"/:id\",\r\n component: StationPreview,\r\n store: StationPreviewRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.STATION\",\r\n order: 2,\r\n icon: \"stations\",\r\n route: \"master.administration.station.list\",\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 {\r\n AnalyticsTimeRange,\r\n DeviceActivitySummary,\r\n PortalUserDevice,\r\n TopTrendingPodcasts,\r\n TopTrendingStations,\r\n PortalNewDevices,\r\n TopTrendingNakiNigunAlbums,\r\n} from \"administration/analytics/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction AnalyticsDashboardTemplate({ analyticsDashboardViewStore, t }) {\r\n const {\r\n analyticsTimeRangeViewStore,\r\n deviceActivitySummaryViewStore,\r\n topTrendingPodcastsViewStore,\r\n topTrendingStationsViewStore,\r\n topTrendingNakiNigunAlbumsViewStore,\r\n portalViewStore,\r\n } = analyticsDashboardViewStore;\r\n\r\n return (\r\n \r\n \r\n
Analytics
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nAnalyticsDashboardTemplate.propTypes = {\r\n analyticsDashboardViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(AnalyticsDashboardTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { AnalyticsLayout } from \"administration/analytics/layouts\";\r\nimport { TrendingListItem, TopTrendingListViewMoreLoader } from \"administration/analytics/components\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { StatsWidgetEmptyState } from \"common/components/empty-state\";\r\nimport { MrbRadioButtons } from \"baasic-react-bootstrap/src\";\r\n\r\nfunction TrendingStationListTemplate({ trendingStationListViewStore, t }) {\r\n const { analyticsTimeRangeViewStore, gridStore, filterOptions, selectedFilterOption, setFilterOption } =\r\n trendingStationListViewStore;\r\n return (\r\n \r\n
\r\n

Trending stations list

\r\n
\r\n \r\n
\r\n
\r\n
\r\n Position\r\n Station\r\n \r\n Previous Position\r\n \r\n Playbacks\r\n
\r\n }\r\n loadMoreLoader={}\r\n emptyStateRenderer={() => (\r\n \r\n )}\r\n classNameOverride=\"\"\r\n store={gridStore}\r\n cellRenderer={(props) => }\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nTrendingStationListTemplate.propTypes = {\r\n trendingStationListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(TrendingStationListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { AnalyticsLayout } from \"administration/analytics/layouts\";\r\nimport { TrendingListItem, TopTrendingListViewMoreLoader } from \"administration/analytics/components\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { StatsWidgetEmptyState } from \"common/components/empty-state\";\r\nimport { MrbRadioButtons } from \"baasic-react-bootstrap/src\";\r\n\r\nfunction TrendingPodcastListTemplate({ trendingPodcastListViewStore, t }) {\r\n const { analyticsTimeRangeViewStore, gridStore, filterOptions, selectedFilterOption, setFilterOption } =\r\n trendingPodcastListViewStore;\r\n\r\n return (\r\n \r\n
\r\n

Trending podcasts chart

\r\n
\r\n \r\n
\r\n
\r\n
\r\n Position\r\n Podcast\r\n \r\n Previous Position\r\n \r\n Playbacks\r\n
\r\n }\r\n loadMoreLoader={}\r\n emptyStateRenderer={() => (\r\n \r\n )}\r\n classNameOverride=\"\"\r\n store={gridStore}\r\n cellRenderer={(props) => }\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nTrendingPodcastListTemplate.propTypes = {\r\n trendingPodcastListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(TrendingPodcastListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { AnalyticsLayout } from \"administration/analytics/layouts\";\r\nimport { TrendingListItem, TopTrendingListViewMoreLoader } from \"administration/analytics/components\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { StatsWidgetEmptyState } from \"common/components/empty-state\";\r\nimport { MrbRadioButtons } from \"baasic-react-bootstrap/src\";\r\n\r\nfunction TrendingNakiNigunAlbumListTemplate({ trendingNakiNigunAlbumListViewStore, t }) {\r\n const { analyticsTimeRangeViewStore, gridStore, filterOptions, selectedFilterOption, setFilterOption } =\r\n trendingNakiNigunAlbumListViewStore;\r\n\r\n return (\r\n \r\n
\r\n

Trending albums chart

\r\n
\r\n \r\n
\r\n
\r\n
\r\n Position\r\n Album\r\n \r\n Previous Position\r\n \r\n Playbacks\r\n
\r\n }\r\n loadMoreLoader={}\r\n emptyStateRenderer={() => (\r\n \r\n )}\r\n classNameOverride=\"\"\r\n store={gridStore}\r\n cellRenderer={(props) => }\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nTrendingNakiNigunAlbumListTemplate.propTypes = {\r\n trendingNakiNigunAlbumListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(TrendingNakiNigunAlbumListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PortalDetailedActivity } from \"administration/analytics/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction RegisteredUsersActivityTemplate({ registeredUsersActivityViewStore, t }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nRegisteredUsersActivityTemplate.propTypes = {\r\n registeredUsersActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(RegisteredUsersActivityTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PortalDetailedActivity } from \"administration/analytics/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction RegisteredUserDevicesActivityTemplate({ registeredUserDevicesActivityViewStore, t }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nRegisteredUserDevicesActivityTemplate.propTypes = {\r\n registeredUserDevicesActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(RegisteredUserDevicesActivityTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PortalDetailedActivity } from \"administration/analytics/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction ConnectedDevicesActivityTemplate({ connectedDevicesActivityViewStore, t }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nConnectedDevicesActivityTemplate.propTypes = {\r\n connectedDevicesActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(ConnectedDevicesActivityTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PortalDetailedActivity } from \"administration/analytics/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction PremiumUsersActivityTemplate({ premiumUsersActivityViewStore, t }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nPremiumUsersActivityTemplate.propTypes = {\r\n premiumUsersActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(PremiumUsersActivityTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PortalDetailedActivity } from \"administration/analytics/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction NakiNigunAlbumActivityTemplate({ nakiNigunAlbumActivityViewStore, t }) {\r\n return (\r\n }\r\n t={t}\r\n />\r\n );\r\n}\r\n\r\nNakiNigunAlbumActivityTemplate.propTypes = {\r\n nakiNigunAlbumActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction NakiNigunAlbumNameField({ summaryData }) {\r\n let route, id, albumId;\r\n\r\n route = \"master.administration.naki-nigun.artist.preview\";\r\n id = summaryData.nakiNigunAlbum.artist.id;\r\n albumId = summaryData.nakiNigunAlbum.id;\r\n\r\n return (\r\n \r\n

Artist

\r\n {summaryData?.nakiNigunAlbum?.artist?.name && (\r\n

\r\n {summaryData.nakiNigunAlbum.artist.name}\r\n

\r\n )}\r\n

Album

\r\n

\r\n \r\n {\" \"}\r\n

\r\n {summaryData.nakiNigunAlbum.title}{\" \"}\r\n {\" \"}\r\n

\r\n \r\n

\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(NakiNigunAlbumActivityTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PortalDetailedActivity } from \"administration/analytics/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction StationActivityTemplate({ stationActivityViewStore, t }) {\r\n return (\r\n }\r\n t={t}\r\n />\r\n );\r\n}\r\n\r\nStationActivityTemplate.propTypes = {\r\n stationActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction StationNameField({ summaryData }) {\r\n return (\r\n \r\n

Station

\r\n

\r\n \r\n {summaryData.station.title}\r\n \r\n \r\n

\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(StationActivityTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PortalDetailedActivity } from \"administration/analytics/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction PodcastActivityTemplate({ podcastActivityViewStore, t }) {\r\n return (\r\n }\r\n t={t}\r\n />\r\n );\r\n}\r\n\r\nPodcastActivityTemplate.propTypes = {\r\n podcastActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction PodcastNameField({ summaryData }) {\r\n let route, id, subPodcastId;\r\n if (!isNil(summaryData.podcast.parentPodcastId)) {\r\n route = \"master.administration.podcast.preview-group\";\r\n id = summaryData.podcast.parentPodcastId;\r\n subPodcastId = summaryData.podcast.id;\r\n } else {\r\n route = \"master.administration.podcast.preview\";\r\n id = summaryData.podcast.id;\r\n }\r\n return (\r\n \r\n

Podcast

\r\n

\r\n \r\n {summaryData.podcast.title}\r\n \r\n \r\n

\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(PodcastActivityTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PortalDetailedActivity } from \"administration/analytics/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction DeviceActivityTemplate({ deviceActivityViewStore, t }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nDeviceActivityTemplate.propTypes = {\r\n deviceActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(DeviceActivityTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbSelect } from \"mrb/components/select\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport {\r\n UserAccountSummary,\r\n UserDeviceActivitySummary,\r\n UserContentListSummary,\r\n} from \"administration/analytics/components\";\r\nimport { AnalyticsLayout } from \"administration/analytics/layouts\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction UserDeviceActivityTemplate({ userDeviceActivityViewStore, t }) {\r\n const { analyticsTimeRangeViewStore, deviceSelectStore, gridStore } = userDeviceActivityViewStore;\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nUserDeviceActivityTemplate.propTypes = {\r\n userDeviceActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(UserDeviceActivityTemplate);\r\n","import React from \"react\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport {\r\n PodcastListenersList,\r\n StationListenersList,\r\n NakiNigunListenersList,\r\n} from \"administration/analytics/components\";\r\n\r\nfunction ContentStatsTemplate({ contentStatsViewStore, t }) {\r\n const { contentTypeOptions, setSelectedContentType, selectedContentType } = contentStatsViewStore;\r\n return (\r\n \r\n Content Stats\r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nfunction Content({ selectedContentType }) {\r\n if (selectedContentType === 0) {\r\n return ;\r\n } else if (selectedContentType === 1) {\r\n return ;\r\n } else if (selectedContentType === 2) {\r\n return ;\r\n }\r\n\r\n throw new Error(\"Invalid content type.\");\r\n}\r\n\r\nexport default defaultTemplate(ContentStatsTemplate);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { AnalyticsDashboardTemplate } from \"themes/administration/analytics/pages\";\r\nimport { AnalyticsDashboardViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AnalyticsDashboardViewStore(rootStore, componentProps),\r\n \"analyticsDashboardViewStore\"\r\n)\r\n@observer\r\nclass AnalyticsDashboard extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AnalyticsDashboard;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { TrendingStationListTemplate } from \"themes/administration/analytics/pages\";\r\nimport { TrendingStationListViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TrendingStationListViewStore(rootStore, componentProps),\r\n \"trendingStationListViewStore\"\r\n)\r\n@observer\r\nclass TrendingStationList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TrendingStationList;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { TrendingPodcastListTemplate } from \"themes/administration/analytics/pages\";\r\nimport { TrendingPodcastListViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TrendingPodcastListViewStore(rootStore, componentProps),\r\n \"trendingPodcastListViewStore\"\r\n)\r\n@observer\r\nclass TrendingPodcastList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TrendingPodcastList;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { TrendingNakiNigunAlbumListTemplate } from \"themes/administration/analytics/pages\";\r\nimport { TrendingNakiNigunAlbumListViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new TrendingNakiNigunAlbumListViewStore(rootStore, componentProps),\r\n \"trendingNakiNigunAlbumListViewStore\"\r\n)\r\n@observer\r\nclass TrendingNakiNigunAlbumList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default TrendingNakiNigunAlbumList;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { RegisteredUsersActivityTemplate } from \"themes/administration/analytics/pages\";\r\nimport { RegisteredUsersActivityViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new RegisteredUsersActivityViewStore(rootStore, componentProps),\r\n \"registeredUsersActivityViewStore\"\r\n)\r\n@observer\r\nclass RegisteredUsersActivity extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default RegisteredUsersActivity;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { RegisteredUserDevicesActivityTemplate } from \"themes/administration/analytics/pages\";\r\nimport { RegisteredUserDevicesActivityViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new RegisteredUserDevicesActivityViewStore(rootStore, componentProps),\r\n \"registeredUserDevicesActivityViewStore\"\r\n)\r\n@observer\r\nclass RegisteredUserDevicesActivity extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default RegisteredUserDevicesActivity;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ConnectedDevicesActivityTemplate } from \"themes/administration/analytics/pages\";\r\nimport { ConnectedDevicesActivityViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ConnectedDevicesActivityViewStore(rootStore, componentProps),\r\n \"connectedDevicesActivityViewStore\"\r\n)\r\n@observer\r\nclass ConnectedDevicesActivity extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ConnectedDevicesActivity;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { StationActivityTemplate } from \"themes/administration/analytics/pages\";\r\nimport { StationActivityViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new StationActivityViewStore(rootStore, componentProps),\r\n \"stationActivityViewStore\"\r\n)\r\n@observer\r\nclass StationActivity extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationActivity;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PodcastActivityTemplate } from \"themes/administration/analytics/pages\";\r\nimport { PodcastActivityViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PodcastActivityViewStore(rootStore, componentProps),\r\n \"podcastActivityViewStore\"\r\n)\r\n@observer\r\nclass PodcastActivity extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastActivity;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { NakiNigunAlbumActivityTemplate } from \"themes/administration/analytics/pages\";\r\nimport { NakiNigunAlbumActivityViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunAlbumActivityViewStore(rootStore, componentProps),\r\n \"nakiNigunAlbumActivityViewStore\"\r\n)\r\n@observer\r\nclass NakiNigunAlbumActivity extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumActivity;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { DeviceActivityTemplate } from \"themes/administration/analytics/pages\";\r\nimport { DeviceActivityViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new DeviceActivityViewStore(rootStore, componentProps),\r\n \"deviceActivityViewStore\"\r\n)\r\n@observer\r\nclass DeviceActivity extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default DeviceActivity;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UserDeviceActivityTemplate } from \"themes/administration/analytics/pages\";\r\nimport { UserDeviceActivityViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new UserDeviceActivityViewStore(rootStore, componentProps),\r\n \"userDeviceActivityViewStore\"\r\n)\r\n@observer\r\nclass UserDeviceActivity extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserDeviceActivity;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PremiumUsersActivityTemplate } from \"themes/administration/analytics/pages\";\r\nimport { PremiumUsersActivityViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PremiumUsersActivityViewStore(rootStore, componentProps),\r\n \"premiumUsersActivityViewStore\"\r\n)\r\n@observer\r\nclass PremiumUsersActivity extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PremiumUsersActivity;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ContentStatsTemplate } from \"themes/administration/analytics/pages\";\r\nimport { ContentStatsViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ContentStatsViewStore(rootStore, componentProps),\r\n \"contentStatsViewStore\"\r\n)\r\n@observer\r\nclass ContentStats extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ContentStats;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n AnalyticsDashboard,\r\n PremiumUsersActivity,\r\n RegisteredUsersActivity,\r\n TrendingStationList,\r\n TrendingPodcastList,\r\n TrendingNakiNigunAlbumList,\r\n ConnectedDevicesActivity,\r\n RegisteredUserDevicesActivity,\r\n PodcastActivity,\r\n StationActivity,\r\n NakiNigunAlbumActivity,\r\n DeviceActivity,\r\n UserDeviceActivity,\r\n ContentStats,\r\n} from \"administration/analytics/pages\";\r\nimport {\r\n AnalyticsDashboardRouteStore,\r\n PremiumUsersActivityRouteStore,\r\n RegisteredUsersActivityRouteStore,\r\n TrendingStationListRouteStore,\r\n TrendingPodcastListRouteStore,\r\n TrendingNakiNigunAlbumListRouteStore,\r\n ConnectedDevicesActivityRouteStore,\r\n RegisteredUserDevicesActivityRouteStore,\r\n PodcastActivityRouteStore,\r\n NakiNigunAlbumActivityRouteStore,\r\n StationActivityRouteStore,\r\n DeviceActivityRouteStore,\r\n UserDeviceActivityRouteStore,\r\n ContentStatsRouteStore,\r\n} from \"administration/analytics/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"analytics\",\r\n routes: [\r\n {\r\n name: \"master.administration.analytics\",\r\n pattern: \"/analytics\",\r\n children: [\r\n {\r\n name: \"master.administration.analytics.dashboard\",\r\n pattern: \"/dashboard\",\r\n component: AnalyticsDashboard,\r\n store: AnalyticsDashboardRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.registered-users\",\r\n pattern: \"/registered-users\",\r\n component: RegisteredUsersActivity,\r\n store: RegisteredUsersActivityRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.connected-devices\",\r\n pattern: \"/connected-devices\",\r\n component: ConnectedDevicesActivity,\r\n store: ConnectedDevicesActivityRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.registered-devices\",\r\n pattern: \"/registered-devices\",\r\n component: RegisteredUserDevicesActivity,\r\n store: RegisteredUserDevicesActivityRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.premium-users\",\r\n pattern: \"/premium-users\",\r\n component: PremiumUsersActivity,\r\n store: PremiumUsersActivityRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.station\",\r\n pattern: \"/station\",\r\n component: TrendingStationList,\r\n store: TrendingStationListRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.station-activity\",\r\n pattern: \"/station/:id\",\r\n component: StationActivity,\r\n store: StationActivityRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.podcast\",\r\n pattern: \"/podcast\",\r\n component: TrendingPodcastList,\r\n store: TrendingPodcastListRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.naki-nigun-album\",\r\n pattern: \"/naki-nigun-album\",\r\n component: TrendingNakiNigunAlbumList,\r\n store: TrendingNakiNigunAlbumListRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.podcast-activity\",\r\n pattern: \"/podcast/:id\",\r\n component: PodcastActivity,\r\n store: PodcastActivityRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.naki-nigun-album-activity\",\r\n pattern: \"/naki-nigun-album/:id\",\r\n component: NakiNigunAlbumActivity,\r\n store: NakiNigunAlbumActivityRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.device-activity\",\r\n pattern: \"/device\",\r\n component: DeviceActivity,\r\n store: DeviceActivityRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.user-device-activity\",\r\n pattern: \"/user-activity/:userId\",\r\n component: UserDeviceActivity,\r\n store: UserDeviceActivityRouteStore,\r\n },\r\n {\r\n name: \"master.administration.analytics.content-stats\",\r\n pattern: \"/content-stats\",\r\n component: ContentStats,\r\n store: ContentStatsRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.ANALYTICS\",\r\n order: 11,\r\n icon: \"analytics\",\r\n subMenu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.ANALYTICS_DASHBOARD\",\r\n order: 1,\r\n route: \"master.administration.analytics.dashboard\",\r\n },\r\n {\r\n title: \"ADMINISTRATION.MENU.ANALYTICS_CONTENT_STATS\",\r\n order: 2,\r\n route: \"master.administration.analytics.content-stats\",\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 { MrbListPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction OrderListTemplate({ orderListViewStore, t }) {\r\n const { gridStore, queryUtility } = orderListViewStore;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nOrderListTemplate.propTypes = {\r\n orderListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(OrderListTemplate);\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst OrderInfoLoaderTemplate = (props) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n const screenWidth = window.innerWidth;\r\n const loaderHeight = screenWidth < 768 ? 335 : 195;\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 {screenWidth < 768 ? : }\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default OrderInfoLoaderTemplate;\r\n\r\nconst DesktopInfo = () => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst MobileInfo = () => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst OrderTableLoaderTemplate = (props) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n const loaderHeight = 108;\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n const tableList = [];\r\n let y = 0;\r\n\r\n for (let i = 0; i < 2; i++) {\r\n tableList.push(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n y += 32;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n {tableList}\r\n\r\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 OrderTableLoaderTemplate;\r\n","import React from \"react\";\r\nimport { OrderInfoLoaderTemplate } from \"themes/administration/order/components\";\r\n\r\nclass OrderInfoLoader extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default OrderInfoLoader;\r\n","import React from \"react\";\r\nimport { OrderTableLoaderTemplate } from \"themes/administration/order/components\";\r\n\r\nclass OrderTableLoader extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default OrderTableLoader;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage } from \"mrb/components/layout\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { currencyFormatter, dateFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map, isNil } from \"lodash\";\r\nimport { OrderInfoLoader, OrderTableLoader } from \"administration/order/components\";\r\n\r\nfunction OrderPreviewTemplate({ orderPreviewViewStore, t }) {\r\n const { item, loaderStore } = orderPreviewViewStore;\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 {t(\"ADMINISTRATION.ORDER.PREVIEW.FIELDS.ORDER_NUMBER\")}\r\n

\r\n {item.orderNumber}\r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.FIELDS.DATE_OF_ORDER\")}\r\n

\r\n {dateFormatter.format(item.dateCreated, {\r\n format: applicationDefaults.formats.dateTimeSeconds,\r\n })}\r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.FIELDS.ORDER_STATUS\")}\r\n

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

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.FIELDS.CUSTOMER\")}\r\n

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

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.FIELDS.PAYMENT_PROVIDER\")} (\r\n {t(\r\n \"ADMINISTRATION.ORDER.PREVIEW.FIELDS.PAYMENT_PROVIDER_PAYMENT_METHOD\"\r\n )}\r\n )\r\n

\r\n \r\n {item.paymentMethod} ({item.paymentMethodTitle})\r\n \r\n {item.paymentMethod === \"Stripe\" && (\r\n \r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.FIELDS.SHIPPING_ADDRESS\")}\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(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.TITLE\")}

\r\n\r\n
\r\n }>\r\n {() => }\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nOrderPreviewTemplate.propTypes = {\r\n orderPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction BillingAddress({ billingAddress }) {\r\n const address = [];\r\n if (billingAddress.email) {\r\n address.push(
{billingAddress.email}
);\r\n }\r\n if (billingAddress.firstName && billingAddress.lastName) {\r\n address.push(
{`${billingAddress.firstName} ${billingAddress.lastName}`}
);\r\n }\r\n if (billingAddress.address1) {\r\n address.push(
{billingAddress.address1}
);\r\n }\r\n if (billingAddress.address2) {\r\n address.push(
{billingAddress.address2}
);\r\n }\r\n\r\n const placeInfo = [];\r\n if (billingAddress.city) {\r\n placeInfo.push(`${billingAddress.city},`);\r\n }\r\n if (billingAddress.state) {\r\n placeInfo.push(billingAddress.state);\r\n }\r\n if (billingAddress.postCode) {\r\n placeInfo.push(billingAddress.postCode);\r\n }\r\n if (billingAddress.country) {\r\n placeInfo.push(billingAddress.country);\r\n }\r\n\r\n return [...address,
{placeInfo.join(\" \")}
];\r\n}\r\n\r\nfunction ShippingAddress({ shippingAddress }) {\r\n const address = [];\r\n if (shippingAddress.firstName && shippingAddress.lastName) {\r\n address.push(
{`${shippingAddress.firstName} ${shippingAddress.lastName}`}
);\r\n }\r\n if (shippingAddress.address1) {\r\n address.push(
{shippingAddress.address1}
);\r\n }\r\n if (shippingAddress.address2) {\r\n address.push(
{shippingAddress.address2}
);\r\n }\r\n\r\n const placeInfo = [];\r\n if (shippingAddress.city) {\r\n placeInfo.push(`${shippingAddress.city},`);\r\n }\r\n if (shippingAddress.state) {\r\n placeInfo.push(shippingAddress.state);\r\n }\r\n if (shippingAddress.postCode) {\r\n placeInfo.push(shippingAddress.postCode);\r\n }\r\n if (shippingAddress.country) {\r\n placeInfo.push(shippingAddress.country);\r\n }\r\n\r\n return [...address,
{placeInfo.join(\" \")}
];\r\n}\r\n\r\nconst LineItems = observer(function LineItems({ order, t }) {\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 {map(order.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\n \r\n \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(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.COLUMNS.PRODUCT\")}\r\n \r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.COLUMNS.QUANTITY\")}\r\n \r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.COLUMNS.UNIT_PRICE\")}\r\n \r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.COLUMNS.AMOUNT\")}\r\n
\r\n {item.product ? item.product.name : null}\r\n {item.quantity}\r\n {currencyFormatter.format(item.price, {\r\n currency: \"USD\",\r\n })}\r\n \r\n {currencyFormatter.format(item.total, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.SUMMARY.SUBTOTAL\")}\r\n

\r\n
\r\n {currencyFormatter.format(order.subtotalAmount, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n \r\n \r\n {currencyFormatter.format(order.taxAmount, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n \r\n \r\n {currencyFormatter.format(order.shippingAmount, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.SUMMARY.TOTAL\")}\r\n

\r\n
\r\n {currencyFormatter.format(order.totalAmount, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n
\r\n );\r\n});\r\n\r\nfunction TotalTaxLabel({ taxLines, t }) {\r\n if (isNil(taxLines) || taxLines.length === 0) {\r\n return (\r\n

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.SUMMARY.TOTAL_TAX\")}\r\n

\r\n );\r\n }\r\n\r\n const taxLine = taxLines[0];\r\n\r\n return (\r\n

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.SUMMARY.TOTAL_TAX\")} - {taxLine.label} ({taxLine.ratePercent}%)\r\n

\r\n );\r\n}\r\n\r\nfunction ShippingMethodLabel({ shippingMethod, t }) {\r\n if (isNil(shippingMethod)) {\r\n return (\r\n

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.SUMMARY.SHIPPING\")}\r\n

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

\r\n {t(\"ADMINISTRATION.ORDER.PREVIEW.ITEMS.SUMMARY.SHIPPING\")}{\" \"}\r\n ({shippingMethod.methodTitle})\r\n

\r\n );\r\n}\r\n\r\nfunction StripePaymentLink({ paymentId, t }) {\r\n let url = `https://dashboard.stripe.com/payments/${paymentId}`;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default defaultTemplate(OrderPreviewTemplate);\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { OrderService } from \"common/services\";\r\n\r\nclass OrderListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(OrderService);\r\n }\r\n\r\n async findOrders(params) {\r\n const response = await this.service.find(params);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default OrderListRouteStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { mrbDefaultFormats } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\n\r\nclass OrderListViewStore extends MrbBaseListViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n orderBy: \"dateCreated\",\r\n orderDirection: \"desc\",\r\n embed: \"orderStatus\",\r\n },\r\n });\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n onRowClick: (node) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.order.preview\", { id: node.data.id }),\r\n columns: [\r\n {\r\n key: \"orderNumber\",\r\n title: \"ADMINISTRATION.ORDER.LIST.COLUMNS.ORDER_NUMBER\",\r\n },\r\n {\r\n key: \"billingAddress\",\r\n title: \"ADMINISTRATION.ORDER.LIST.COLUMNS.CUSTOMER\",\r\n format: (billingAddress) => `${billingAddress.firstName} ${billingAddress.lastName}`,\r\n },\r\n {\r\n key: \"orderStatus\",\r\n title: \"ADMINISTRATION.ORDER.LIST.COLUMNS.ORDER_STATUS\",\r\n sortable: false,\r\n format: (status) => status.name,\r\n },\r\n {\r\n key: \"totalAmount\",\r\n title: \"ADMINISTRATION.ORDER.LIST.COLUMNS.TOTAL\",\r\n format: {\r\n type: mrbDefaultFormats.currency,\r\n currency: \"USD\",\r\n },\r\n },\r\n {\r\n key: \"dateCreated\",\r\n title: \"ADMINISTRATION.ORDER.LIST.COLUMNS.DATE_OF_ORDER\",\r\n sortable: true,\r\n format: {\r\n type: mrbDefaultFormats.date,\r\n format: applicationDefaults.formats.dateTimeSeconds,\r\n },\r\n },\r\n ],\r\n })\r\n );\r\n }\r\n\r\n find(params) {\r\n return this.routeStore.findOrders(params);\r\n }\r\n\r\n onFetchError() {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\"\r\n );\r\n }\r\n}\r\n\r\nexport default OrderListViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { OrderService } from \"common/services\";\r\n\r\nclass OrderPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(OrderService);\r\n }\r\n\r\n async getOrder(id) {\r\n const response = await this.service.get(id);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default OrderPreviewRouteStore;\r\n","import { MrbBasePreviewViewStore } from \"mrb/core\";\r\n\r\nclass OrderPreviewViewStore extends MrbBasePreviewViewStore {\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.administration.order.list\",\r\n });\r\n this.routeStore = routeStore;\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getOrder(id);\r\n }\r\n}\r\n\r\nexport default OrderPreviewViewStore;\r\n","import React from \"react\";\r\nimport { OrderListTemplate } from \"themes/administration/order/pages\";\r\nimport { OrderListViewStore } from \"administration/order/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView((rootStore, componentProps) => new OrderListViewStore(rootStore, componentProps), \"orderListViewStore\")\r\nclass OrderList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default OrderList;\r\n","import React from \"react\";\r\nimport { OrderPreviewTemplate } from \"themes/administration/order/pages\";\r\nimport { OrderPreviewViewStore } from \"administration/order/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new OrderPreviewViewStore(rootStore, componentProps),\r\n \"orderPreviewViewStore\"\r\n)\r\nclass OrderPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default OrderPreview;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { OrderList, OrderPreview } from \"administration/order/pages\";\r\nimport { OrderListRouteStore, OrderPreviewRouteStore } from \"administration/order/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"Order\",\r\n routes: [\r\n {\r\n name: \"master.administration.order\",\r\n pattern: \"/order\",\r\n children: [\r\n {\r\n name: \"master.administration.order.list\",\r\n pattern: \"\",\r\n component: OrderList,\r\n store: OrderListRouteStore,\r\n data: {\r\n title: \"ADMINISTRATION.ORDER.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.administration.order.preview\",\r\n pattern: \":id\",\r\n component: OrderPreview,\r\n store: OrderPreviewRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.ORDER\",\r\n order: 12,\r\n icon: \"orders\",\r\n route: \"master.administration.order.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { FloatingCard, TableNoDataOverlay } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbSelect } from \"mrb/components/select\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\n\r\nfunction PodcastEpisodeContentExplorerTemplate({ podcastEpisodeContentExplorerViewStore, t }) {\r\n const {\r\n gridStore,\r\n queryUtility,\r\n podcastSelectStore,\r\n podcastGroupSelectStore,\r\n downloadSelectedItems,\r\n selectedItemIds,\r\n } = podcastEpisodeContentExplorerViewStore;\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 {selectedItemIds.length > 0 && (\r\n \r\n
\r\n
\r\n

\r\n {selectedItemIds.length} file{selectedItemIds.length > 1 && \"s\"} selected\r\n

\r\n gridStore.gridApi.deselectAll()}\r\n classNameOverride=\"c-btn c-btn--icon\"\r\n />\r\n
\r\n \r\n
\r\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 PodcastEpisodeFilter = observer(function PodcastEpisodeFilter({ store, t }) {\r\n const { changeAudioTrackAvailabilityFilter, queryUtility, audioFileAvailabilityOptions } = store;\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n});\r\n\r\nPodcastEpisodeContentExplorerTemplate.propTypes = {\r\n podcastEpisodeContentExplorerViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(PodcastEpisodeContentExplorerTemplate);\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\n\r\nfunction ContentExplorerTemplate({ contentExplorerViewStore, renderChildRoute, t, ...props }) {\r\n const { selectedTab, setSelectedTab } = contentExplorerViewStore;\r\n\r\n function getHeaderTitle() {\r\n if (selectedTab.value === 1) {\r\n return t(\"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.TITLE\");\r\n } else {\r\n return t(\"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.TITLE\");\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 setSelectedTab(1)}\r\n className={mergeCss(\r\n \"c-tabs__item\",\r\n selectedTab.title === \"Podcast episodes\" && \"c-tabs__item--active\"\r\n )}\r\n routeName=\"master.administration.content-explorer.list.podcast-episodes\"\r\n >\r\n {t(\"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.TITLE\")}\r\n \r\n setSelectedTab(2)}\r\n className={mergeCss(\r\n \"c-tabs__item\",\r\n selectedTab.title === \"Album tracks\" && \"c-tabs__item--active\"\r\n )}\r\n routeName=\"master.administration.content-explorer.list.album-tracks\"\r\n >\r\n {t(\"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.TITLE\")}\r\n \r\n \r\n
\r\n\r\n {renderChildRoute(props)}\r\n
\r\n
\r\n );\r\n}\r\n\r\nContentExplorerTemplate.propTypes = {\r\n contentExplorerViewStore: PropTypes.object.isRequired,\r\n renderChildRoute: PropTypes.func,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(ContentExplorerTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { FloatingCard, TableNoDataOverlay } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbSelect } from \"mrb/components/select\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbButton } from \"baasic-react-bootstrap/src\";\r\n\r\nfunction AlbumTrackContentExplorerTemplate({ albumTrackContentExplorerViewStore, t }) {\r\n const { gridStore, queryUtility, albumSelectStore, artistSelectStore, downloadSelectedItems, selectedItemIds } =\r\n albumTrackContentExplorerViewStore;\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 {selectedItemIds.length > 0 && (\r\n \r\n
\r\n
\r\n

\r\n {selectedItemIds.length} file{selectedItemIds.length > 1 && \"s\"} selected\r\n

\r\n gridStore.gridApi.deselectAll()}\r\n classNameOverride=\"c-btn c-btn--icon\"\r\n />\r\n
\r\n \r\n
\r\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 AlbumTrackFilter = observer(function AlbumTrackFilter({ store, t }) {\r\n const { changeAudioTrackAvailabilityFilter, queryUtility, audioFileAvailabilityOptions } = store;\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n});\r\n\r\nAlbumTrackContentExplorerTemplate.propTypes = {\r\n albumTrackContentExplorerViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(AlbumTrackContentExplorerTemplate);\r\n","import React from \"react\";\r\nimport { AlbumTrackPlaylistCellTemplate } from \"themes/administration/content-explorer\";\r\n\r\nclass AlbumTrackPlaylistCell extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AlbumTrackPlaylistCell;\r\n","import React from \"react\";\r\nimport { PlaylistTagsTemplate } from \"themes/administration/content-explorer\";\r\n\r\nclass PlaylistTags extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PlaylistTags;\r\n","import { useState, useEffect } from \"react\";\r\nimport { PlaylistTags } from \"administration/content-explorer/components\";\r\nimport { PlaylistService } from \"common/services\";\r\nimport { PlaylistSelectStore } from \"common/components\";\r\nimport { useRootStore } from \"mrb/core/contexts\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { noop } from \"lodash\";\r\n\r\nasync function findAdminGeneratedPlaylists(rootStore, filter) {\r\n try {\r\n filter.orderBy = \"title\";\r\n filter.orderDirection = \"asc\";\r\n filter.pageSize = 50;\r\n if (filter.searchQuery) {\r\n filter.searchQuery = filter.searchQuery.trim();\r\n if (filter.searchQuery === \"\") {\r\n filter.searchQuery = null;\r\n }\r\n }\r\n\r\n const playlistService = rootStore.createApplicationService(PlaylistService);\r\n const response = await playlistService.findAdminGeneratedPlaylists(filter);\r\n return response.data;\r\n } catch (err) {\r\n rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.ERROR.PLAYLIST_LOAD_ERROR\")\r\n );\r\n return [];\r\n }\r\n}\r\n\r\nasync function createAdminGeneratedPlaylist(rootStore, playlist) {\r\n const playlistService = rootStore.createApplicationService(PlaylistService);\r\n const response = await playlistService.createAdminGeneratedPlaylist(playlist);\r\n return response.data;\r\n}\r\n\r\nasync function addItemToAdminGeneratedPlaylist(rootStore, playlistId, resource) {\r\n const playlistService = rootStore.createApplicationService(PlaylistService);\r\n const response = await playlistService.addItemToAdminGeneratedPlaylist(playlistId, resource);\r\n return response.data;\r\n}\r\n\r\nasync function deleteAlbumTrackFromAdminGeneratedPlaylist(rootStore, playlistId, albumTrackId) {\r\n const playlistService = rootStore.createApplicationService(PlaylistService);\r\n const response = await playlistService.deleteAlbumTrackFromAdminGeneratedPlaylist(playlistId, albumTrackId);\r\n return response.data;\r\n}\r\n\r\nfunction AlbumTrackPlaylistCellTemplate({ data, addPlaylist = noop, removePlaylist = noop }) {\r\n const rootStore = useRootStore();\r\n const [store] = useState(\r\n new PlaylistSelectStore({\r\n isSearchable: true,\r\n textKey: \"title\",\r\n isMulti: true,\r\n initFetch: false,\r\n actions: {\r\n find: (searchQuery) => {\r\n return findAdminGeneratedPlaylists(rootStore, { searchQuery });\r\n },\r\n\r\n createOption: (title) => {\r\n return createAdminGeneratedPlaylist(rootStore, { title });\r\n },\r\n\r\n onSelected: async (playlist) => {\r\n try {\r\n await addItemToAdminGeneratedPlaylist(rootStore, playlist.id, { albumTrackId: data.id });\r\n addPlaylist(data.id, playlist);\r\n } catch (error) {\r\n rootStore.notificationStore.error(\r\n localizationService.t(\r\n \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.PLAYLIST.ERROR.ADD_ITEM\"\r\n )\r\n );\r\n }\r\n },\r\n\r\n onRemoved: async (playlist) => {\r\n try {\r\n await deleteAlbumTrackFromAdminGeneratedPlaylist(rootStore, playlist.id, data.id);\r\n removePlaylist(data.id, playlist);\r\n } catch (error) {\r\n rootStore.notificationStore.error(\r\n localizationService.t(\r\n \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.PLAYLIST.ERROR.REMOVE_ITEM\"\r\n )\r\n );\r\n }\r\n },\r\n },\r\n })\r\n );\r\n useEffect(() => {\r\n store.setSelectedItem(data.playlists);\r\n });\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default AlbumTrackPlaylistCellTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\n// import { MrbSimpleSelectPanelContainer, MrbSimpleSelectValueContainer } from \"./components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { map } from \"lodash\";\r\nimport { CustomDropdown } from \"common/components\";\r\n\r\nfunction PlaylistTagsTemplate({ store, t = (i) => i }) {\r\n return (\r\n
\r\n }\r\n >\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nconst Selector = observer(function Selector({ store, t = (i) => i }) {\r\n const { selectedOption } = store;\r\n if (selectedOption) {\r\n if (selectedOption.length === 1) {\r\n return (\r\n
\r\n

{selectedOption[0].label}

\r\n \r\n
\r\n );\r\n } else if (selectedOption.length > 1) {\r\n return (\r\n
\r\n {selectedOption.length}\r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n});\r\n\r\nPlaylistTagsTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst PanelContainer = observer(function PanelContainer({ store, optionRender, t }) {\r\n return ;\r\n});\r\n\r\nconst SelectPanel = observer(function SelectPanel({ store, t }) {\r\n const {\r\n options,\r\n searchTerm,\r\n setSearchTerm,\r\n createOption,\r\n setFocusedIndex,\r\n onChange,\r\n selectedOption,\r\n showCreateOption,\r\n } = store;\r\n\r\n return (\r\n
\r\n setSearchTerm(event.target.value)}\r\n />\r\n {options && options.length > 0 ? (\r\n
\r\n {map(options, (option, index) => {\r\n const isActive = selectedOption.find((opt) => opt.value === option.value) !== undefined;\r\n\r\n return (\r\n setFocusedIndex(index)}\r\n onMouseDown={() => onChange(option)}\r\n className={`c-tag c-tag--sml c-tag--rounded c-tag--${\r\n isActive ? \"primary\" : \"inactive--outline\"\r\n } u-cursor--pointer with-actions`}\r\n >\r\n {t(option.label)}\r\n
\r\n );\r\n })}\r\n
\r\n ) : (\r\n
\r\n

No Results

\r\n
\r\n )}\r\n {showCreateOption && (\r\n
\r\n
\r\n\r\n
\r\n createOption(searchTerm)}\r\n content={\r\n
\r\n Create \"{searchTerm}\" playlist\r\n
\r\n }\r\n />\r\n
\r\n
\r\n )}\r\n \r\n );\r\n});\r\n\r\nexport default observer(PlaylistTagsTemplate);\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PodcastFileStreamService, PodcastService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass PodcastEpisodeContentExplorerRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(PodcastService);\r\n this.podcastFileStreamService = this.rootStore.createApplicationService(PodcastFileStreamService);\r\n }\r\n\r\n async findAudioTrackEpisodes(filter) {\r\n const response = await this.service.findAudioTrackEpisodes(filter);\r\n return response.data;\r\n }\r\n\r\n async getPodcasts(filter) {\r\n const response = await this.service.getPodcasts(filter);\r\n return response.data;\r\n }\r\n\r\n createPodcastEpisodeAudioFileUrl(podcastEpisodeId) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.podcastFileStreamService.routeService.getPodcastEpisodeAudioFile(podcastEpisodeId)\r\n );\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeContentExplorerRouteStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { MrbQuerySelectStore } from \"mrb/components/select\";\r\nimport { makeObservable, action, observable, computed } from \"mobx\";\r\nimport { MrbFilterParameters } from \"mrb/core/filter\";\r\nimport { convertSecondsToHMS } from \"common/utils\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { DownloadRequest } from \"common/models\";\r\nimport { forEach, indexOf, includes, map, filter } from \"lodash\";\r\n\r\nclass PodcastEpisodeContentExplorerFilter extends MrbFilterParameters {\r\n @observable audioTrackAvailable;\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.audioTrackAvailable = null;\r\n }\r\n}\r\n\r\nclass PodcastEpisodeContentExplorerViewStore extends MrbBaseListViewStore {\r\n @observable selectedItems = [];\r\n selectedRowIds = [];\r\n\r\n @computed\r\n get selectedItemIds() {\r\n return map(this.selectedItems, (item) => item.id);\r\n }\r\n audioFileAvailabilityOptions = [\r\n {\r\n label: \"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.FILTER_OPTIONS.ALL\",\r\n value: null,\r\n },\r\n {\r\n label: \"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.FILTER_OPTIONS.AVAILABLE\",\r\n value: true,\r\n },\r\n {\r\n label: \"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.FILTER_OPTIONS.NOT_AVAILABLE\",\r\n value: false,\r\n },\r\n ];\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new PodcastEpisodeContentExplorerFilter(),\r\n orderBy: \"title\",\r\n orderDirection: \"asc\",\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n columns: [\r\n {\r\n key: \"title\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.COLUMNS.TITLE\",\r\n sortable: true,\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n minWidth: 400,\r\n flex: 1,\r\n },\r\n {\r\n key: \"podcast.title\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.COLUMNS.PODCAST_TITLE\",\r\n minWidth: 200,\r\n },\r\n {\r\n key: \"podcast.parentPodcast.title\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.COLUMNS.PODCAST_GROUP_TITLE\",\r\n minWidth: 200,\r\n },\r\n {\r\n key: \"duration\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.COLUMNS.DURATION\",\r\n format: (value) => convertSecondsToHMS(value),\r\n minWidth: 140,\r\n maxWidth: 140,\r\n resizable: false,\r\n },\r\n {\r\n key: \"audioFileSize\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.COLUMNS.AUDIO_FILE_SIZE\",\r\n format: (value) => (value === 0 ? \"-\" : `${(value / Math.round(1024 * 1024)).toFixed(2)} MB`),\r\n minWidth: 140,\r\n maxWidth: 140,\r\n resizable: false,\r\n },\r\n {\r\n key: \"audioFileBitrate\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.COLUMNS.AUDIO_FILE_BITRATE\",\r\n format: (value) => (value === 0 ? \"-\" : `${value} Kbit/s`),\r\n minWidth: 140,\r\n maxWidth: 140,\r\n resizable: false,\r\n },\r\n ],\r\n selection: {\r\n rowSelection: \"multiple\",\r\n isRowSelectable: (data) => {\r\n return data.audioStreamUrl != null && data.audioStreamUrl !== \"\";\r\n },\r\n onRowSelected: (node) => {\r\n if (node.isSelected() && !includes(this.selectedItemIds, node.data.id)) {\r\n this.selectedItems.push(node.data);\r\n } else if (!node.isSelected() && includes(this.selectedItemIds, node.data.id)) {\r\n const index = indexOf(this.selectedItemIds, node.data.id);\r\n if (index !== -1) {\r\n this.selectedItems.splice(index, 1);\r\n }\r\n }\r\n },\r\n },\r\n onDataChange: () => {\r\n const allRows = this.gridStore.gridApi.getModel().rowsToDisplay;\r\n const rowsToSelect = allRows.filter((row) => this.selectedItemIds.includes(row.data.id));\r\n if (rowsToSelect.length > 0) {\r\n forEach(rowsToSelect, (row) => {\r\n this.gridStore.gridApi.selectNode(row, true);\r\n });\r\n }\r\n },\r\n })\r\n );\r\n\r\n this.podcastSelectStore = new MrbQuerySelectStore(\r\n {\r\n placeholder: \"Select podcasts\",\r\n isSearchable: true,\r\n virtualized: false,\r\n textKey: \"title\",\r\n valueKey: \"id\",\r\n initFetch: true,\r\n isMulti: true,\r\n actions: {\r\n find: (searchTerm, pageNumber, pageSize) => {\r\n const params = {\r\n search: searchTerm,\r\n pageNumber: pageNumber,\r\n pageSize: pageSize,\r\n sort: \"title|asc\",\r\n podcastType: 1,\r\n topLevelOnly: false,\r\n };\r\n return this.routeStore.getPodcasts(params);\r\n },\r\n mapItem: (item) => {\r\n return {\r\n value: item.id,\r\n label: item.title,\r\n item: item,\r\n };\r\n },\r\n },\r\n },\r\n this.queryUtility,\r\n \"podcastIds\"\r\n );\r\n\r\n this.podcastGroupSelectStore = new MrbQuerySelectStore(\r\n {\r\n placeholder: \"Select podcast groups\",\r\n isSearchable: true,\r\n virtualized: false,\r\n textKey: \"title\",\r\n valueKey: \"id\",\r\n initFetch: true,\r\n isMulti: true,\r\n actions: {\r\n find: (searchTerm, pageNumber, pageSize) => {\r\n const params = {\r\n search: searchTerm,\r\n pageNumber: pageNumber,\r\n pageSize: pageSize,\r\n sort: \"title|asc\",\r\n podcastType: 2,\r\n };\r\n return this.routeStore.getPodcasts(params);\r\n },\r\n mapItem: (item) => {\r\n return {\r\n value: item.id,\r\n label: item.title,\r\n item: item,\r\n };\r\n },\r\n },\r\n },\r\n this.queryUtility,\r\n \"podcastGroupIds\"\r\n );\r\n }\r\n\r\n find(params) {\r\n params.embed = \"podcast,podcast.ParentPodcast\";\r\n return this.routeStore.findAudioTrackEpisodes(params);\r\n }\r\n\r\n onFetchError() {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.CONTENT_EXPLORER.PODCAST_EPISODE_LIST.ERROR.GENERIC_MESSAGE\")\r\n );\r\n }\r\n\r\n @action.bound\r\n changeAudioTrackAvailabilityFilter(value) {\r\n this.queryUtility.filter.set(\"audioTrackAvailable\", value);\r\n this.queryUtility.fetch();\r\n }\r\n\r\n @action.bound\r\n downloadSelectedItems() {\r\n if (this.selectedItems == null || this.selectedItems.length < 1) {\r\n return;\r\n }\r\n const validSelectedItems = filter(this.selectedItems, (item) => item.audioStreamUrl);\r\n if (validSelectedItems.length > 0) {\r\n const downloadRequests = map(\r\n validSelectedItems,\r\n (item) =>\r\n new DownloadRequest(\r\n item.id,\r\n item.title,\r\n item.artworkUrl,\r\n this.routeStore.createPodcastEpisodeAudioFileUrl(item.id),\r\n item.duration,\r\n item.audioFileSize\r\n )\r\n );\r\n\r\n this.routeStore.rootStore.downloadManagerStore.addItemsToQueue(downloadRequests);\r\n }\r\n\r\n this.gridStore.gridApi.deselectAll();\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeContentExplorerViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\n\r\nclass ContentExplorerRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n}\r\n\r\nexport default ContentExplorerRouteStore;\r\n","import { action, makeObservable, observable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { find } from \"lodash\";\r\n\r\nclass ContentExplorerViewStore extends MrbBaseViewStore {\r\n @observable selectedTab = { value: 1, title: \"Podcast episodes\" };\r\n\r\n tabs = [\r\n { value: 1, title: \"Podcast episodes\" },\r\n { value: 2, title: \"Album tracks\" },\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.administration.content-explorer.list.podcast-episodes\") {\r\n this.setSelectedTab(1);\r\n } else if (currentRoute.name === \"master.administration.content-explorer.list.album-tracks\") {\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 (\r\n this.selectedTab.value === 2 &&\r\n currentRoute.name === \"master.administration.content-explorer.list.podcast-episodes\"\r\n ) {\r\n this.setSelectedTab(1);\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 ContentExplorerViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunAlbumFileStreamService, NakiNigunAlbumService, NakiNigunArtistService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass AlbumTrackContentExplorerRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.nakiNigunAlbumService = this.rootStore.createApplicationService(NakiNigunAlbumService);\r\n this.nakiNigunArtistService = this.rootStore.createApplicationService(NakiNigunArtistService);\r\n this.nakiNigunAblumFileStreamService = this.rootStore.createApplicationService(NakiNigunAlbumFileStreamService);\r\n }\r\n\r\n async findAudioTrackAlbumSongs(filter) {\r\n const response = await this.nakiNigunAlbumService.findAudioTrackAlbumSongs(filter);\r\n return response.data;\r\n }\r\n\r\n async findAlbums(filter) {\r\n const response = await this.nakiNigunAlbumService.findAlbums(filter);\r\n return response.data;\r\n }\r\n\r\n async findArtists(filter) {\r\n const response = await this.nakiNigunArtistService.findArtists(filter);\r\n return response.data;\r\n }\r\n\r\n createAlbumTrackAudioFileUrl(albumTrackId) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.nakiNigunAblumFileStreamService.routeService.getAlbumTrackAudioFile(albumTrackId)\r\n );\r\n }\r\n}\r\n\r\nexport default AlbumTrackContentExplorerRouteStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { MrbQuerySelectStore } from \"mrb/components/select\";\r\nimport { makeObservable, action, observable, computed } from \"mobx\";\r\nimport { MrbFilterParameters } from \"mrb/core/filter\";\r\nimport { convertSecondsToHMS } from \"common/utils\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { map, indexOf, includes, forEach, filter } from \"lodash\";\r\nimport { DownloadRequest } from \"common/models\";\r\nimport { AlbumTrackPlaylistCell } from \"administration/content-explorer/components\";\r\n\r\nclass AblumTrackContentExplorerFilter extends MrbFilterParameters {\r\n @observable audioTrackAvailable;\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.audioTrackAvailable = null;\r\n }\r\n}\r\n\r\nclass AblumTrackContentExplorerViewStore extends MrbBaseListViewStore {\r\n @observable selectedItems = [];\r\n selectedRowIds = [];\r\n\r\n @computed\r\n get selectedItemIds() {\r\n return map(this.selectedItems, (item) => item.id);\r\n }\r\n\r\n audioFileAvailabilityOptions = [\r\n {\r\n label: \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.FILTER_OPTIONS.ALL\",\r\n value: null,\r\n },\r\n {\r\n label: \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.FILTER_OPTIONS.AVAILABLE\",\r\n value: true,\r\n },\r\n {\r\n label: \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.FILTER_OPTIONS.NOT_AVAILABLE\",\r\n value: false,\r\n },\r\n ];\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new AblumTrackContentExplorerFilter(),\r\n orderBy: \"title\",\r\n orderDirection: \"asc\",\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n columns: [\r\n {\r\n key: \"title\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.COLUMNS.TITLE\",\r\n sortable: true,\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n minWidth: 400,\r\n flex: 1,\r\n },\r\n {\r\n key: \"album.title\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.COLUMNS.ALBUM_TITLE\",\r\n minWidth: 200,\r\n },\r\n {\r\n key: \"album.artist.name\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.COLUMNS.ARTIST_NAME\",\r\n minWidth: 200,\r\n },\r\n {\r\n key: \"duration\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.COLUMNS.DURATION\",\r\n format: (value) => convertSecondsToHMS(value),\r\n minWidth: 140,\r\n maxWidth: 140,\r\n resizable: false,\r\n },\r\n {\r\n key: \"audioFileSize\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.COLUMNS.AUDIO_FILE_SIZE\",\r\n format: (value) => (value === 0 ? \"-\" : `${(value / Math.round(1024 * 1024)).toFixed(2)} MB`),\r\n minWidth: 140,\r\n maxWidth: 140,\r\n resizable: false,\r\n },\r\n {\r\n key: \"audioFileBitrate\",\r\n title: \"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.COLUMNS.AUDIO_FILE_BITRATE\",\r\n format: (value) => (value === 0 ? \"-\" : `${value} Kbit/s`),\r\n minWidth: 140,\r\n maxWidth: 140,\r\n resizable: false,\r\n },\r\n {\r\n key: \"playlist\",\r\n sortable: false,\r\n title: \"Playlist\",\r\n cell: (props) => (\r\n {\r\n map(this.gridStore.data, (d) => {\r\n if (d.id === trackId) {\r\n d.playlists = [...d.playlists, newPlaylist];\r\n }\r\n return d;\r\n });\r\n }}\r\n removePlaylist={(trackId, removedPlaylist) => {\r\n map(this.gridStore.data, (d) => {\r\n if (d.id === trackId) {\r\n d.playlists = filter(\r\n d.playlists,\r\n (playlist) => playlist.id !== removedPlaylist.id\r\n );\r\n }\r\n });\r\n }}\r\n />\r\n ),\r\n },\r\n ],\r\n selection: {\r\n rowSelection: \"multiple\",\r\n isRowSelectable: (data) => {\r\n return data.audioStreamUrl != null && data.audioStreamUrl !== \"\";\r\n },\r\n onRowSelected: (node) => {\r\n if (node.isSelected() && !includes(this.selectedItemIds, node.data.id)) {\r\n this.selectedItems.push(node.data);\r\n } else if (!node.isSelected() && includes(this.selectedItemIds, node.data.id)) {\r\n const index = indexOf(this.selectedItemIds, node.data.id);\r\n if (index !== -1) {\r\n this.selectedItems.splice(index, 1);\r\n }\r\n }\r\n },\r\n },\r\n onDataChange: () => {\r\n const allRows = this.gridStore.gridApi.getModel().rowsToDisplay;\r\n const rowsToSelect = allRows.filter((row) => this.selectedItemIds.includes(row.data.id));\r\n if (rowsToSelect.length > 0) {\r\n forEach(rowsToSelect, (row) => {\r\n this.gridStore.gridApi.selectNode(row, true);\r\n });\r\n }\r\n },\r\n })\r\n );\r\n\r\n this.albumSelectStore = new MrbQuerySelectStore(\r\n {\r\n placeholder: \"Select albums\",\r\n isSearchable: true,\r\n virtualized: false,\r\n textKey: \"title\",\r\n valueKey: \"id\",\r\n initFetch: true,\r\n isMulti: true,\r\n actions: {\r\n find: (searchTerm, pageNumber, pageSize) => {\r\n const params = {\r\n search: searchTerm,\r\n pageNumber: pageNumber,\r\n pageSize: pageSize,\r\n sort: \"title|asc\",\r\n };\r\n return this.routeStore.findAlbums(params);\r\n },\r\n mapItem: (item) => {\r\n return {\r\n value: item.id,\r\n label: item.title,\r\n item: item,\r\n };\r\n },\r\n },\r\n },\r\n this.queryUtility,\r\n \"albumIds\"\r\n );\r\n\r\n this.artistSelectStore = new MrbQuerySelectStore(\r\n {\r\n placeholder: \"Select artists\",\r\n isSearchable: true,\r\n virtualized: false,\r\n textKey: \"name\",\r\n valueKey: \"id\",\r\n initFetch: true,\r\n isMulti: true,\r\n actions: {\r\n find: (searchTerm, pageNumber, pageSize) => {\r\n const params = {\r\n search: searchTerm,\r\n pageNumber: pageNumber,\r\n pageSize: pageSize,\r\n sort: \"name|asc\",\r\n };\r\n return this.routeStore.findArtists(params);\r\n },\r\n mapItem: (item) => {\r\n return {\r\n value: item.id,\r\n label: item.name,\r\n item: item,\r\n };\r\n },\r\n },\r\n },\r\n this.queryUtility,\r\n \"artistIds\"\r\n );\r\n }\r\n\r\n find(params) {\r\n params.embed = \"album,album.artist,playlists\";\r\n return this.routeStore.findAudioTrackAlbumSongs(params);\r\n }\r\n\r\n onFetchError() {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.CONTENT_EXPLORER.ALBUM_TRACK_LIST.ERROR.GENERIC_MESSAGE\")\r\n );\r\n }\r\n\r\n @action.bound\r\n changeAudioTrackAvailabilityFilter(value) {\r\n this.queryUtility.filter.set(\"audioTrackAvailable\", value);\r\n this.queryUtility.fetch();\r\n }\r\n\r\n @action.bound\r\n downloadSelectedItems() {\r\n if (this.selectedItems == null || this.selectedItems.length < 1) {\r\n return;\r\n }\r\n const validSelectedItems = filter(this.selectedItems, (item) => item.audioStreamUrl);\r\n\r\n if (validSelectedItems.length > 0) {\r\n const downloadRequests = map(\r\n validSelectedItems,\r\n (item) =>\r\n new DownloadRequest(\r\n item.id,\r\n item.title,\r\n item.artworkUrl,\r\n this.routeStore.createAlbumTrackAudioFileUrl(item.id),\r\n item.duration,\r\n item.audioFileSize\r\n )\r\n );\r\n\r\n this.routeStore.rootStore.downloadManagerStore.addItemsToQueue(downloadRequests);\r\n }\r\n\r\n this.gridStore.gridApi.deselectAll();\r\n }\r\n}\r\n\r\nexport default AblumTrackContentExplorerViewStore;\r\n","import React from \"react\";\r\nimport { PodcastEpisodeContentExplorerTemplate } from \"themes/administration/content-explorer\";\r\nimport { PodcastEpisodeContentExplorerViewStore } from \"administration/content-explorer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PodcastEpisodeContentExplorerViewStore(rootStore, componentProps),\r\n \"podcastEpisodeContentExplorerViewStore\"\r\n)\r\n@observer\r\nclass PodcastEpisodeContentExplorer extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeContentExplorer;\r\n","import React from \"react\";\r\nimport { ContentExplorerTemplate } from \"themes/administration/content-explorer\";\r\nimport { ContentExplorerViewStore } from \"administration/content-explorer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ContentExplorerViewStore(rootStore, componentProps),\r\n \"contentExplorerViewStore\"\r\n)\r\n@observer\r\nclass ContentExplorer extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ContentExplorer;\r\n","import React from \"react\";\r\nimport { AlbumTrackContentExplorerTemplate } from \"themes/administration/content-explorer\";\r\nimport { AlbumTrackContentExplorerViewStore } from \"administration/content-explorer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AlbumTrackContentExplorerViewStore(rootStore, componentProps),\r\n \"albumTrackContentExplorerViewStore\"\r\n)\r\n@observer\r\nclass AlbumTrackContentExplorer extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AlbumTrackContentExplorer;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n PodcastEpisodeContentExplorer,\r\n AlbumTrackContentExplorer,\r\n ContentExplorer,\r\n} from \"administration/content-explorer/pages\";\r\nimport {\r\n PodcastEpisodeContentExplorerRouteStore,\r\n ContentExplorerRouteStore,\r\n AlbumTrackContentExplorerRouteStore,\r\n} from \"administration/content-explorer/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"content-explorer\",\r\n routes: [\r\n {\r\n name: \"master.administration.content-explorer\",\r\n pattern: \"/content-explorer\",\r\n children: [\r\n {\r\n name: \"master.administration.content-explorer.list\",\r\n pattern: \"\",\r\n component: ContentExplorer,\r\n store: ContentExplorerRouteStore,\r\n children: [\r\n {\r\n name: \"master.administration.content-explorer.list.podcast-episodes\",\r\n pattern: \"podcast-episodes\",\r\n component: PodcastEpisodeContentExplorer,\r\n store: PodcastEpisodeContentExplorerRouteStore,\r\n },\r\n {\r\n name: \"master.administration.content-explorer.list.album-tracks\",\r\n pattern: \"album-tracks\",\r\n component: AlbumTrackContentExplorer,\r\n store: AlbumTrackContentExplorerRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.CONTENT_EXPLORER\",\r\n order: 6,\r\n icon: \"content-explorer\",\r\n route: \"master.administration.content-explorer.list.podcast-episodes\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { MrbToggle } from \"baasic-react-bootstrap/src\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction AdminPlaylistTemplate({ item, index, provided, isDragging, style, store, t }) {\r\n const { togglePlaylistIsActive, goToPlaylistPreview } = store;\r\n\r\n const className = mergeCss(\r\n \"c-device-menu__item\",\r\n isDragging ? \"c-device-menu__item--dragged\" : null,\r\n !item.isPremium ? \"fullHeight\" : null\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n {index + 1}.\r\n\r\n
{item.title}
\r\n
\r\n
\r\n goToPlaylistPreview(item.id)}\r\n className=\"c-btn c-btn--base c-btn--ghost u-mar--right--sml\"\r\n label={t(\"ADMINISTRATION.PLAYLIST.BUTTONS.PREVIEW\")}\r\n t={t}\r\n />\r\n\r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n togglePlaylistIsActive(item);\r\n }}\r\n classNameOverride=\"c-btn c-btn--status--med\"\r\n />\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nAdminPlaylistTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n store: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(AdminPlaylistTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { Image } from \"common/components\";\r\nimport { convertSecondsToHMS } from \"common/utils\";\r\nimport { isEmpty } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { useRootStore } from \"mrb/core\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\n\r\nfunction AdminPlaylistItemTemplate({ item, wrapperClassName, removeAlbumTrackFromPlaylist, t }) {\r\n const rootStore = useRootStore();\r\n const artworkUrl = item.albumTrack.artworkFileEntryId\r\n ? rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(item.albumTrack.artworkFileEntryId, 50, 50)\r\n : null;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{item.albumTrack.title}

\r\n
\r\n removeAlbumTrackFromPlaylist(item.playlistId, item.albumTrackId)}\r\n />\r\n
\r\n
\r\n

\r\n {item.albumTrack.album.artist.name}\r\n {\" • \"}\r\n {item.albumTrack.album.title}\r\n {\" • \"}\r\n {convertSecondsToHMS(item.albumTrack.duration)}\r\n

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nAdminPlaylistItemTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(AdminPlaylistItemTemplate);\r\n","import React from \"react\";\r\nimport { AdminPlaylistTemplate } from \"themes/administration/playlist/components\";\r\n\r\nclass AdminPlaylist extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminPlaylist;\r\n","import React from \"react\";\r\nimport { AdminPlaylistItemTemplate } from \"themes/administration/playlist/components\";\r\n\r\nclass AdminPlaylistItem extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminPlaylistItem;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { AdminPlaylist } from \"administration/playlist/components\";\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\r\nimport { FixedSizeList } from \"react-window\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbButton, MrbPage, MrbPageHeader } from \"baasic-react-bootstrap/src\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction AdminPlaylistListTemplate({ adminPlaylistListViewStore, t }) {\r\n const { playlists, reorderPlaylists, setVirtualizedListRef } = adminPlaylistListViewStore;\r\n\r\n return (\r\n \r\n \r\n {t(\"ADMINISTRATION.PLAYLIST.TITLE\")}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n (\r\n \r\n )}\r\n >\r\n {(provided) => (\r\n \r\n {Row}\r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nAdminPlaylistListTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst Row = React.memo(({ data, index, style, t }) => {\r\n const { items, store } = data;\r\n const item = items[index];\r\n\r\n return (\r\n \r\n {(provided) => (\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nconst Actions = observer(function Actions({ store, t }) {\r\n const { layoutActions, submitting } = store;\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport default defaultTemplate(AdminPlaylistListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { Image } from \"common/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { isEmpty } from \"lodash\";\r\nimport { EmptyState } from \"common/components/empty-state\";\r\nimport { FixedSizeList } from \"react-window\";\r\nimport { AdminPlaylistItem } from \"administration/playlist/components\";\r\nimport { NakiNigunArtistAlbumLoader } from \"administration/naki-nigun/components\";\r\n\r\nfunction AdminPlaylistPreviewTemplate({ adminPlaylistPreviewViewStore, t }) {\r\n const { item, items, coverImageUrl, loaderStore, removeAlbumTrackFromPlaylist } = adminPlaylistPreviewViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {t(\"ADMINISTRATION.PLAYLIST.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

{item.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 {isEmpty(items) ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n {({ index, style }) => (\r\n
\r\n \r\n
\r\n )}\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nAdminPlaylistPreviewTemplate.propTypes = {\r\n adminPlaylistPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(AdminPlaylistPreviewTemplate);\r\n","import { action, observable, makeObservable, toJS } from \"mobx\";\r\nimport { MrbBasePreviewViewStore } from \"mrb/core\";\r\nimport { cloneDeep, map } from \"lodash\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass AdminPlaylistListViewStore extends MrbBasePreviewViewStore {\r\n @observable playlists = [];\r\n @observable submitting = false;\r\n\r\n virtualizedListRef = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n layoutActions: {\r\n save: {\r\n label: \"Save\",\r\n onClick: () => this.save(),\r\n },\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n async onInit() {\r\n await this.getAllAdminPlaylists();\r\n }\r\n\r\n async getAllAdminPlaylists() {\r\n const data = await this.routeStore.getAllAdminGeneratedPlaylists();\r\n this.setPlaylists(data);\r\n }\r\n\r\n @action.bound\r\n setSubmitting(isSubmitting) {\r\n this.submitting = isSubmitting;\r\n }\r\n\r\n @action.bound\r\n setPlaylists(items) {\r\n this.playlists = items;\r\n }\r\n\r\n @action.bound\r\n async togglePlaylistIsActive(playlist) {\r\n try {\r\n playlist.isToggleDisabled = true;\r\n const data = cloneDeep(playlist);\r\n data.isActive = !playlist.isActive;\r\n await this.routeStore.updateAdminGeneratedPlaylists([data]);\r\n playlist.isActive = !playlist.isActive;\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PLAYLIST.ERROR.UPDATE_PLAYLIST_STATUS\")\r\n );\r\n }\r\n playlist.isToggleDisabled = false;\r\n }\r\n\r\n @action.bound\r\n async save() {\r\n try {\r\n this.setSubmitting(true);\r\n const data = map(this.playlists, (item, index) => {\r\n item.sortOrder = index + 1;\r\n return item;\r\n });\r\n await this.routeStore.updateAdminGeneratedPlaylists(data);\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PLAYLIST.ERROR.UPDATE_PLAYLIST\")\r\n );\r\n } finally {\r\n this.setSubmitting(false);\r\n }\r\n }\r\n\r\n @action.bound\r\n reorderPlaylists(result) {\r\n const { destination, source } = result;\r\n if (!destination) {\r\n return;\r\n }\r\n\r\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\r\n return;\r\n }\r\n\r\n this.moveAdminPlaylistItem(source.index, destination.index);\r\n }\r\n\r\n @action.bound\r\n moveToTop(index) {\r\n this.movePlaylistItem(index, 0);\r\n this.scrollToItem(0);\r\n }\r\n\r\n @action.bound\r\n moveAdminPlaylistItem(sourceIndex, destinationIndex) {\r\n const newPlaylist = Array.from(toJS(this.playlists));\r\n const item = newPlaylist.splice(sourceIndex, 1)[0];\r\n newPlaylist.splice(destinationIndex, 0, item);\r\n\r\n this.playlists = newPlaylist;\r\n this.routeStore.setIsRouteExitBlocked(true);\r\n }\r\n\r\n @action.bound\r\n goToPlaylistPreview(playlistId) {\r\n this.rootStore.routerStore.goTo(\"master.administration.playlist.preview\", {\r\n id: playlistId,\r\n });\r\n }\r\n\r\n setVirtualizedListRef = (ref) => {\r\n this.virtualizedListRef = ref;\r\n };\r\n}\r\n\r\nexport default AdminPlaylistListViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PlaylistService } from \"common/services\";\r\n\r\nclass AdminPlaylistListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PlaylistService);\r\n }\r\n\r\n async getAllAdminGeneratedPlaylists() {\r\n const response = await this.service.getAllAdminGeneratedPlaylists();\r\n return response.data;\r\n }\r\n\r\n async updateAdminGeneratedPlaylists(playlists) {\r\n const response = await this.service.updateAdminGeneratedPlaylists(playlists);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default AdminPlaylistListRouteStore;\r\n","import { filter } from \"lodash\";\r\nimport { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBasePreviewViewStore } from \"mrb/core\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass AdminPlaylistPreviewViewStore extends MrbBasePreviewViewStore {\r\n @observable items = [];\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const playlistId = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n id: playlistId,\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n async get(id) {\r\n const playlist = await this.routeStore.getAdminPlaylist(id);\r\n this.setItems(playlist.items);\r\n\r\n return playlist;\r\n }\r\n\r\n @action.bound\r\n setItems(items) {\r\n this.items = items;\r\n }\r\n\r\n @action.bound\r\n async removeAlbumTrackFromPlaylist(playlistId, albumTrackId) {\r\n try {\r\n await this.routeStore.deleteAlbumTrackFromAdminPlaylist(playlistId, albumTrackId);\r\n const newItems = filter(this.items, (item) => item.albumTrackId !== albumTrackId);\r\n this.setItems(newItems);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PLAYLIST.ERROR.REMOVE_PLAYLIST_ITEM\"),\r\n err\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default AdminPlaylistPreviewViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PlaylistService } from \"common/services\";\r\n\r\nclass AdminPlaylistPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.playlistService = this.rootStore.createApplicationService(PlaylistService);\r\n }\r\n\r\n async getAdminPlaylist(playlistId) {\r\n const response = await this.playlistService.getAdminPlaylist(playlistId);\r\n return response.data;\r\n }\r\n\r\n async deleteAlbumTrackFromAdminPlaylist(playlistId, albumTrackId) {\r\n const response = await this.playlistService.deleteAlbumTrackFromAdminPlaylist(playlistId, albumTrackId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default AdminPlaylistPreviewRouteStore;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { AdminPlaylistListTemplate } from \"themes/administration/playlist/pages\";\r\nimport { AdminPlaylistListViewStore } from \"administration/playlist/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminPlaylistListViewStore(rootStore, componentProps),\r\n \"adminPlaylistListViewStore\"\r\n)\r\n@observer\r\nclass AdminPlaylistList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminPlaylistList;\r\n","import React from \"react\";\r\nimport { AdminPlaylistPreviewTemplate } from \"themes/administration/playlist/pages\";\r\nimport { AdminPlaylistPreviewViewStore } from \"administration/playlist/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminPlaylistPreviewViewStore(rootStore, componentProps),\r\n \"adminPlaylistPreviewViewStore\"\r\n)\r\nclass AdminPlaylistPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminPlaylistPreview;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { AdminPlaylistList, AdminPlaylistPreview } from \"administration/playlist/pages\";\r\nimport { AdminPlaylistListRouteStore, AdminPlaylistPreviewRouteStore } from \"administration/playlist/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"Playlist\",\r\n routes: [\r\n {\r\n name: \"master.administration.playlist\",\r\n pattern: \"/playlist\",\r\n children: [\r\n {\r\n name: \"master.administration.playlist.list\",\r\n pattern: \"\",\r\n component: AdminPlaylistList,\r\n store: AdminPlaylistListRouteStore,\r\n data: {\r\n title: \"ADMINISTRATION.PLAYLIST.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.administration.playlist.preview\",\r\n pattern: \"/preview/:id\",\r\n component: AdminPlaylistPreview,\r\n store: AdminPlaylistPreviewRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.PLAYLIST\",\r\n order: 7,\r\n icon: \"playlists\",\r\n route: \"master.administration.playlist.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbListPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction PodcastListTemplate({ podcastListViewStore, t }) {\r\n const { gridStore, queryUtility } = podcastListViewStore;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nPodcastListTemplate.propTypes = {\r\n podcastListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(PodcastListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport {\r\n MrbFieldInput,\r\n MrbEditPage,\r\n MrbFieldTextArea,\r\n MrbFieldToggle,\r\n MrbFieldSelect,\r\n MrbFieldRadioButtons,\r\n MrbFieldNumericInput,\r\n} from \"mrb/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport {\r\n AddPodcastsToTheGroupLoader,\r\n AddPodcastVolumeItem,\r\n PodcastCoverImageUpload,\r\n} from \"administration/podcast/components\";\r\nimport { MrbFileUploadValidation } from \"mrb/components/media\";\r\nimport {\r\n AddStationsOrPodcastsLoader,\r\n CoverImageUploadLoader,\r\n FieldRichTextEditor,\r\n ProducerFieldSelect,\r\n} from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { PodcastEditPodcastVolumeListTemplate } from \"../components\";\r\n\r\nfunction PodcastEditTemplate({ podcastEditViewStore, t }) {\r\n const {\r\n form,\r\n loaderStore,\r\n episodeSortTypeOptions,\r\n coverImageUploadViewStore,\r\n genreSelectStore,\r\n languageSelectStore,\r\n locationSelectStore,\r\n overrideRadioUsersSettingsIsVisible,\r\n overrideAppUsersSettingsIsVisible,\r\n producerSelectStore,\r\n podcastContentTypeSelectStore,\r\n isTorahAnytimeTypeSelected,\r\n } = podcastEditViewStore;\r\n const { fileUploadStore } = coverImageUploadViewStore;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {form.$(\"isPremium\").value ? (\r\n \r\n ) : null}\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {overrideRadioUsersSettingsIsVisible ? (\r\n \r\n ) : null}\r\n
\r\n \r\n \r\n {overrideAppUsersSettingsIsVisible ? (\r\n \r\n ) : null}\r\n\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n }>\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(\"ADMINISTRATION.PODCAST.EDIT.ADD_PODCASTVOLUME.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
\r\n
\r\n );\r\n}\r\n\r\nPodcastEditTemplate.propTypes = {\r\n podcastEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(PodcastEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbToggle } from \"mrb/components/checkbox\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { PodcastGroupPreviewSubPodcastList } from \"administration/podcast/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { DescriptionLoader, HTMLRender, ToggleActionsLoader, Image } from \"common/components\";\r\n\r\nfunction PodcastGroupPreviewTemplate({ podcastGroupPreviewViewStore, t }) {\r\n const {\r\n item,\r\n loaderStore,\r\n toggleIsActive,\r\n togglePremiumStatus,\r\n toggleVisibilityStatus,\r\n toggleFeaturedStatus,\r\n toggleAppVisibilityStatus,\r\n toggleNakiTouchVisibilityStatus,\r\n coverImageUrl,\r\n deletePodcast,\r\n } = podcastGroupPreviewViewStore;\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 {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.GROUP_TITLE\")}\r\n

\r\n

{item.title}

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.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\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.PORTAL_DESCRIPTION\")}\r\n

\r\n \r\n {item.alternativeDescription || \"-\"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.PREMIUM_INFO\")}\r\n

\r\n \r\n {item.premiumInfo || \"-\"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.STATUS\")}\r\n
\r\n toggleIsActive(event.target.checked)}\r\n />\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.PREMIUM\")}\r\n
\r\n togglePremiumStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.VISIBLE_IN_APP\")}\r\n
\r\n toggleAppVisibilityStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.VISIBLE_ON_PORTAL\")}\r\n
\r\n toggleVisibilityStatus(event.target.checked)}\r\n />\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.FEATURED_ON_PORTAL\")}\r\n
\r\n toggleFeaturedStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.VISIBLE_IN_EMBEDDED_APP\")}\r\n
\r\n toggleNakiTouchVisibilityStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.DELETE_LABEL\")}\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nPodcastGroupPreviewTemplate.propTypes = {\r\n podcastGroupPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(PodcastGroupPreviewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbToggle } from \"mrb/components/checkbox\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { PodcastAnalyticsStatsWidget } from \"administration/podcast/components\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { podcastContentType } from \"common/constants\";\r\nimport { ProducerLabel } from \"common/components/producer\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport {\r\n PreviewContentLoader,\r\n HTMLRender,\r\n Genres,\r\n DescriptionLoader,\r\n ToggleActionsLoader,\r\n Image,\r\n} from \"common/components\";\r\nimport { PodcastPreviewPodcastVolumeList } from \"administration/podcast/components\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction PodcastPreviewTemplate({ podcastPreviewViewStore, t }) {\r\n const {\r\n item,\r\n loaderStore,\r\n toggleIsActive,\r\n togglePremiumStatus,\r\n toggleOnByDefaultStatus,\r\n toggleOnByDefaultInAppStatus,\r\n toggleOnByDefaultInNakiTouchStatus,\r\n toggleVisibilityStatus,\r\n toggleFeaturedStatus,\r\n toggleRecentlyUpdatedVisibilityStatus,\r\n toggleAppVisibilityStatus,\r\n toggleExcludedFromRevenueStatus,\r\n toggleNakiTouchVisibilityStatus,\r\n coverImageUrl,\r\n deletePodcast,\r\n id,\r\n routeStore,\r\n isTorahAnytimePodcast,\r\n toggleHlsEnabledStatus,\r\n } = podcastPreviewViewStore;\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 {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.TITLE\")}\r\n

\r\n
\r\n

{item.title}

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.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\n

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.PORTAL_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 {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.PREMIUM_INFO\")}\r\n

\r\n \r\n {item.premiumInfo || \"-\"}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.CONTENT_TYPE\")}\r\n

\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n {item.podcastFeed && (\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.FEED_URL\")}\r\n

\r\n \r\n {item.podcastFeed.feedUrl}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.LOCATION\")}\r\n

\r\n

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

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.LANGUAGE\")}\r\n

\r\n

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

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.GENRES\")}\r\n

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.EPISODE_SORT_TYPE\")}\r\n

\r\n

\r\n {item.podcastFeed &&\r\n item.podcastFeed.episodeSortType &&\r\n item.podcastFeed.episodeSortType.name}\r\n

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.EPISODE_LIMIT\")}\r\n

\r\n

\r\n {item.podcastFeed && item.podcastFeed.episodeLimit\r\n ? item.podcastFeed.episodeLimit\r\n : \"-\"}\r\n

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.PRODUCER\")}\r\n

\r\n

\r\n {item.producer ? (\r\n \r\n ) : (\r\n \"-\"\r\n )}\r\n

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.DESCRIPTION\")}\r\n

\r\n

{item.description || \"-\"}

\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.STATUS\")}\r\n
\r\n toggleIsActive(event.target.checked)}\r\n />\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.PREMIUM\")}\r\n
\r\n togglePremiumStatus(event.target.checked)}\r\n />\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.MAKE_DEFAULT\")}\r\n
\r\n toggleOnByDefaultStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.VISIBLE_IN_APP\")}\r\n
\r\n \r\n toggleAppVisibilityStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.MAKE_DEFAULT_IN_APP\")}\r\n
\r\n \r\n toggleOnByDefaultInAppStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.VISIBLE_ON_PORTAL\")}\r\n
\r\n toggleVisibilityStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.FEATURED_ON_PORTAL\")}\r\n
\r\n toggleFeaturedStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\r\n \"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.VISIBLE_IN_EMBEDDED_APP\"\r\n )}\r\n
\r\n \r\n toggleNakiTouchVisibilityStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n
\r\n
\r\n {t(\r\n \"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.MAKE_DEFAULT_IN_EMBEDDED_APP\"\r\n )}\r\n
\r\n \r\n toggleOnByDefaultInNakiTouchStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\r\n \"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.RECENTLY_UPDATED_VISIBILITY\"\r\n )}\r\n
\r\n \r\n toggleRecentlyUpdatedVisibilityStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.HLS_ENABLED\")}\r\n
\r\n toggleHlsEnabledStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.EXCLUDED_FROM_REVENUE\")}\r\n
\r\n \r\n toggleExcludedFromRevenueStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.DELETE_LABEL\")}\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nPodcastPreviewTemplate.propTypes = {\r\n podcastPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction PodcastContentType({ contentType, t }) {\r\n return contentType === podcastContentType.torahAnytime\r\n ? t(\"ADMINISTRATION.PODCAST.CONTENT_TYPE.TORAH_ANYTIME\")\r\n : t(\"ADMINISTRATION.PODCAST.CONTENT_TYPE.DEFAULT\");\r\n}\r\n\r\nexport default defaultTemplate(PodcastPreviewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbFieldToggle } from \"mrb/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport {\r\n AddPodcastGroupItem,\r\n PodcastGroupEditSubPodcastList,\r\n PodcastGroupEditPageLayout,\r\n PodcastCoverImageUpload,\r\n AddPodcastsToTheGroupLoader,\r\n} from \"administration/podcast/components\";\r\nimport { MrbFileUploadValidation } from \"mrb/components/media\";\r\nimport { AddStationsOrPodcastsLoader, CoverImageUploadLoader, FieldRichTextEditor } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nfunction PodcastGroupEditTemplate({ podcastGroupEditViewStore, t }) {\r\n const { form, loaderStore, coverImageUploadViewStore } = podcastGroupEditViewStore;\r\n const { fileUploadStore } = coverImageUploadViewStore;\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 {form.$(\"isPremium\").value ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n }>\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(\"ADMINISTRATION.PODCAST.EDIT.ADD_PODCAST_TO_GROUP.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}\r\n\r\nPodcastGroupEditTemplate.propTypes = {\r\n podcastGroupEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(PodcastGroupEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { Image, StatusTag, Popover } from \"common/components\";\r\nimport {\r\n PodcastEpisode,\r\n PodcastEpisodeListLoader,\r\n PodcastEpisodeEditTitleModal,\r\n} from \"administration/podcast/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { FixedSizeList } from \"react-window\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { GenerateAudioFilesModal } from \"administration/content-sync/components\";\r\nimport { isNil, isEmpty } from \"lodash\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { EmptyState } from \"common/components/empty-state\";\r\n\r\nfunction PodcastEpisodeListTemplate({ podcastEpisodeListViewStore, t }) {\r\n const {\r\n openGeneratePopupForPodcast,\r\n item,\r\n coverImageUrl,\r\n isSyncing,\r\n openGeneratePopupForEpisode,\r\n goToUploadEpisode,\r\n generateAudioFilesModal,\r\n loaderStore,\r\n episodes,\r\n filteredEpisodes,\r\n filter,\r\n syncNewEpisodes,\r\n editPodcastEpisodeTitleModal,\r\n openEditPodcastEpisodeTitleModal,\r\n downloadPodcastEpisode,\r\n deletePodcastEpisode,\r\n } = podcastEpisodeListViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n {item ? (\r\n \r\n {isNil(item.parentPodcastId) ? (\r\n \r\n \r\n \r\n \r\n {item.title}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {item.parentPodcast.title}\r\n \r\n )}\r\n
\r\n {isSyncing ? (\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.EPISODES.HEADER.SYNC_MESSAGE\")}\r\n

\r\n
\r\n ) : null}\r\n {item.isActive && (\r\n \r\n }\r\n contentList={\r\n item.podcastFeed.hlsEnabled\r\n ? [\r\n {\r\n title: t(\r\n \"ADMINISTRATION.PODCAST.EPISODES.HEADER.BUTTONS.GENERATE\"\r\n ),\r\n action: openGeneratePopupForPodcast,\r\n isDisabled: isSyncing,\r\n },\r\n {\r\n title: t(\r\n \"ADMINISTRATION.PODCAST.EPISODES.HEADER.BUTTONS.SYNC_NEW_EPISODES\"\r\n ),\r\n action: syncNewEpisodes,\r\n isDisabled: isSyncing,\r\n },\r\n ]\r\n : [\r\n {\r\n title: t(\r\n \"ADMINISTRATION.PODCAST.EPISODES.HEADER.BUTTONS.SYNC_NEW_EPISODES\"\r\n ),\r\n action: syncNewEpisodes,\r\n isDisabled: isSyncing,\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\n {() => (\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.EPISODES.HEADER.TITLE\")}\r\n

\r\n
\r\n

{item.title}

\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n }>\r\n {() => (\r\n \r\n {!isEmpty(episodes) && (\r\n
\r\n \r\n
\r\n )}\r\n {!isEmpty(episodes) && isEmpty(filteredEpisodes) ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n {({ index, style }) => (\r\n
\r\n \r\n
\r\n )}\r\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 EpisodeFilter = observer(function EpisodeFilter({ filter, t }) {\r\n const { setSearch, setHlsAvailable, setMp3Available } = filter;\r\n\r\n const onChange = (event) => {\r\n setSearch(event.target.value);\r\n };\r\n\r\n const onInlineReset = () => {\r\n setSearch(\"\");\r\n };\r\n\r\n const isSearchEmpty = isEmpty(filter.search);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n {!isSearchEmpty && (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n setHlsAvailable(value)}\r\n />\r\n
\r\n
\r\n \r\n setMp3Available(value)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nPodcastEpisodeListTemplate.propTypes = {\r\n podcastEpisodeListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(PodcastEpisodeListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbEditPage } from \"mrb/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { PodcastCoverImageUpload } from \"administration/podcast/components\";\r\nimport { MrbFileUpload, MrbFileUploadValidation } from \"mrb/components/media\";\r\nimport { CoverImageUploadLoader, UploadAlbumTrackLoader } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { isNil } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PodcastEpisodeEditTemplate({ podcastEpisodeEditViewStore, t }) {\r\n const { form, loaderStore, fileUploadStore, file, coverImageUploadViewStore } = podcastEpisodeEditViewStore;\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 {isNil(file) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n }\r\n >\r\n {() => (\r\n \r\n )}\r\n \r\n \r\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 FileUploadNote() {\r\n return (\r\n \r\n \r\n

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

\r\n
    \r\n
  • • Upload mp3 file
  • \r\n
  • • Max. file size is 200MB
  • \r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction UploadedFileInfo({ file }) {\r\n return (\r\n \r\n \r\n

Name:

\r\n

\r\n {file.name}\r\n

\r\n\r\n

Size:

\r\n

{`${(file.size / Math.round(1024 * 1024)).toFixed(2)} MB`}

\r\n
\r\n );\r\n}\r\n\r\nconst UploadFooter = observer(function UploadFooter({ store }) {\r\n const { attachAudioFile, file, removeAudioFile, loaderStore } = store;\r\n\r\n return (\r\n \r\n {file ? (\r\n
\r\n \r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n});\r\n\r\nPodcastEpisodeEditTemplate.propTypes = {\r\n podcastEpisodeEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(PodcastEpisodeEditTemplate);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PodcastListTemplate } from \"themes/administration/podcast/pages\";\r\nimport { PodcastListViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastListViewStore(rootStore, componentProps),\r\n \"podcastListViewStore\"\r\n)\r\n@observer\r\nclass PodcastList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastList;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PodcastEditTemplate } from \"themes/administration/podcast/pages\";\r\nimport { PodcastEditViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastEditViewStore(rootStore, componentProps),\r\n \"podcastEditViewStore\"\r\n)\r\n@observer\r\nclass PodcastEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastEdit;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PodcastGroupPreviewTemplate } from \"themes/administration/podcast/pages\";\r\nimport { PodcastGroupPreviewViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastGroupPreviewViewStore(rootStore, componentProps),\r\n \"podcastGroupPreviewViewStore\"\r\n)\r\n@observer\r\nclass PodcastGroupPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastGroupPreview;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PodcastPreviewTemplate } from \"themes/administration/podcast/pages\";\r\nimport { PodcastPreviewViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastPreviewViewStore(rootStore, componentProps),\r\n \"podcastPreviewViewStore\"\r\n)\r\n@observer\r\nclass PodcastPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastPreview;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PodcastGroupEditTemplate } from \"themes/administration/podcast/pages\";\r\nimport { PodcastGroupEditViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastGroupEditViewStore(rootStore, componentProps),\r\n \"podcastGroupEditViewStore\"\r\n)\r\n@observer\r\nclass PodcastGroupEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastGroupEdit;\r\n","import React from \"react\";\r\nimport { PodcastEpisodeListTemplate } from \"themes/administration/podcast/pages\";\r\nimport { PodcastEpisodeListViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PodcastEpisodeListViewStore(rootStore, componentProps),\r\n \"podcastEpisodeListViewStore\"\r\n)\r\nclass PodcastEpisodeList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeList;\r\n","import React from \"react\";\r\nimport { PodcastEpisodeEditTemplate } from \"themes/administration/podcast/pages\";\r\nimport { PodcastEpisodeEditViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PodcastEpisodeEditViewStore(rootStore, componentProps),\r\n \"podcastEpisodeEditViewStore\"\r\n)\r\nclass PodcastEpisodeEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeEdit;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n PodcastEdit,\r\n PodcastList,\r\n PodcastGroupPreview,\r\n PodcastPreview,\r\n PodcastGroupEdit,\r\n PodcastEpisodeList,\r\n PodcastEpisodeEdit,\r\n} from \"administration/podcast/pages\";\r\nimport {\r\n PodcastEditRouteStore,\r\n PodcastListRouteStore,\r\n PodcastGroupPreviewRouteStore,\r\n PodcastPreviewRouteStore,\r\n PodcastGroupEditRouteStore,\r\n PodcastEpisodeListRouteStore,\r\n PodcastEpisodeEditRouteStore,\r\n} from \"administration/podcast/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"Podcast\",\r\n routes: [\r\n {\r\n name: \"master.administration.podcast\",\r\n pattern: \"/podcast\",\r\n children: [\r\n {\r\n name: \"master.administration.podcast.create\",\r\n pattern: \"/create\",\r\n component: PodcastEdit,\r\n store: PodcastEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.podcast.create-group\",\r\n pattern: \"/create-group\",\r\n component: PodcastGroupEdit,\r\n store: PodcastGroupEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.podcast.edit-group\",\r\n pattern: \"/:id/edit-group\",\r\n component: PodcastGroupEdit,\r\n store: PodcastGroupEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.podcast.edit\",\r\n pattern: \"/:id/edit\",\r\n component: PodcastEdit,\r\n store: PodcastEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.podcast.list\",\r\n pattern: \"\",\r\n component: PodcastList,\r\n store: PodcastListRouteStore,\r\n data: {\r\n title: \"ADMINISTRATION.PODCAST.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.administration.podcast.preview-group\",\r\n pattern: \"/:id/group\",\r\n component: PodcastGroupPreview,\r\n store: PodcastGroupPreviewRouteStore,\r\n },\r\n {\r\n name: \"master.administration.podcast.preview\",\r\n pattern: \"/:id\",\r\n component: PodcastPreview,\r\n store: PodcastPreviewRouteStore,\r\n },\r\n {\r\n name: \"master.administration.podcast.episodes\",\r\n pattern: \"/:id/episodes\",\r\n component: PodcastEpisodeList,\r\n store: PodcastEpisodeListRouteStore,\r\n },\r\n {\r\n name: \"master.administration.podcast.episodes.create\",\r\n pattern: \"/:id/episodes/create\",\r\n component: PodcastEpisodeEdit,\r\n store: PodcastEpisodeEditRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.PODCAST\",\r\n order: 3,\r\n icon: \"podcasts\",\r\n route: \"master.administration.podcast.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst GenreListLoaderTemplate = (props) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n const loaderList = [];\r\n let y = 0;\r\n\r\n for (let i = 0; i < 10; i++) {\r\n loaderList.push(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n y += 74;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {loaderList}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default GenreListLoaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { Image } from \"common/components\";\r\n\r\nfunction GenreContentListItemTemplate({ item }) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {item.routeParams ? (\r\n \r\n {item.title}\r\n \r\n ) : (\r\n {item.title || \"Unknown\"}\r\n )}\r\n {item.isPremium ? (\r\n \r\n ) : null}\r\n
\r\n \r\n \r\n {item.isActive ? \"Active\" : \"Inactive\"}\r\n

\r\n
\r\n
{item.type}
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nGenreContentListItemTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default GenreContentListItemTemplate;\r\n","import React from \"react\";\r\nimport { GenreContentListItemTemplate } from \"themes/administration/genre/components\";\r\n\r\nfunction GenreContentListItem(props) {\r\n return ;\r\n}\r\n\r\nexport default GenreContentListItem;\r\n","import React from \"react\";\r\nimport { GenreListLoaderTemplate } from \"themes/administration/genre/components\";\r\n\r\nfunction GenreListLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default GenreListLoader;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { GenreContentListItem, GenreListLoader } from \"administration/genre/components\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbPreviewPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction GenreContentListTemplate({ genreContentListViewStore, t }) {\r\n const { gridStore, genre } = genreContentListViewStore;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n (\r\n
\r\n \r\n

\r\n {t(\"ADMINISTRATION.GENRE.CONTENT_LIST.GENRE_CONTENT_LIST_EMPTY_STATE_DESCRIPTION\")}\r\n

\r\n

\r\n {t(\r\n \"ADMINISTRATION.GENRE.CONTENT_LIST.GENRE_CONTENT_LIST_EMPTY_STATE_SUB_DESCRIPTION\"\r\n )}\r\n

\r\n
\r\n )}\r\n loaderRenderer={() => }\r\n store={gridStore}\r\n cellRenderer={(props) => }\r\n />\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nconst Header = observer(function Header({ genre }) {\r\n return (\r\n \r\n
\r\n {genre ? (\r\n \r\n \r\n \r\n \r\n {genre.name}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n});\r\n\r\nGenreContentListTemplate.propTypes = {\r\n genreContentListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(GenreContentListTemplate);\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { GenreService, GenreLookupService } from \"common/services\";\r\n\r\nclass GenreContentListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.service = this.rootStore.createApplicationService(GenreService);\r\n this.genreLookupService = this.rootStore.createApplicationService(GenreLookupService);\r\n }\r\n\r\n async getGenreContent(id, filter) {\r\n const response = await this.service.getGenreContent(id, filter);\r\n return response.data;\r\n }\r\n\r\n async getGenre(id) {\r\n const response = await this.genreLookupService.get(id);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default GenreContentListRouteStore;\r\n","import { MrbBaseInfiniteScrollListViewStore } from \"mrb/core\";\r\nimport { MrbInfiniteScrollGridViewStore } from \"mrb/components/infinite-scroll-grid\";\r\nimport { action, observable, makeObservable } from \"mobx\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\n\r\nclass GenreContentListViewStore extends MrbBaseInfiniteScrollListViewStore {\r\n @observable genre = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {});\r\n makeObservable(this);\r\n\r\n this.routeStore = routeStore;\r\n this.genreId = rootStore.routerStore.routerState.params.id;\r\n\r\n this.setGridStore(\r\n new MrbInfiniteScrollGridViewStore(this.rootStore, this.queryUtility, {\r\n generateKey: (item) => item.id,\r\n mapper: (item) => {\r\n if (item.podcast) {\r\n return {\r\n id: item.podcast.id,\r\n type: \"Podcast\",\r\n title: item.podcast.title,\r\n isPremium: item.podcast.isPremium,\r\n isActive: item.podcast.isActive,\r\n coverImageUrl: this.createPodcastCoverImageUrl(item.podcast),\r\n routeParams: {\r\n route: \"master.administration.podcast.preview\",\r\n params: { id: item.podcast.id },\r\n },\r\n };\r\n } else if (item.album) {\r\n return {\r\n id: item.album.id,\r\n type: \"Album\",\r\n title: item.album.title,\r\n isPremium: item.album.isPremium,\r\n isActive: item.album.isActive,\r\n coverImageUrl: this.createAlbumCoverImageUrl(item.album),\r\n routeParams: {\r\n route: \"master.administration.naki-nigun.artist.preview\",\r\n params: { id: item.album.artistId },\r\n queryParams: { albumId: item.album.id },\r\n },\r\n };\r\n } else if (item.station) {\r\n return {\r\n id: item.station.id,\r\n type: \"Station\",\r\n title: item.station.title,\r\n isPremium: item.station.isPremium,\r\n isActive: item.station.isActive,\r\n coverImageUrl: this.createStationCoverImageUrl(item.station),\r\n routeParams: {\r\n route: \"master.administration.station.preview\",\r\n params: { id: item.station.id },\r\n },\r\n };\r\n }\r\n },\r\n })\r\n );\r\n\r\n this.createPodcastCoverImageUrl = this.createPodcastCoverImageUrl.bind(this);\r\n this.createAlbumCoverImageUrl = this.createAlbumCoverImageUrl.bind(this);\r\n this.createStationCoverImageUrl = this.createStationCoverImageUrl.bind(this);\r\n }\r\n\r\n async onInit() {\r\n return Promise.all([this.queryUtility.initialize(), this.getGenre(this.genreId)]);\r\n }\r\n\r\n async getGenre(genreId) {\r\n if (genreId) {\r\n try {\r\n const genre = await this.routeStore.getGenre(genreId);\r\n this.setGenre(genre);\r\n return true;\r\n } catch (error) {\r\n if (error.statusCode === httpStatusCodes.NotFound) {\r\n await this.rootStore.routerStore.goToNotFound();\r\n return false;\r\n } else {\r\n throw error;\r\n }\r\n }\r\n }\r\n }\r\n\r\n async find(params) {\r\n if (this.genreId) {\r\n try {\r\n const filter = {\r\n pageNumber: params.pageNumber,\r\n pageSize: 30,\r\n };\r\n const genreContent = await this.routeStore.getGenreContent(this.genreId, filter);\r\n return genreContent;\r\n } catch (error) {\r\n if (error.statusCode === httpStatusCodes.NotFound) {\r\n await this.rootStore.routerStore.goToNotFound();\r\n return false;\r\n } else {\r\n throw error;\r\n }\r\n }\r\n }\r\n }\r\n\r\n createPodcastCoverImageUrl(podcast) {\r\n if (podcast.coverImageId) {\r\n return this.rootStore.coverImageFactory.createPodcastCoverImageUrl(podcast.coverImageId, 150, 150);\r\n }\r\n return null;\r\n }\r\n\r\n createAlbumCoverImageUrl(album) {\r\n if (album.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(album.coverImageId, 150, 150);\r\n }\r\n return null;\r\n }\r\n\r\n createStationCoverImageUrl(station) {\r\n if (station.coverImageId) {\r\n return this.rootStore.coverImageFactory.createStationCoverImageUrl(station.coverImageId, 150, 150);\r\n }\r\n return null;\r\n }\r\n\r\n @action.bound\r\n setGenre(genre) {\r\n this.genre = genre;\r\n }\r\n}\r\n\r\nexport default GenreContentListViewStore;\r\n","import React from \"react\";\r\nimport { GenreContentListTemplate } from \"themes/administration/genre/pages\";\r\nimport { GenreContentListViewStore } from \"administration/genre/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new GenreContentListViewStore(rootStore, componentProps),\r\n \"genreContentListViewStore\"\r\n)\r\nclass GenreContentList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default GenreContentList;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { GenreContentList } from \"administration/genre/pages\";\r\nimport { GenreContentListRouteStore } from \"administration/genre/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"Genre\",\r\n routes: [\r\n {\r\n name: \"master.administration.genre\",\r\n pattern: \"/genre\",\r\n children: [\r\n {\r\n name: \"master.administration.genre.content\",\r\n pattern: \"/content/:id\",\r\n store: GenreContentListRouteStore,\r\n component: GenreContentList,\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 { MrbEditPage, MrbButton } from \"mrb/components\";\r\nimport { AddNewAccountLoader, AdminProducerAccountEdit } from \"administration/producer/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction AdminProducerAccountsTemplate({ adminProducerAccountsViewStore, t }) {\r\n const { loaderStore, form, addNewAccount } = adminProducerAccountsViewStore;\r\n return (\r\n \r\n }>\r\n {() => (\r\n \r\n {form.fields.size > 0 && }\r\n {form.fields.size > 0 &&\r\n form.map((field, key) => (\r\n \r\n ))}\r\n\r\n {form.fields.size === 0 && }\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nAdminProducerAccountsTemplate.propTypes = {\r\n adminProducerAccountsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction NoDataEmptyState({ onClickAddNew, t }) {\r\n return (\r\n
\r\n
\r\n
\r\n

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

\r\n

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

\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nconst AddNewAccount = ({ onClickAddNew, t }) => {\r\n return (\r\n
\r\n
\r\n
\r\n

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

\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(AdminProducerAccountsTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbListPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { AdminProducerListSummaryPreview } from \"administration/producer/components\";\r\n\r\nfunction AdminProducerListTemplate({ adminProducerListViewStore, t }) {\r\n const { gridStore, queryUtility } = adminProducerListViewStore;\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\nAdminProducerListTemplate.propTypes = {\r\n adminProducerListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(AdminProducerListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { ProducerPaymentReportSummary } from \"administration/producer/components\";\r\nimport { ProducerReportLayout, ProducerReport } from \"common/components/producer\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction ProducerPaymentReportPreviewTemplate({ producerPaymentReportPreviewViewStore, 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\nProducerPaymentReportPreviewTemplate.propTypes = {\r\n producerPaymentReportPreviewViewStore: PropTypes.object.isRequired,\r\n summaryNameFieldRenderer: PropTypes.any,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction BackButton({ summaryData }) {\r\n return (\r\n \r\n \r\n \r\n \r\n {summaryData.producerName}\r\n \r\n );\r\n}\r\n\r\nexport default defaultTemplate(ProducerPaymentReportPreviewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage } from \"mrb/components/layout\";\r\nimport { AnalyticsGraphLoader } from \"administration/analytics/components\";\r\nimport {\r\n ProducerPreviewSummary,\r\n ProducerPreviewMostPopularContent,\r\n AdminProducerAccountsList,\r\n} from \"administration/producer/components\";\r\nimport { ProducerReportsTable } from \"common/components/producer\";\r\nimport { LineChart } from \"common/components\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction AdminProducerPreviewTemplate({ adminProducerPreviewViewStore, t }) {\r\n const { gridStore, chartStore, routeStore } = adminProducerPreviewViewStore;\r\n return (\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n

Revenue in the last 12 months

\r\n
\r\n } />\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nAdminProducerPreviewTemplate.propTypes = {\r\n adminProducerPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(AdminProducerPreviewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbEditPage } from \"mrb/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction AdminProducerEditTemplate({ adminProducerEditViewStore, t }) {\r\n const {\r\n form,\r\n loaderStore,\r\n } = adminProducerEditViewStore;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
Loader
}>\r\n {() => (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nAdminProducerEditTemplate.propTypes = {\r\n adminProducerEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(AdminProducerEditTemplate);","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage } from \"mrb/components/layout\";\r\nimport {\r\n AdminProducerAccountSummaryPreview,\r\n AdminProducerAccountAssignedProducersPreview,\r\n} from \"administration/producer/components\";\r\nimport { ProducerAccountPreviewBalance, ProducerAccountPreviewRevenueTransaction } from \"common/components/producer\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport {\r\n AdminProducerAccountBalanceEdit,\r\n AdminProducerAccountStripeAccountEdit,\r\n} from \"administration/producer/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction AdminProducerAccountPreviewTemplate({ adminProducerAccountPreviewViewStore, t }) {\r\n const {\r\n revenueGridStore,\r\n balanceGridStore,\r\n addToAccountBalanceModal,\r\n updateStripeAccountModal,\r\n openAddToAccountBalanceModal,\r\n openUpdateStripeAccountModal,\r\n } = adminProducerAccountPreviewViewStore;\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

Actions

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nAdminProducerAccountPreviewTemplate.propTypes = {\r\n adminProducerAccountPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction AddToAccountBalanceModal({ modalParams, t }) {\r\n return (\r\n \r\n {(props) => (\r\n
\r\n
\r\n

Change Account Balance

\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nfunction UpdateStripeAccountModal({ modalParams, t }) {\r\n return (\r\n \r\n {(props) => (\r\n
\r\n
\r\n

Change Stripe Account

\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(AdminProducerAccountPreviewTemplate);\r\n","import React from \"react\";\r\nimport { AdminProducerAccountsTemplate } from \"themes/administration/producer/pages\";\r\nimport { AdminProducerAccountsViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminProducerAccountsViewStore(rootStore, componentProps),\r\n \"adminProducerAccountsViewStore\"\r\n)\r\nclass AdminProducerAccounts extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminProducerAccounts;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { AdminProducerListTemplate } from \"themes/administration/producer/pages\";\r\nimport { AdminProducerListViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminProducerListViewStore(rootStore, componentProps),\r\n \"adminProducerListViewStore\"\r\n)\r\n@observer\r\nclass AdminProducerList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminProducerList;\r\n","import React from \"react\";\r\nimport { ProducerPaymentReportPreviewTemplate } from \"themes/administration/producer/pages\";\r\nimport { ProducerPaymentReportPreviewViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerPaymentReportPreviewViewStore(rootStore, componentProps),\r\n \"producerPaymentReportPreviewViewStore\"\r\n)\r\n@observer\r\nclass ProducerPaymentReportPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerPaymentReportPreview;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { AdminProducerPreviewTemplate } from \"themes/administration/producer/pages\";\r\nimport { AdminProducerPreviewViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminProducerPreviewViewStore(rootStore, componentProps),\r\n \"adminProducerPreviewViewStore\"\r\n)\r\n@observer\r\nclass AdminProducerPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminProducerPreview;\r\n","import React from \"react\";\r\nimport { AdminProducerEditTemplate } from \"themes/administration/producer/pages\";\r\nimport { AdminProducerEditViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminProducerEditViewStore(rootStore, componentProps),\r\n \"adminProducerEditViewStore\"\r\n)\r\nclass AdminProducerEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminProducerEdit;","import React from \"react\";\r\nimport { AdminProducerAccountPreviewTemplate } from \"themes/administration/producer/pages\";\r\nimport { AdminProducerAccountPreviewViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminProducerAccountPreviewViewStore(rootStore, componentProps),\r\n \"adminProducerAccountPreviewViewStore\"\r\n)\r\nclass AdminProducerAccountPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountPreview;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n AdminProducerList,\r\n ProducerPaymentReportPreview,\r\n AdminProducerPreview,\r\n AdminProducerAccounts,\r\n AdminProducerEdit,\r\n AdminProducerAccountPreview,\r\n} from \"administration/producer/pages\";\r\nimport {\r\n AdminProducerListRouteStore,\r\n ProducerPaymentReportPreviewRouteStore,\r\n AdminProducerPreviewRouteStore,\r\n AdminProducerAccountEditRouteStore,\r\n AdminProducerEditRouteStore,\r\n AdminProducerAccountPreviewRouteStore,\r\n} from \"administration/producer/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"Producer\",\r\n routes: [\r\n {\r\n name: \"master.administration.producer\",\r\n pattern: \"/producer\",\r\n children: [\r\n {\r\n name: \"master.administration.producer.create\",\r\n pattern: \"/create\",\r\n component: AdminProducerEdit,\r\n store: AdminProducerEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.producer.edit\",\r\n pattern: \"/:id/edit\",\r\n component: AdminProducerEdit,\r\n store: AdminProducerEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.producer.list\",\r\n pattern: \"\",\r\n component: AdminProducerList,\r\n store: AdminProducerListRouteStore,\r\n data: {\r\n title: \"ADMINISTRATION.PRODUCER.PAYMENT.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.administration.producer.preview\",\r\n pattern: \"/:id\",\r\n component: AdminProducerPreview,\r\n store: AdminProducerPreviewRouteStore,\r\n },\r\n {\r\n name: \"master.administration.producer.preview.payment\",\r\n pattern: \"/:id/payment\",\r\n component: ProducerPaymentReportPreview,\r\n store: ProducerPaymentReportPreviewRouteStore,\r\n },\r\n {\r\n name: \"master.administration.producer.accounts\",\r\n pattern: \"/:id/accounts\",\r\n component: AdminProducerAccounts,\r\n store: AdminProducerAccountEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.producer.account\",\r\n pattern: \"/account/:id\",\r\n component: AdminProducerAccountPreview,\r\n store: AdminProducerAccountPreviewRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.PRODUCER\",\r\n order: 10,\r\n icon: \"producers\",\r\n route: \"master.administration.producer.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction DashboardTemplate() {\r\n return (\r\n \r\n
\r\n \r\n

Hi, welcome to NakiRadio!

\r\n

\r\n Use this application for stations, podcasts, devices, and users administration.\r\n

\r\n
\r\n
\r\n );\r\n}\r\nexport default observer(DashboardTemplate);\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\n\r\nclass DashboardRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n}\r\n\r\nexport default DashboardRouteStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\n\r\nclass DashboardViewStore extends MrbBaseViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n }\r\n}\r\n\r\nexport default DashboardViewStore;\r\n","import React from \"react\";\r\nimport { DashboardTemplate } from \"themes/administration/dashboard/pages\";\r\nimport { DashboardViewStore } from \"administration/dashboard/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@setCurrentView((rootStore, componentProps) => new DashboardViewStore(rootStore, componentProps), \"dashboardViewStore\")\r\n@observer\r\nclass Dashboard extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default Dashboard;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { Dashboard } from \"administration/dashboard/pages\";\r\nimport { DashboardRouteStore } from \"administration/dashboard/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"dashboard\",\r\n routes: [\r\n {\r\n name: \"master.administration.dashboard\",\r\n pattern: \"/dashboard\",\r\n component: Dashboard,\r\n store: DashboardRouteStore,\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.DASHBOARD\",\r\n order: 1,\r\n icon: \"dashboard\",\r\n route: \"master.administration.dashboard\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbFieldToggle } from \"mrb/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbFileUploadValidation } from \"mrb/components/media\";\r\nimport {\r\n NakiNigunAddAlbum,\r\n NakiNigunArtistEditAlbumList,\r\n NakiNigunArtistEditPageLayout,\r\n NakiNigunArtistEditNameLoader,\r\n NakiNigunAddAlbumLoader,\r\n} from \"administration/naki-nigun/components\";\r\nimport { CoverImageUploadLoader, CoverImageUpload } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction NakiNigunArtistEditTemplate({ nakiNigunArtistEditViewStore, t }) {\r\n const { form, loaderStore, coverImageUploadViewStore } = nakiNigunArtistEditViewStore;\r\n const { fileUploadStore } = coverImageUploadViewStore;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n }>\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(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ADD_ALBUMS.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}\r\n\r\nNakiNigunArtistEditTemplate.propTypes = {\r\n nakiNigunArtistEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(NakiNigunArtistEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbListPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction NakiNigunArtistListTemplate({ nakiNigunArtistListViewStore, t }) {\r\n const { gridStore, queryUtility } = nakiNigunArtistListViewStore;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nNakiNigunArtistListTemplate.propTypes = {\r\n nakiNigunArtistListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(NakiNigunArtistListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPreviewPage, MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbToggle } from \"mrb/components/checkbox\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { NakiNigunArtistPreviewAlbumList } from \"administration/naki-nigun/components\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { ToggleActionsLoader, Image } from \"common/components\";\r\n\r\nfunction NakiNigunArtistPreviewTemplate({ nakiNigunArtistPreviewViewStore, t }) {\r\n const {\r\n item,\r\n loaderStore,\r\n toggleIsActive,\r\n togglePremiumStatus,\r\n toggleVisibilityStatus,\r\n toggleMobileAppVisibilityStatus,\r\n toggleNakiTouchVisibilityStatus,\r\n toggleFeaturedStatus,\r\n coverImageUrl,\r\n deleteArtist,\r\n } = nakiNigunArtistPreviewViewStore;\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 {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.FIELDS.NAME\")}\r\n

\r\n

{item.name}

\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.BUTTONS.STATUS\")}\r\n
\r\n toggleIsActive(event.target.checked)}\r\n />\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.BUTTONS.PREMIUM\")}\r\n
\r\n togglePremiumStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.BUTTONS.VISIBLE_IN_APP\")}\r\n
\r\n toggleMobileAppVisibilityStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.BUTTONS.VISIBLE_ON_PORTAL\")}\r\n
\r\n toggleVisibilityStatus(event.target.checked)}\r\n />\r\n
\r\n
\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.BUTTONS.FEATURED_ON_PORTAL\")}\r\n
\r\n toggleFeaturedStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.BUTTONS.VISIBLE_IN_EMBEDDED_APP\")}\r\n
\r\n toggleNakiTouchVisibilityStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.BUTTONS.DELETE_LABEL\")}\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nNakiNigunArtistPreviewTemplate.propTypes = {\r\n nakiNigunArtistPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(NakiNigunArtistPreviewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbPreviewPage, MrbPageContentHeader, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { Image, StatusTag, Popover } from \"common/components\";\r\nimport {\r\n NakiNigunAlbumTrack,\r\n NakiNigunArtistAlbumLoader,\r\n NakiNigunAlbumTrackEditModal,\r\n} from \"administration/naki-nigun/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { MrbContentLoader, MrbHeaderLoader } from \"mrb/components/loader\";\r\nimport { FixedSizeList } from \"react-window\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { GenerateAudioFilesModal } from \"administration/content-sync/components\";\r\nimport { isEmpty } from \"lodash\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { EmptyState } from \"common/components/empty-state\";\r\n\r\nfunction NakiNigunAlbumTrackListTemplate({ nakiNigunAlbumTrackListViewStore, t }) {\r\n const {\r\n openGeneratePopupForAlbum,\r\n item,\r\n coverImageUrl,\r\n isSyncing,\r\n openGeneratePopupForSong,\r\n generateAudioFilesModal,\r\n loaderStore,\r\n songs,\r\n filteredSongs,\r\n filter,\r\n syncNewSongs,\r\n editAlbumTrackModal,\r\n openEditAlbumTrack,\r\n downloadAlbumTrack,\r\n goToUploadAlbumTrack,\r\n deleteAlbumTrack,\r\n } = nakiNigunAlbumTrackListViewStore;\r\n\r\n return (\r\n \r\n \r\n
\r\n {item ? (\r\n \r\n \r\n \r\n \r\n \r\n {item.artist.name}\r\n \r\n
\r\n {isSyncing ? (\r\n
\r\n

\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.SONGS.HEADER.SYNC_MESSAGE\")}\r\n

\r\n
\r\n ) : null}\r\n {item.isActive && (\r\n \r\n }\r\n contentList={\r\n item.albumFeed.hlsEnabled\r\n ? [\r\n {\r\n title: t(\r\n \"ADMINISTRATION.NAKI_NIGUN.SONGS.HEADER.BUTTONS.GENERATE\"\r\n ),\r\n action: openGeneratePopupForAlbum,\r\n isDisabled: isSyncing,\r\n },\r\n {\r\n title: t(\r\n \"ADMINISTRATION.NAKI_NIGUN.SONGS.HEADER.BUTTONS.SYNC_NEW_SONGS\"\r\n ),\r\n action: syncNewSongs,\r\n isDisabled: isSyncing,\r\n },\r\n ]\r\n : [\r\n {\r\n title: t(\r\n \"ADMINISTRATION.NAKI_NIGUN.SONGS.HEADER.BUTTONS.SYNC_NEW_SONGS\"\r\n ),\r\n action: syncNewSongs,\r\n isDisabled: isSyncing,\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\n {() => (\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.SONGS.HEADER.TITLE\")}\r\n

\r\n
\r\n

{item.title}

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

\r\n {t(\"ADMINISTRATION.NAKI_NIGUN.SONGS.HEADER.RELEASED\")}\r\n

\r\n

{item.year}

\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n }>\r\n {() => (\r\n \r\n {!isEmpty(songs) && (\r\n
\r\n \r\n
\r\n )}\r\n {!isEmpty(songs) && isEmpty(filteredSongs) ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n {({ index, style }) => (\r\n
\r\n \r\n
\r\n )}\r\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 SongFilter = observer(function SongFilter({ filter, t }) {\r\n const { setSearch, setHlsAvailable, setMp3Available } = filter;\r\n\r\n const onChange = (event) => {\r\n setSearch(event.target.value);\r\n };\r\n\r\n const onInlineReset = () => {\r\n setSearch(\"\");\r\n };\r\n\r\n const isSearchEmpty = isEmpty(filter.search);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n {!isSearchEmpty && (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n setHlsAvailable(value)}\r\n />\r\n
\r\n
\r\n \r\n setMp3Available(value)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nNakiNigunAlbumTrackListTemplate.propTypes = {\r\n nakiNigunAlbumTrackListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(NakiNigunAlbumTrackListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbEditPage } from \"mrb/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { CoverImageUpload, UploadAlbumTrackLoader } from \"common/components\";\r\nimport { MrbFileUpload, MrbFileUploadValidation } from \"mrb/components/media\";\r\nimport { CoverImageUploadLoader } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { isNil } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction NakiNigunAlbumTrackEditTemplate({ nakiNigunAlbumTrackEditViewStore, t }) {\r\n const { form, loaderStore, fileUploadStore, file, coverImageUploadViewStore } = nakiNigunAlbumTrackEditViewStore;\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 {isNil(file) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n }\r\n >\r\n {() => (\r\n \r\n )}\r\n \r\n \r\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 FileUploadNote() {\r\n return (\r\n \r\n \r\n

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

\r\n
    \r\n
  • • Upload mp3 file
  • \r\n
  • • Max. file size is 200MB
  • \r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction UploadedFileInfo({ file }) {\r\n return (\r\n \r\n \r\n

Name:

\r\n

\r\n {file.name}\r\n

\r\n\r\n

Size:

\r\n

{`${(file.size / Math.round(1024 * 1024)).toFixed(2)} MB`}

\r\n
\r\n );\r\n}\r\n\r\nconst UploadFooter = observer(function UploadFooter({ store }) {\r\n const { attachAudioFile, file, removeAudioFile, loaderStore } = store;\r\n\r\n return (\r\n \r\n {file ? (\r\n
\r\n \r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n});\r\n\r\nNakiNigunAlbumTrackEditTemplate.propTypes = {\r\n nakiNigunAlbumTrackEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(NakiNigunAlbumTrackEditTemplate);\r\n","import React from \"react\";\r\nimport { NakiNigunArtistEditTemplate } from \"themes/administration/naki-nigun/pages\";\r\nimport { NakiNigunArtistEditViewStore } from \"administration/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunArtistEditViewStore(rootStore, componentProps),\r\n \"nakiNigunArtistEditViewStore\"\r\n)\r\nclass NakiNigunArtistEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistEdit;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistListTemplate } from \"themes/administration/naki-nigun/pages\";\r\nimport { NakiNigunArtistListViewStore } from \"administration/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunArtistListViewStore(rootStore, componentProps),\r\n \"nakiNigunArtistListViewStore\"\r\n)\r\nclass NakiNigunArtistList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistList;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistPreviewTemplate } from \"themes/administration/naki-nigun/pages\";\r\nimport { NakiNigunArtistPreviewViewStore } from \"administration/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunArtistPreviewViewStore(rootStore, componentProps),\r\n \"nakiNigunArtistPreviewViewStore\"\r\n)\r\nclass NakiNigunArtistPreview extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistPreview;\r\n","import React from \"react\";\r\nimport { NakiNigunAlbumTrackListTemplate } from \"themes/administration/naki-nigun/pages\";\r\nimport { NakiNigunAlbumTrackListViewStore } from \"administration/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunAlbumTrackListViewStore(rootStore, componentProps),\r\n \"nakiNigunAlbumTrackListViewStore\"\r\n)\r\nclass NakiNigunAlbumTrackList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumTrackList;\r\n","import React from \"react\";\r\nimport { NakiNigunAlbumTrackEditTemplate } from \"themes/administration/naki-nigun/pages\";\r\nimport { NakiNigunAlbumTrackEditViewStore } from \"administration/naki-nigun/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunAlbumTrackEditViewStore(rootStore, componentProps),\r\n \"nakiNigunAlbumTrackEditViewStore\"\r\n)\r\nclass NakiNigunAlbumTrackEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumTrackEdit;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n NakiNigunArtistEdit,\r\n NakiNigunArtistList,\r\n NakiNigunArtistPreview,\r\n NakiNigunAlbumTrackList,\r\n NakiNigunAlbumTrackEdit,\r\n} from \"administration/naki-nigun/pages\";\r\nimport {\r\n NakiNigunArtistEditRouteStore,\r\n NakiNigunArtistListRouteStore,\r\n NakiNigunArtistPreviewRouteStore,\r\n NakiNigunAlbumTrackListRouteStore,\r\n NakiNigunAlbumTrackEditRouteStore,\r\n} from \"administration/naki-nigun/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"NakiNigunArtist\",\r\n routes: [\r\n {\r\n name: \"master.administration.naki-nigun.artist\",\r\n pattern: \"/naki-nigun/artist\",\r\n children: [\r\n {\r\n name: \"master.administration.naki-nigun.artist.create\",\r\n pattern: \"/create\",\r\n component: NakiNigunArtistEdit,\r\n store: NakiNigunArtistEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.naki-nigun.artist.edit\",\r\n pattern: \"/:id/edit\",\r\n component: NakiNigunArtistEdit,\r\n store: NakiNigunArtistEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.naki-nigun.artist.list\",\r\n pattern: \"\",\r\n component: NakiNigunArtistList,\r\n store: NakiNigunArtistListRouteStore,\r\n data: {\r\n title: \"ADMINISTRATION.NAKI_NIGUN.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.administration.naki-nigun.artist.preview\",\r\n pattern: \"/:id\",\r\n component: NakiNigunArtistPreview,\r\n store: NakiNigunArtistPreviewRouteStore,\r\n },\r\n {\r\n name: \"master.administration.naki-nigun.artist.album.tracks\",\r\n pattern: \"/album/:id/tracks\",\r\n component: NakiNigunAlbumTrackList,\r\n store: NakiNigunAlbumTrackListRouteStore,\r\n },\r\n {\r\n name: \"master.administration.naki-nigun.artist.album.tracks.create\",\r\n pattern: \"/album/:id/tracks/create\",\r\n component: NakiNigunAlbumTrackEdit,\r\n store: NakiNigunAlbumTrackEditRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.NAKI_NIGUN\",\r\n order: 4,\r\n icon: \"nigun\",\r\n route: \"master.administration.naki-nigun.artist.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbListPage } from \"mrb/components/layout\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbSelect } from \"mrb/components/select\";\r\n\r\nfunction UserListTemplate({ userListViewStore, t }) {\r\n const { gridStore, queryUtility, roleSelectStore } = userListViewStore;\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\nUserListTemplate.propTypes = {\r\n userListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(UserListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput, MrbFieldToggle, MrbButton, MrbEditPage } from \"mrb/components\";\r\nimport { MrbPageContentSidebar } from \"mrb/components/layout\";\r\nimport { MrbContentLoader, MrbLineContentLoader } from \"mrb/components/loader\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { AdminUserSubscriptionSettings, UserPasswordChange, UserEditLoader } from \"administration/user/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction UserEditTemplate({ userEditViewStore, t }) {\r\n const { id, form, loaderStore, passwordResetModal, isAdminItself, routeStore, producers, guestEmail, artistInfo } =\r\n userEditViewStore;\r\n\r\n return (\r\n \r\n \r\n (\r\n
\r\n \r\n
\r\n )}\r\n >\r\n {() => (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n {guestEmail && (\r\n
\r\n

\r\n {t(\"ADMINISTRATION.USER.EDIT.FIELDS.GUEST_EMAIL_LABEL\")}\r\n

\r\n

\r\n

{guestEmail}

\r\n

\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n )}\r\n \r\n\r\n
\r\n
User Subscription
\r\n \r\n
\r\n {artistInfo != null && artistInfo.artistRegisterMessage != null && (\r\n
\r\n
{t(\"ADMINISTRATION.USER.EDIT.ARTIST_INFO.TITLE\")}
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.USER.EDIT.ARTIST_INFO.PRODUCER_TYPE_LABEL\")}\r\n

\r\n

{artistInfo.producerType.name}

\r\n

\r\n {t(\"ADMINISTRATION.USER.EDIT.ARTIST_INFO.PHONE_NUMBER_LABEL\")}\r\n

\r\n

{artistInfo.phoneNumber}

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

\r\n {t(\"ADMINISTRATION.USER.EDIT.ARTIST_INFO.REGISTRATION_MESSAGE_LABEL\")}\r\n

\r\n

{artistInfo.artistRegisterMessage}

\r\n
\r\n
\r\n )}\r\n\r\n \r\n {!form.$(\"isAdministrator\").value && (\r\n
\r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n \r\n \r\n {t(\"ADMINISTRATION.USER.EDIT.BUTTONS.USER_DEVICES\")}\r\n \r\n \r\n {t(\"ADMINISTRATION.USER.EDIT.BUTTONS.DEVICE_SETTINGS\")}\r\n \r\n \r\n {t(\"ADMINISTRATION.USER.EDIT.BUTTONS.CONTENT_EXPIRATION\")}\r\n \r\n \r\n {t(\"ADMINISTRATION.USER.EDIT.BUTTONS.USER_ACTIVITY\")}\r\n \r\n \r\n )}\r\n \r\n
\r\n )}\r\n\r\n
\r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n\r\n {producers.length > 0 && (\r\n
\r\n {producers.length === 1 ? (\r\n

Producer

\r\n ) : (\r\n

Producers

\r\n )}\r\n\r\n
\r\n {map(producers, (producer) => (\r\n
\r\n \r\n \r\n {producer.producerName}\r\n \r\n \r\n \r\n
\r\n ))}\r\n
\r\n
\r\n )}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nUserEditTemplate.propTypes = {\r\n userEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst Actions = observer(function Actions({ userEditViewStore, t, isAdminItself }) {\r\n const { item, approveUser, disapproveUser, unlockUser, lockUser, changePassword } = userEditViewStore;\r\n\r\n return (\r\n \r\n {item && (\r\n \r\n
\r\n
\r\n {item.isApproved && !isAdminItself ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n {item.isLockedOut ? (\r\n \r\n ) : (\r\n \r\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(UserEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbTabLayout, MrbTabContent } from \"mrb/components/tabs\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport {\r\n UserStationExpiration,\r\n UserPodcastExpiration,\r\n UserSettingsLoader,\r\n} from \"administration/user/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbContentLoader } from \"baasic-react-bootstrap/src\";\r\n\r\nfunction UserContentExpirationTemplate({ userContentExpirationViewStore, t }) {\r\n const {\r\n tabsStore,\r\n userStationExpirationViewStore,\r\n userPodcastExpirationViewStore,\r\n loaderStore,\r\n } = userContentExpirationViewStore;\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n
\r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nUserContentExpirationTemplate.propTypes = {\r\n userContentExpirationViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst Header = observer(function Header({ userContentExpirationViewStore }) {\r\n const { userId, user } = userContentExpirationViewStore;\r\n if (!user) {\r\n return null;\r\n }\r\n const userDisplayName = user && `${user.firstName} ${user.lastName}`;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {userDisplayName}\r\n \r\n
\r\n );\r\n});\r\n\r\nHeader.propTypes = {\r\n userContentExpirationViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(UserContentExpirationTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbTabLayout, MrbTabContent } from \"mrb/components/tabs\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport {\r\n StationDevice,\r\n PodcastDevice,\r\n UserDeviceSettingsTabHeaders,\r\n UserDeviceSettingsEmptyState,\r\n UserSettingsLoader,\r\n} from \"administration/user/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbContentLoader } from \"baasic-react-bootstrap/src\";\r\n\r\nfunction UserDeviceSettingsTemplate({ userDeviceSettingsViewStore, t }) {\r\n const {\r\n userId,\r\n anyDevice,\r\n tabsStore,\r\n deviceSelectStore,\r\n stationDeviceViewStore,\r\n podcastDeviceViewStore,\r\n loaderStore,\r\n } = userDeviceSettingsViewStore;\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 {anyDevice ? (\r\n (\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nUserDeviceSettingsTemplate.propTypes = {\r\n userDeviceSettingsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst Header = observer(function Header({ userDeviceSettingsViewStore }) {\r\n const { userId, user } = userDeviceSettingsViewStore;\r\n let userDisplayName;\r\n if (user) {\r\n userDisplayName = user && `${user.firstName} ${user.lastName}`;\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {userDisplayName}\r\n \r\n
\r\n );\r\n});\r\n\r\nHeader.propTypes = {\r\n userDeviceSettingsViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(UserDeviceSettingsTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { UserDeviceCell } from \"administration/user/components\";\r\nimport { MrbLineContentLoader } from \"mrb/components/loader\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction UserDeviceListTemplate({ userDeviceListViewStore, t }) {\r\n const { gridStore } = userDeviceListViewStore;\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n }\r\n loaderRender={() => (\r\n //TODO: loader\r\n \r\n )}\r\n classNameOverride=\"test\"\r\n store={gridStore}\r\n t={t}\r\n cellRender={(props) => (\r\n \r\n )}\r\n />\r\n
\r\n \r\n );\r\n}\r\n\r\nUserDeviceListTemplate.propTypes = {\r\n userDeviceListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst Header = observer(function Header({ userDeviceListViewStore }) {\r\n const { userId, user } = userDeviceListViewStore;\r\n let userDisplayName;\r\n if (user) {\r\n userDisplayName = user && `${user.firstName} ${user.lastName}`;\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {userDisplayName}\r\n \r\n
\r\n );\r\n});\r\n\r\nHeader.propTypes = {\r\n userDeviceSettingsViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction NoDataEmptyState({ t }) {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{t(\"APPLICATION.DEVICE_LIST.NO_DEVICES_REGISTERED\")}

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(UserDeviceListTemplate);\r\n","import React from \"react\";\r\nimport { UserListTemplate } from \"themes/administration/user/pages\";\r\nimport { UserListViewStore } from \"administration/user/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new UserListViewStore(rootStore, componentProps),\r\n \"userListViewStore\"\r\n)\r\nclass UserList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserList;\r\n","import React from \"react\";\r\nimport { UserEditTemplate } from \"themes/administration/user/pages\";\r\nimport { UserEditViewStore } from \"administration/user/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new UserEditViewStore(rootStore, componentProps),\r\n \"userEditViewStore\"\r\n)\r\nclass UserEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserEdit;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UserContentExpirationTemplate } from \"themes/administration/user/pages\";\r\nimport { UserContentExpirationViewStore } from \"administration/user/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new UserContentExpirationViewStore(rootStore, componentProps),\r\n \"userContentExpirationViewStore\"\r\n)\r\n@observer\r\nclass UserContentExpiration extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserContentExpiration;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UserDeviceListTemplate } from \"themes/administration/user/pages\";\r\nimport { UserDeviceListViewStore } from \"administration/user/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new UserDeviceListViewStore(rootStore, componentProps),\r\n \"userDeviceListViewStore\"\r\n)\r\n@observer\r\nclass UserDeviceList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserDeviceList;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UserDeviceSettingsTemplate } from \"themes/administration/user/pages\";\r\nimport { UserDeviceSettingsViewStore } from \"administration/user/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new UserDeviceSettingsViewStore(rootStore, componentProps),\r\n \"userDeviceSettingsViewStore\"\r\n)\r\n@observer\r\nclass UserDeviceSettings extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserDeviceSettings;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport {\r\n UserList,\r\n UserEdit,\r\n UserContentExpiration,\r\n UserDeviceList,\r\n UserDeviceSettings,\r\n} from \"administration/user/pages\";\r\nimport {\r\n UserEditRouteStore,\r\n UserListRouteStore,\r\n UserDeviceListRouteStore,\r\n UserContentExpirationRouteStore,\r\n UserDeviceSettingsRouteStore,\r\n} from \"administration/user/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"User\",\r\n routes: [\r\n {\r\n name: \"master.administration.user\",\r\n pattern: \"/user\",\r\n children: [\r\n {\r\n name: \"master.administration.user.list\",\r\n pattern: \"\",\r\n component: UserList,\r\n store: UserListRouteStore,\r\n data: {\r\n title: \"ADMINISTRATION.USER.LIST.TITLE\",\r\n },\r\n },\r\n {\r\n name: \"master.administration.user.edit\",\r\n pattern: \"/:id/edit\",\r\n component: UserEdit,\r\n store: UserEditRouteStore,\r\n },\r\n {\r\n name: \"master.administration.user.content-expiration\",\r\n pattern: \"/:id/content-expiration\",\r\n component: UserContentExpiration,\r\n store: UserContentExpirationRouteStore,\r\n },\r\n {\r\n name: \"master.administration.user.device-settings\",\r\n pattern: \"/:id/device-settings\",\r\n component: UserDeviceSettings,\r\n store: UserDeviceSettingsRouteStore,\r\n },\r\n {\r\n name: \"master.administration.user.device-list\",\r\n pattern: \"/:id/device-list\",\r\n component: UserDeviceList,\r\n store: UserDeviceListRouteStore,\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.USER\",\r\n order: 13,\r\n icon: \"users\",\r\n route: \"master.administration.user.list\",\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport {\r\n DeviceMenuEditPageLayout,\r\n DeviceMenuList,\r\n DeviceMenuSearchResult,\r\n DeviceMenuLatestItems,\r\n DeviceListLoader,\r\n} from \"administration/device-menu/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { isEmpty } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nimport { SearchDeviceLoader } from \"application/device-settings/components\";\r\nfunction DeviceMenuEditTemplate({ deviceMenuEditViewStore, t }) {\r\n const { loaderStore, addSeparator, addSearch, deviceMenuSearchViewStore } =\r\n deviceMenuEditViewStore;\r\n\r\n return (\r\n \r\n
\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n
\r\n \r\n
\r\n {\" \"}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nDeviceMenuEditTemplate.propTypes = {\r\n deviceMenuEditViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nconst DeviceSearchFilter = observer(function DeviceSearchFilter({ store, t }) {\r\n const {\r\n submitting,\r\n deviceMenuSearchViewStore: { deviceSearchFilter },\r\n } = store;\r\n\r\n const onChange = (event) => {\r\n deviceSearchFilter.setSearch(event.target.value);\r\n };\r\n\r\n const onInlineReset = () => {\r\n deviceSearchFilter.setSearch(\"\");\r\n };\r\n\r\n const isSearchEmpty = isEmpty(deviceSearchFilter.search);\r\n\r\n return (\r\n \r\n
\r\n \r\n {!isSearchEmpty && (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n});\r\n\r\nexport default defaultTemplate(DeviceMenuEditTemplate);\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { DeviceService, DeviceMenuTypeCacheService } from \"common/services\";\r\n\r\nclass DeviceMenuEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(DeviceService);\r\n\r\n this.deviceMenuTypeService = new DeviceMenuTypeCacheService(\r\n this.rootStore\r\n );\r\n }\r\n\r\n getDeviceMenuTypes() {\r\n return this.deviceMenuTypeService.getItems();\r\n }\r\n\r\n async getDeviceMenu() {\r\n const response = await this.service.getMenu();\r\n return response.data;\r\n }\r\n\r\n async getDeviceMenuLatestItems() {\r\n const response = await this.service.getMenuLatestItems();\r\n return response.data;\r\n }\r\n\r\n async updateDeviceMenu(resource) {\r\n const response = await this.service.updateMenu(resource);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default DeviceMenuEditRouteStore;\r\n","import { action, computed, makeObservable, observable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { map, filter, startsWith, findIndex, isNil, take } from \"lodash\";\r\n\r\nclass DeviceSearchFilter {\r\n @observable search = \"\";\r\n\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n setSearch(search) {\r\n this.search = search;\r\n }\r\n}\r\n\r\nclass SearchResult {\r\n @observable.ref items = [];\r\n @observable position = 0;\r\n totalResults = 0;\r\n\r\n @computed get index() {\r\n const item = this.items[this.position];\r\n if (item) {\r\n return item.index;\r\n }\r\n return -1;\r\n }\r\n\r\n searchTerm = \"\";\r\n\r\n constructor(searchTerm, items, totalResults, focusedItemId = null) {\r\n makeObservable(this);\r\n this.setItems(items);\r\n this.searchTerm = searchTerm;\r\n this.totalResults = totalResults;\r\n this.setFocusedItem(focusedItemId);\r\n }\r\n\r\n @action.bound\r\n setItems(items) {\r\n this.items = items;\r\n }\r\n\r\n @action.bound\r\n nextItem() {\r\n if (this.position === this.items.length - 1) {\r\n this.setPosition(0);\r\n } else {\r\n this.setPosition(this.position + 1);\r\n }\r\n }\r\n\r\n @action.bound\r\n previousItem() {\r\n if (this.position === 0) {\r\n this.setPosition(this.items.length - 1);\r\n } else {\r\n this.setPosition(this.position - 1);\r\n }\r\n }\r\n\r\n @action.bound\r\n setPosition(position) {\r\n this.position = position;\r\n }\r\n\r\n setFocusedItem(itemId) {\r\n if (itemId) {\r\n const index = findIndex(this.items, (item) => item.id === itemId);\r\n if (index !== -1) {\r\n this.setPosition(index);\r\n }\r\n }\r\n }\r\n}\r\n\r\nclass DeviceMenuSearchViewStore extends MrbBaseViewStore {\r\n @observable searchTerm = \"\";\r\n @observable focusedItemId = null;\r\n\r\n deviceSearchFilter = new DeviceSearchFilter();\r\n\r\n searchContainerRef = null;\r\n\r\n @computed get searchResult() {\r\n if (this.searchTerm) {\r\n const results = filter(\r\n this.deviceMenuViewStore.deviceMenu,\r\n (item) =>\r\n item.title &&\r\n startsWith(item.title.toLowerCase(), this.searchTerm)\r\n );\r\n return new SearchResult(\r\n this.searchTerm,\r\n map(take(results, 10), (item) => {\r\n return {\r\n ...item,\r\n index: findIndex(\r\n this.deviceMenuViewStore.deviceMenu,\r\n (menuItem) => menuItem.id === item.id\r\n ),\r\n };\r\n }),\r\n results.length,\r\n this.focusedItemId\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n constructor(rootStore, deviceMenuViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.deviceMenuViewStore = deviceMenuViewStore;\r\n\r\n this.reaction(\r\n () => this.searchResult && this.searchResult.index,\r\n (index) => this.deviceMenuViewStore.scrollToItem(index)\r\n );\r\n\r\n this.reaction(\r\n () => this.searchResult && this.searchResult.position,\r\n (index) => {\r\n this.scrollSearchResultIntoView(index);\r\n this.setFocusedItemId(index);\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.deviceSearchFilter.search.trim().toLowerCase(),\r\n (searchTerm) => {\r\n this.setSearchTerm(searchTerm);\r\n },\r\n {\r\n delay: 200,\r\n }\r\n );\r\n }\r\n\r\n onInit() {\r\n document.addEventListener(\"keydown\", this.toggleSearchPosition);\r\n return Promise.resolve();\r\n }\r\n\r\n @action.bound\r\n setSearchTerm(searchTerm) {\r\n this.searchTerm = searchTerm;\r\n }\r\n\r\n setSearchContainerRef = (ref) => {\r\n this.searchContainerRef = ref;\r\n };\r\n\r\n @action.bound\r\n setFocusedItemId(index) {\r\n if (!isNil(index) && this.searchResult) {\r\n const item = this.searchResult.items[index];\r\n if (item) {\r\n this.focusedItemId = item.id;\r\n }\r\n } else {\r\n this.focusedItemId = null;\r\n }\r\n }\r\n\r\n scrollSearchResultIntoView = (index) => {\r\n if (this.searchContainerRef) {\r\n const children = this.searchContainerRef.children;\r\n const element = children[index];\r\n if (element) {\r\n element.scrollIntoView({\r\n block: \"center\",\r\n });\r\n }\r\n }\r\n };\r\n\r\n toggleSearchPosition = (event) => {\r\n if (this.searchResult) {\r\n if (event.key === \"ArrowDown\") {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.searchResult.nextItem();\r\n } else if (event.key === \"ArrowUp\") {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.searchResult.previousItem();\r\n }\r\n }\r\n };\r\n\r\n scrollToItem = (index) => {\r\n this.deviceMenuViewStore.scrollToItem(index);\r\n };\r\n\r\n onDestroy() {\r\n document.removeEventListener(\"keydown\", this.toggleSearchPosition);\r\n }\r\n}\r\n\r\nexport default DeviceMenuSearchViewStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { map, findIndex } from \"lodash\";\r\n\r\nclass DeviceMenuLatestItemsViewStore extends MrbBaseViewStore {\r\n @observable.ref items = [];\r\n\r\n @computed get latestItems() {\r\n return map(this.items, (item) => {\r\n const index = findIndex(\r\n this.deviceMenuEditViewStore.deviceMenu,\r\n (menuItem) =>\r\n (item.stationId && menuItem.stationId === item.stationId) ||\r\n (item.podcastId && menuItem.podcastId === item.podcastId) ||\r\n (item.shuffleId && menuItem.shuffleId === item.shuffleId)\r\n );\r\n\r\n return {\r\n ...item,\r\n index: index,\r\n deviceMenuType:\r\n index !== -1\r\n ? this.deviceMenuEditViewStore.deviceMenu[index]\r\n .deviceMenuType\r\n : null,\r\n };\r\n });\r\n }\r\n\r\n constructor(rootStore, deviceMenuEditViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.deviceMenuEditViewStore = deviceMenuEditViewStore;\r\n this.routeStore = this.deviceMenuEditViewStore.routeStore;\r\n }\r\n\r\n onInit() {\r\n return this.loadLatestItems();\r\n }\r\n\r\n async loadLatestItems() {\r\n const items = await this.getItems();\r\n this.setItems(items);\r\n }\r\n\r\n @action.bound\r\n setItems(items) {\r\n this.items = items;\r\n }\r\n\r\n getItems() {\r\n return this.routeStore.getDeviceMenuLatestItems();\r\n }\r\n\r\n onClickItem = (item) => {\r\n this.deviceMenuEditViewStore.this.deviceMenuViewStore.scrollToItem(\r\n item.index\r\n );\r\n };\r\n\r\n onClickMoveToTop = (item) => {\r\n this.deviceMenuEditViewStore.moveToTop(item.index);\r\n };\r\n}\r\n\r\nexport default DeviceMenuLatestItemsViewStore;\r\n","import { action, observable, makeObservable, toJS } from \"mobx\";\r\nimport { MrbBasePreviewViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { DeviceMenuSearchViewStore, DeviceMenuLatestItemsViewStore } from \"administration/device-menu/stores\";\r\nimport { deviceMenuTypes } from \"common/constants\";\r\nimport { UUID } from \"common/utils\";\r\nimport { find, filter, map, omit } from \"lodash\";\r\n\r\nclass DeviceMenuEditViewStore extends MrbBasePreviewViewStore {\r\n @observable.ref deviceMenuTypes = [];\r\n @observable.ref deviceMenu = [];\r\n @observable submitting = false;\r\n\r\n virtualizedListRef = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n layoutActions: {\r\n save: {\r\n label: \"Save\",\r\n onClick: () => this.save(),\r\n },\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n const route = this.rootStore.routerStore.getCurrentRoute();\r\n if (route && route.data && route.data.title) {\r\n this.title = route.data.title;\r\n }\r\n\r\n this.deviceMenuSearchViewStore = new DeviceMenuSearchViewStore(this.rootStore, this);\r\n this.deviceMenuLatestItemsViewStore = new DeviceMenuLatestItemsViewStore(this.rootStore, this);\r\n }\r\n\r\n async onInit() {\r\n await this.loadLookups();\r\n await Promise.all([\r\n this.initializeResource(),\r\n this.deviceMenuSearchViewStore.onInit(),\r\n this.deviceMenuLatestItemsViewStore.onInit(),\r\n ]);\r\n }\r\n\r\n scrollToItem = (index) => {\r\n this.virtualizedListRef.scrollToItem(index, \"smart\");\r\n };\r\n\r\n async loadLookups() {\r\n const items = await this.routeStore.getDeviceMenuTypes();\r\n this.setDeviceMenuTypes(items);\r\n }\r\n\r\n @action.bound\r\n setDeviceMenuTypes(items) {\r\n this.deviceMenuTypes = items;\r\n }\r\n\r\n @action.bound\r\n setSubmitting(isSubmitting) {\r\n this.submitting = isSubmitting;\r\n }\r\n\r\n onClickCancel() {\r\n this.rootStore.routerStore.goBack();\r\n }\r\n\r\n setItem(item) {\r\n this.deviceMenu = map(item, (menuItem) => {\r\n return {\r\n ...menuItem,\r\n deviceMenuType: find(this.deviceMenuTypes, (x) => x.id === menuItem.deviceMenuTypeId),\r\n };\r\n });\r\n }\r\n\r\n @action.bound\r\n async save() {\r\n try {\r\n this.setSubmitting(true);\r\n const data = map(this.deviceMenu, (item, index) => {\r\n return {\r\n ...omit(item, [\"title\", \"isPremium\", \"id\"]),\r\n sortOrder: index + 1,\r\n };\r\n });\r\n await this.routeStore.updateDeviceMenu(data);\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to update the device menu. Please contact the support team.\"\r\n );\r\n } finally {\r\n this.setSubmitting(false);\r\n }\r\n }\r\n\r\n @action.bound\r\n addSeparator() {\r\n const separatorDeviceMenuType = find(this.deviceMenuTypes, (type) => type.abrv === deviceMenuTypes.separator);\r\n const separatorMenuItem = {\r\n id: UUID.create(),\r\n deviceMenuTypeId: separatorDeviceMenuType.id,\r\n deviceMenuType: separatorDeviceMenuType,\r\n };\r\n this.deviceMenu = [separatorMenuItem, ...this.deviceMenu];\r\n this.routeStore.setIsRouteExitBlocked(true);\r\n }\r\n\r\n @action.bound\r\n addSearch() {\r\n const searchDeviceMenuType = find(this.deviceMenuTypes, (type) => type.abrv === deviceMenuTypes.search);\r\n const searchMenuItem = {\r\n id: UUID.create(),\r\n deviceMenuTypeId: searchDeviceMenuType.id,\r\n deviceMenuType: searchDeviceMenuType,\r\n };\r\n this.deviceMenu = [searchMenuItem, ...this.deviceMenu];\r\n this.routeStore.setIsRouteExitBlocked(true);\r\n }\r\n\r\n @action.bound\r\n reorderMenu(result) {\r\n const { destination, source } = result;\r\n if (!destination) {\r\n return;\r\n }\r\n\r\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\r\n return;\r\n }\r\n\r\n this.moveDeviceMenuItem(source.index, destination.index);\r\n }\r\n\r\n @action.bound\r\n moveToTop(index) {\r\n this.moveDeviceMenuItem(index, 0);\r\n this.scrollToItem(0);\r\n }\r\n\r\n @action.bound\r\n moveDeviceMenuItem(sourceIndex, destinationIndex) {\r\n const newDeviceMenu = Array.from(toJS(this.deviceMenu));\r\n const item = newDeviceMenu.splice(sourceIndex, 1)[0];\r\n newDeviceMenu.splice(destinationIndex, 0, item);\r\n\r\n this.deviceMenu = newDeviceMenu;\r\n this.routeStore.setIsRouteExitBlocked(true);\r\n }\r\n\r\n @action.bound\r\n removeMenuItem(itemId) {\r\n this.deviceMenu = filter(this.deviceMenu, (item) => item.id !== itemId);\r\n this.routeStore.setIsRouteExitBlocked(true);\r\n }\r\n\r\n async initializeResource() {\r\n try {\r\n await this.getResource(this.id);\r\n return true;\r\n } catch (err) {\r\n if (err.statusCode === httpStatusCodes.NotFound) {\r\n await this.rootStore.routerStore.goToNotFound();\r\n return false;\r\n } else {\r\n throw err;\r\n }\r\n }\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getDeviceMenu();\r\n }\r\n\r\n setVirtualizedListRef = (ref) => {\r\n this.virtualizedListRef = ref;\r\n };\r\n\r\n onDestroy() {\r\n this.deviceMenuSearchViewStore.onDestroy();\r\n this.deviceMenuLatestItemsViewStore.onDestroy();\r\n }\r\n}\r\n\r\nexport default DeviceMenuEditViewStore;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { DeviceMenuEditTemplate } from \"themes/administration/device-menu/pages\";\r\nimport { DeviceMenuEditViewStore } from \"administration/device-menu/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new DeviceMenuEditViewStore(rootStore, componentProps),\r\n \"deviceMenuEditViewStore\"\r\n)\r\n@observer\r\nclass DeviceMenuEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default DeviceMenuEdit;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { DeviceMenuEdit } from \"administration/device-menu/pages\";\r\nimport { DeviceMenuEditRouteStore } from \"administration/device-menu/stores\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"DeviceMenu\",\r\n routes: [\r\n {\r\n name: \"master.administration.device-menu\",\r\n pattern: \"/device-menu\",\r\n children: [\r\n {\r\n name: \"master.administration.device-menu.edit\",\r\n pattern: \"\",\r\n component: DeviceMenuEdit,\r\n store: DeviceMenuEditRouteStore,\r\n data: {\r\n title: \"Device Menu\",\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n menu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.DEVICE\",\r\n order: 8,\r\n icon: \"devices\",\r\n subMenu: [\r\n {\r\n title: \"ADMINISTRATION.MENU.DEVICE_MENU\",\r\n order: 1,\r\n route: \"master.administration.device-menu.edit\",\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n})();\r\n","import React from \"react\";\r\nimport { Progressbar } from \"common/components\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\n\r\nexport const DownloadItem = ({ item, index, onCancel, onRetry, downloadStatus, t }) => {\r\n return (\r\n
\r\n

{index + 1}.

\r\n \r\n\r\n {item.status !== downloadStatus.finished &&
}\r\n\r\n {(item.status === downloadStatus.new || item.status === downloadStatus.downloading) && (\r\n onCancel(item.index)}\r\n classNameOverride=\"c-btn c-btn--icon\"\r\n onlyIcon\r\n icon=\"u-icon u-icon--med u-icon--delete\"\r\n title={t(\"ADMINISTRATION.DOWNLOAD_MANAGER.BUTTONS.CANCEL\")}\r\n />\r\n )}\r\n {(item.status === downloadStatus.canceled || item.status === downloadStatus.failed) && (\r\n onRetry(item.index)}\r\n classNameOverride=\"c-btn c-btn--icon\"\r\n onlyIcon\r\n icon=\"u-icon u-icon--med u-icon--retry\"\r\n title={t(\"ADMINISTRATION.DOWNLOAD_MANAGER.BUTTONS.RETRY\")}\r\n />\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default DownloadItem;\r\n","import React from \"react\";\r\nimport DownloadItem from \"./DownloadItem\";\r\nimport { map } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nconst DownloadList = ({\r\n items,\r\n onCancel,\r\n onRetry,\r\n startingIndex,\r\n noContentMessage,\r\n isCurrentlyDownloading,\r\n downloadStatus,\r\n t,\r\n}) => {\r\n const hasDownloadData = items && (items.length > 0 || isCurrentlyDownloading);\r\n\r\n return (\r\n \r\n {hasDownloadData ? (\r\n map(items, (item, index) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n \r\n

{noContentMessage}

\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DownloadList;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Accordion, MainSidebar } from \"common/components\";\r\nimport { MrbProgressBarLoader } from \"mrb/components/loader\";\r\nimport { MrbConfirmDialog } from \"mrb/components/modal\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbRadioButtons } from \"baasic-react-bootstrap/src\";\r\nimport { observer } from \"mobx-react\";\r\nimport DownloadItem from \"./components/DownloadItem\";\r\nimport DownloadList from \"./components/DownloadList\";\r\n\r\nfunction AdministrationLayoutTemplate({ renderChildRoute, routeStore, t }) {\r\n const { rootStore } = routeStore;\r\n const { menuStore, downloadManagerStore } = rootStore;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n
{renderChildRoute()}
\r\n \r\n {downloadManagerStore.items.length > 0 && (\r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nAdministrationLayoutTemplate.propTypes = {\r\n renderChildRoute: PropTypes.func.isRequired,\r\n routeStore: PropTypes.object.isRequired,\r\n};\r\n\r\nconst DownloadManager = observer(function DownloadManager({ downloadManagerStore, t }) {\r\n const {\r\n currentlyDownloadingItem,\r\n items,\r\n queuedItems,\r\n canceledItems,\r\n failedItems,\r\n finishedItems,\r\n selectedViewValue,\r\n setSelectedViewValue,\r\n downloadStatus,\r\n closeWindow,\r\n } = downloadManagerStore;\r\n\r\n const downloadManagerStyle = {\r\n position: \"fixed\",\r\n bottom: \"20px\",\r\n right: \"20px\",\r\n minWidth: \"400px\",\r\n zIndex: 9,\r\n };\r\n\r\n function getNumberOfRemainingItems() {\r\n var remaining = 0;\r\n if (queuedItems != null && queuedItems.length > 0) {\r\n remaining += queuedItems.length;\r\n }\r\n if (currentlyDownloadingItem != null) {\r\n remaining += 1;\r\n }\r\n return remaining;\r\n }\r\n\r\n function getDisplayedItems() {\r\n switch (selectedViewValue) {\r\n case 1:\r\n return items;\r\n case 2:\r\n return queuedItems;\r\n case 3:\r\n return finishedItems;\r\n case 4:\r\n return canceledItems;\r\n case 5:\r\n return failedItems;\r\n default:\r\n return items;\r\n }\r\n }\r\n\r\n function getNoContentMessage() {\r\n switch (selectedViewValue) {\r\n case 1:\r\n return t(\"ADMINISTRATION.DOWNLOAD_MANAGER.EMPTY_STATE.ALL_ITEMS\");\r\n case 2:\r\n return t(\"ADMINISTRATION.DOWNLOAD_MANAGER.EMPTY_STATE.IN_PROGRESS\");\r\n case 3:\r\n return t(\"ADMINISTRATION.DOWNLOAD_MANAGER.EMPTY_STATE.FINISHED\");\r\n case 4:\r\n return t(\"ADMINISTRATION.DOWNLOAD_MANAGER.EMPTY_STATE.CANCELED\");\r\n case 5:\r\n return t(\"ADMINISTRATION.DOWNLOAD_MANAGER.EMPTY_STATE.FAILED\");\r\n default:\r\n return t(\"ADMINISTRATION.DOWNLOAD_MANAGER.EMPTY_STATE.ALL_ITEMS\");\r\n }\r\n }\r\n\r\n const itemsToDownload = getDisplayedItems();\r\n const noContentMessage = getNoContentMessage();\r\n\r\n const handleCancel = (index) => {\r\n downloadManagerStore.cancelDownload(index);\r\n };\r\n\r\n const handleRetry = (index) => {\r\n downloadManagerStore.retryDownload(index);\r\n };\r\n\r\n return (\r\n \r\n setSelectedViewValue(value)}\r\n />\r\n \r\n }\r\n showClose\r\n >\r\n {selectedViewValue === 2 ? (\r\n \r\n {currentlyDownloadingItem && (\r\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(AdministrationLayoutTemplate);\r\n","import React from \"react\";\r\nimport { AdministrationLayoutTemplate } from \"themes/administration/common\";\r\n\r\nfunction AdministrationLayout(props) {\r\n return ;\r\n}\r\n\r\nexport default AdministrationLayout;\r\n","import { MainRouteStore } from \"common/stores\";\r\n\r\nclass AdministrationRouteStore extends MainRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n}\r\n\r\nexport default AdministrationRouteStore;\r\n","import { moduleProviderFactory } from \"mrb/core\";\r\nimport { AdministrationRouteStore } from \"administration/common\";\r\nimport { AdministrationLayout } from \"administration/common\";\r\n\r\n(function () {\r\n moduleProviderFactory.module(\"administration\").register({\r\n name: \"administration\",\r\n routes: [\r\n {\r\n name: \"master.administration\",\r\n pattern: \"/administration\",\r\n component: AdministrationLayout,\r\n store: AdministrationRouteStore,\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 { AddPodcastsToTheGroupLoaderTemplate } from \"themes/administration/podcast/components\";\r\n\r\nfunction AddPodcastsToTheGroupLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default AddPodcastsToTheGroupLoader;\r\n","import React from \"react\";\r\nimport { PodcastGroupLineLoaderTemplate } from \"themes/administration/podcast/components\";\r\n\r\nfunction PodcastGroupLineLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default PodcastGroupLineLoader;\r\n","import React from \"react\";\r\nimport { PodcastEpisodeListLoaderTemplate } from \"themes/administration/podcast/components\";\r\n\r\nconst PodcastEpisodeListLoader = (props) => {\r\n return ;\r\n};\r\n\r\nexport default PodcastEpisodeListLoader;\r\n","import React from \"react\";\r\nimport { PodcastGroupEditPageHeaderTemplate } from \"themes/administration/podcast/components\";\r\n\r\nclass PodcastGroupEditPageHeader extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastGroupEditPageHeader;\r\n","import React from \"react\";\r\nimport { PodcastCoverImageUploadTemplate } from \"themes/administration/podcast/components\";\r\n\r\nclass PodcastCoverImageUpload extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastCoverImageUpload;\r\n","import React from \"react\";\r\nimport { PodcastGroupEditPageLayoutTemplate } from \"themes/administration/podcast/components\";\r\n\r\nclass PodcastGroupEditPageLayout extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastGroupEditPageLayout;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { AddPodcastGroupItemTemplate } from \"themes/administration/podcast/components\";\r\nimport { AddPodcastGroupItemViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new AddPodcastGroupItemViewStore(rootStore, componentProps),\r\n \"addPodcastGroupItemViewStore\"\r\n)\r\n@observer\r\nclass AddPodcastGroupItem extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AddPodcastGroupItem;\r\n","import React from \"react\";\r\nimport { PodcastGroupEditSubPodcastTemplate } from \"themes/administration/podcast/components\";\r\nimport { PodcastGroupEditSubPodcastViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastGroupEditSubPodcastViewStore(rootStore, componentProps),\r\n \"podcastGroupEditSubPodcastViewStore\"\r\n)\r\nclass PodcastGroupEditSubPodcast extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastGroupEditSubPodcast;\r\n","import React from \"react\";\r\nimport { PodcastGroupEditSubPodcastListTemplate } from \"themes/administration/podcast/components\";\r\n\r\nclass PodcastGroupEditSubPodcastList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastGroupEditSubPodcastList;\r\n","import React from \"react\";\r\nimport { PodcastGroupPreviewSubPodcastTemplate } from \"themes/administration/podcast/components\";\r\nimport { PodcastGroupPreviewSubPodcastViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastGroupPreviewSubPodcastViewStore(rootStore, componentProps),\r\n \"podcastGroupPreviewSubPodcastViewStore\"\r\n)\r\nclass PodcastGroupPreviewSubPodcast extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastGroupPreviewSubPodcast;\r\n","import React from \"react\";\r\nimport { PodcastGroupPreviewSubPodcastListTemplate } from \"themes/administration/podcast/components\";\r\n\r\nclass PodcastGroupPreviewSubPodcastList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastGroupPreviewSubPodcastList;\r\n","import React from \"react\";\r\nimport { PodcastAnalyticsStatsWidgetTemplate } from \"themes/administration/podcast/components\";\r\nimport { PodcastAnalyticsStatsWidgetViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastAnalyticsStatsWidgetViewStore(rootStore, componentProps),\r\n \"podcastAnalyticsStatsWidgetViewStore\"\r\n)\r\nclass PodcastAnalyticsStatsWidget extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastAnalyticsStatsWidget;","import React from \"react\";\r\nimport { PodcastGroupPreviewSubPodcastAnalyticsStatsTemplate } from \"themes/administration/podcast/components\";\r\n\r\nclass PodcastGroupPreviewSubPodcastAnalyticsStats extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastGroupPreviewSubPodcastAnalyticsStats;\r\n","import React from \"react\";\r\nimport { PodcastEditPodcastVolumeTemplate } from \"themes/administration/podcast/components\";\r\nimport { PodcastEditPodcastVolumeViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastEditPodcastVolumeViewStore(rootStore, componentProps),\r\n \"podcastEditPodcastVolumeViewStore\"\r\n)\r\nclass PodcastEditPodcastVolume extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastEditPodcastVolume;\r\n","import React from \"react\";\r\nimport { PodcastEditPodcastVolumeListTemplate } from \"themes/administration/podcast/components\";\r\n\r\nclass PodcastEditPodcastVolumeList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastEditPodcastVolumeList;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { AddPodcastVolumeItemTemplate } from \"themes/administration/podcast/components\";\r\nimport { AddPodcastVolumeItemViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new AddPodcastVolumeItemViewStore(rootStore, componentProps),\r\n \"addPodcastVolumeItemViewStore\"\r\n)\r\n@observer\r\nclass AddPodcastVolumeItem extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AddPodcastVolumeItem;\r\n","import React from \"react\";\r\nimport { PodcastPreviewPodcastVolumeTemplate } from \"themes/administration/podcast/components\";\r\nimport { PodcastPreviewPodcastVolumeViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PodcastPreviewPodcastVolumeViewStore(rootStore, componentProps),\r\n \"podcastPreviewPodcastVolumeViewStore\"\r\n)\r\nclass PodcastPreviewPodcastVolume extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastPreviewPodcastVolume;\r\n","import React from \"react\";\r\nimport { PodcastPreviewPodcastVolumeListTemplate } from \"themes/administration/podcast/components\";\r\n\r\nclass PodcastPreviewPodcastVolumeList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastPreviewPodcastVolumeList;\r\n","import React from \"react\";\r\nimport { PodcastEpisodeTemplate } from \"themes/administration/podcast/components\";\r\n\r\nclass PodcastEpisode extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastEpisode;\r\n","import React from \"react\";\r\nimport { PodcastEpisodeEditTitleModalTemplate } from \"themes/administration/podcast/components\";\r\n\r\nclass PodcastEpisodeEditTitleModal extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeEditTitleModal;\r\n","import React from \"react\";\r\nimport { PodcastEpisodeEditTitleTemplate } from \"themes/administration/podcast/components\";\r\nimport { PodcastEpisodeEditTitleViewStore } from \"administration/podcast/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PodcastEpisodeEditTitleViewStore(rootStore, componentProps),\r\n \"podcastEpisodeEditTitleViewStore\"\r\n)\r\nclass PodcastEpisodeEditTitle extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeEditTitle;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst AddPodcastsToTheGroupLoaderTemplate = (props) => {\r\n const screenwidth = window.innerWidth;\r\n const loaderWidth = screenwidth > 990 ? screenwidth - 260 : screenwidth;\r\n \r\n return (\r\n \r\n {screenwidth > 460 ? : }\r\n \r\n );\r\n};\r\n\r\nconst AddPodcastOnLarge = () => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddPodcastOnSmall = () => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddPodcastsToTheGroupLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst PodcastGroupLineLoaderTemplate = (props) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst PodcastPreviewLineLoaderTemplate = (props) => {\r\n const screenwidth = window.innerWidth;\r\n let loaderWidth;\r\n let setX;\r\n \r\n if (screenwidth > 1200) {\r\n loaderWidth = screenwidth - 690;\r\n } else if (screenwidth > 988) {\r\n loaderWidth = screenwidth - 200;\r\n } else {\r\n loaderWidth = screenwidth - 64;\r\n }\r\n\r\n if (screenwidth > 1440) {\r\n setX = \"98%\";\r\n } else if (screenwidth > 1024) {\r\n setX = \"96%\";\r\n } else if (screenwidth > 425) {\r\n setX = \"95%\";\r\n } else {\r\n setX = \"91%\";\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PodcastGroupLineLoaderTemplate;\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst PodcastEpisodeListLoaderTemplate = ({ listNumber = 4 }) => {\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 {Array.from({ length: listNumber }, () => {\r\n return (\r\n
\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport default PodcastEpisodeListLoaderTemplate;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { renderActions } from \"mrb/components/layout/utils\";\r\nimport { MrbBreadcrumbs } from \"mrb/components/breadcrumbs\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { isFunction } from \"lodash\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { MrbEditFormValidation } from \"mrb/components/layout/content\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PodcastGroupEditPageHeaderTemplate({\r\n form,\r\n onClickCancel,\r\n title,\r\n layoutActions,\r\n navigationOptions,\r\n navigateBack,\r\n t = (i) => i,\r\n submitLabel,\r\n cancelLabel,\r\n store,\r\n}) {\r\n return (\r\n \r\n
\r\n {navigateBack ? (\r\n \r\n \r\n \r\n \r\n {t(navigateBack.title)}\r\n \r\n ) : (\r\n
{t(title)}
\r\n )}\r\n
\r\n \r\n \r\n\r\n \r\n {renderActions(layoutActions)}\r\n
\r\n
\r\n {navigationOptions && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nPodcastGroupEditPageHeaderTemplate.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n onClickCancel: PropTypes.func,\r\n title: PropTypes.string,\r\n layoutActions: PropTypes.object,\r\n navigationOptions: PropTypes.object,\r\n navigateBack: PropTypes.object,\r\n t: PropTypes.func,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n store: PropTypes.object.isRequired,\r\n};\r\n\r\nconst EditPageActions = observer(function EditPageActions({\r\n form,\r\n onClickCancel,\r\n submitLabel = \"Save\",\r\n cancelLabel = \"Cancel\",\r\n t,\r\n}) {\r\n return (\r\n \r\n {onClickCancel && isFunction(onClickCancel) && (\r\n \r\n )}{\" \"}\r\n \r\n \r\n );\r\n});\r\n\r\nEditPageActions.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n onClickCancel: PropTypes.func,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst UnsavedSubPodcastValidation = observer(\r\n function UnsavedSubPodcastValidation({ store, t }) {\r\n return (\r\n store.anyUnsavedSubPodcast && (\r\n
\r\n

\r\n {t(\r\n \"ADMINISTRATION.PODCAST.EDIT.VALIDATION.SUB_PODCAST_CHANGED\"\r\n )}\r\n

\r\n
\r\n )\r\n );\r\n }\r\n);\r\n\r\nUnsavedSubPodcastValidation.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(PodcastGroupEditPageHeaderTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbEditContent, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { PodcastGroupEditPageHeader } from \"administration/podcast/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PodcastGroupEditPageLayoutTemplate({\r\n store,\r\n children,\r\n t,\r\n submitLabel,\r\n cancelLabel,\r\n ...pageProps\r\n}) {\r\n const {\r\n form,\r\n onClickCancel,\r\n title,\r\n layoutActions,\r\n navigationOptions,\r\n navigateBack,\r\n } = store;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nPodcastGroupEditPageLayoutTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n children: PropTypes.any,\r\n t: PropTypes.func,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n};\r\n\r\nexport default observer(PodcastGroupEditPageLayoutTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFileUpload, MrbImage } from \"mrb/components/media\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport coverPlaceholder from \"themes/assets/images/placeholder-template.svg\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UploadedImageLoader, ImageUploadNote } from \"common/components\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction PodcastCoverImageUploadTemplate({\r\n coverImageUploadViewStore,\r\n classNameExtendUpload,\r\n showInfo,\r\n isFullWidthFooterButtons,\r\n}) {\r\n const { fileUploadStore, imageUrl, loaderStore } = coverImageUploadViewStore;\r\n return (\r\n \r\n }\r\n >\r\n {() => (\r\n \r\n
\r\n
\r\n {imageUrl && }\r\n {!imageUrl && }\r\n
\r\n
\r\n
\r\n )}\r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nconst UploadFooter = observer(function UploadFooter({ store, isFullWidthFooterButtons }) {\r\n const { imageUrl, uploadImage, remove, loaderStore } = store;\r\n\r\n return (\r\n \r\n {imageUrl ? (\r\n
\r\n \r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n});\r\n\r\nPodcastCoverImageUploadTemplate.propTypes = {\r\n coverImageUploadViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(PodcastCoverImageUploadTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbEditFormLayout } from \"mrb/components/layout\";\r\nimport { MrbFieldInput, MrbFieldTextArea, MrbFieldNumericInput } from \"mrb/components/input\";\r\nimport { MrbFieldSelect } from \"mrb/components/select\";\r\nimport { MrbFieldToggle } from \"mrb/components/checkbox\";\r\nimport { MrbFieldRadioButtons } from \"mrb/components/radio\";\r\nimport { PodcastCoverImageUpload } from \"administration/podcast/components\";\r\nimport { FieldRichTextEditor, ProducerFieldSelect } from \"common/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction AddPodcastGroupItemTemplate({ addPodcastGroupItemViewStore, t }) {\r\n const {\r\n form,\r\n episodeSortTypeOptions,\r\n resetForm,\r\n coverImageUploadViewStore,\r\n genreSelectStore,\r\n languageSelectStore,\r\n locationSelectStore,\r\n producerSelectStore,\r\n isPremiumDisabled,\r\n } = addPodcastGroupItemViewStore;\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nAddPodcastGroupItemTemplate.propTypes = {\r\n addPodcastGroupItemViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(AddPodcastGroupItemTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbCollapsiblePanel } from \"mrb/components/collapsible-panel\";\r\nimport { MrbEditFormLayout } from \"mrb/components/layout\";\r\nimport { MrbFieldSelect } from \"mrb/components/select\";\r\nimport { MrbFieldInput, MrbFieldTextArea, MrbFieldNumericInput } from \"mrb/components/input\";\r\nimport { MrbFieldToggle } from \"mrb/components/checkbox\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbFieldRadioButtons } from \"mrb/components/radio\";\r\nimport { PodcastCoverImageUpload } from \"administration/podcast/components\";\r\nimport { PODCAST_FORM_STATUS } from \"administration/podcast/stores\";\r\nimport { FieldRichTextEditor, ProducerFieldSelect } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PodcastGroupEditSubPodcastTemplate({ podcastGroupEditSubPodcastViewStore, t }) {\r\n const {\r\n form,\r\n podcastIndex,\r\n podcast,\r\n episodeSortTypeOptions,\r\n isCollapsed,\r\n toggleCollapse,\r\n setPanelRef,\r\n coverImageUploadViewStore,\r\n resetForm,\r\n deleteSubPodcast,\r\n genreSelectStore,\r\n languageSelectStore,\r\n locationSelectStore,\r\n producerSelectStore,\r\n overrideRadioUsersSettingsIsVisible,\r\n overrideAppUsersSettingsIsVisible,\r\n isPremiumDisabled,\r\n } = podcastGroupEditSubPodcastViewStore;\r\n return (\r\n \r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n {overrideRadioUsersSettingsIsVisible ? (\r\n \r\n ) : null}\r\n
\r\n \r\n \r\n {overrideAppUsersSettingsIsVisible ? (\r\n \r\n ) : null}\r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n
\r\n );\r\n}\r\n\r\nPodcastGroupEditSubPodcastTemplate.propTypes = {\r\n podcastGroupEditSubPodcastViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst SubPodcastPanelHeader = observer(function SubPodcastPanelHeader({\r\n title,\r\n t,\r\n isCollapsed,\r\n podcastIndex,\r\n podcast,\r\n deleteSubPodcast,\r\n}) {\r\n return (\r\n \r\n
\r\n \r\n {podcastIndex}.\r\n {t(title)}\r\n {podcast.isPremium && (\r\n \r\n )}\r\n
\r\n
\r\n {podcast.FORM_STATUS === PODCAST_FORM_STATUS.CHANGED && (\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.EDIT.VALIDATION.SUB_PODCAST_CHANGED\")}\r\n

\r\n
\r\n )}\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nexport default observer(PodcastGroupEditSubPodcastTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PodcastGroupEditSubPodcast } from \"administration/podcast/components\";\r\nimport { DragDropList } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PodcastGroupEditSubPodcastListTemplate({\r\n podcastGroupEditViewStore,\r\n t,\r\n}) {\r\n const { subPodcasts, reorderPodcasts } = podcastGroupEditViewStore;\r\n\r\n return (\r\n \r\n {subPodcasts && subPodcasts.length > 0 && (\r\n (\r\n \r\n )}\r\n >\r\n )}\r\n \r\n );\r\n}\r\n\r\nPodcastGroupEditSubPodcastListTemplate.propTypes = {\r\n podcastGroupEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(PodcastGroupEditSubPodcastListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbCollapsiblePanel } from \"mrb/components/collapsible-panel\";\r\nimport { MrbEditFormLayout } from \"mrb/components/layout\";\r\nimport { MrbFieldInput } from \"mrb/components/input\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { PodcastCoverImageUpload } from \"administration/podcast/components\";\r\nimport { PODCAST_FORM_STATUS } from \"administration/podcast/stores\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PodcastVolumeEditTemplate({ podcastEditPodcastVolumeViewStore, t }) {\r\n const {\r\n form,\r\n podcastVolumeIndex,\r\n podcastVolume,\r\n isCollapsed,\r\n toggleCollapse,\r\n setPanelRef,\r\n coverImageUploadViewStore,\r\n resetForm,\r\n deletePodcastVolume,\r\n } = podcastEditPodcastVolumeViewStore;\r\n return (\r\n \r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n )}\r\n \r\n
\r\n );\r\n}\r\n\r\nPodcastVolumeEditTemplate.propTypes = {\r\n podcastEditPodcastVolumeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst PodcastVolumePanelHeader = observer(function PodcastVolumePanelHeader({\r\n title,\r\n t,\r\n isCollapsed,\r\n podcastVolumeIndex,\r\n podcastVolume,\r\n deletePodcastVolume,\r\n}) {\r\n return (\r\n \r\n
\r\n {podcastVolumeIndex}.\r\n {t(title)}\r\n
\r\n
\r\n {podcastVolume.FORM_STATUS === PODCAST_FORM_STATUS.CHANGED && (\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.EDIT.VALIDATION.PODCAST_VOLUME_CHANGED\")}\r\n

\r\n
\r\n )}\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nexport default observer(PodcastVolumeEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PodcastEditPodcastVolume } from \"administration/podcast/components\";\r\nimport { DragDropList } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PodcastEditPodcastVolumeListTemplate({ podcastEditViewStore, t }) {\r\n const { podcastVolumes, reorderPodcastVolumes } = podcastEditViewStore;\r\n\r\n return (\r\n \r\n {podcastVolumes && podcastVolumes.length > 0 && (\r\n (\r\n \r\n )}\r\n >\r\n )}\r\n \r\n );\r\n}\r\n\r\nPodcastEditPodcastVolumeListTemplate.propTypes = {\r\n podcastEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(PodcastEditPodcastVolumeListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbEditFormLayout } from \"mrb/components/layout\";\r\nimport { MrbFieldInput } from \"mrb/components/input\";\r\nimport { PodcastCoverImageUpload } from \"administration/podcast/components\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction AddPodcastVolumeItemTemplate({ addPodcastVolumeItemViewStore, t }) {\r\n const {\r\n form,\r\n resetForm,\r\n coverImageUploadViewStore,\r\n } = addPodcastVolumeItemViewStore;\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\nAddPodcastVolumeItemTemplate.propTypes = {\r\n addPodcastVolumeItemViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(AddPodcastVolumeItemTemplate);\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 { observer } from \"mobx-react\";\r\nimport { MrbToggle } from \"mrb/components/checkbox\";\r\nimport { PodcastGroupPreviewSubPodcastAnalyticsStats } from \"administration/podcast/components\";\r\nimport { Genres, HTMLRender, Image, ProducerLabel } from \"common/components\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction PodcastGroupPreviewSubPodcastTemplate({ podcastGroupPreviewSubPodcastViewStore, t }) {\r\n const {\r\n podcast,\r\n isCollapsed,\r\n toggleCollapse,\r\n toggleIsActive,\r\n togglePremiumStatus,\r\n toggleOnByDefaultStatus,\r\n toggleOnByDefaultInAppStatus,\r\n toggleOnByDefaultInNakiTouchStatus,\r\n toggleRecentlyUpdatedVisibilityStatus,\r\n toggleAppVisibilityStatus,\r\n toggleNakiTouchVisibilityStatus,\r\n toggleExcludedFromRevenueStatus,\r\n onClickEdit,\r\n setPanelRef,\r\n coverImageUrl,\r\n isPremiumDisabled,\r\n isAppVisibilityDisabled,\r\n isNakiTouchVisibilityDisabled,\r\n subPodcastAnalyticsStatsWidgetViewStore,\r\n onClickPodcastEpisodeList,\r\n toggleHlsEnabledStatus,\r\n } = podcastGroupPreviewSubPodcastViewStore;\r\n const { displayMissingProducers } = podcastGroupPreviewSubPodcastViewStore.podcastGroupPreviewViewStore;\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 {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.FEED_URL\")}\r\n

\r\n \r\n {podcast.podcastFeed.feedUrl}\r\n \r\n
\r\n
\r\n\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.LOCATION\")}\r\n

\r\n

{podcast.location && podcast.location.name}

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.LANGUAGE\")}\r\n

\r\n

\r\n {(podcast.language && podcast.language.name) || \"-\"}\r\n

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.GENRES\")}\r\n

\r\n {podcast.genres && podcast.genres.length > 0 ? (\r\n \r\n ) : (\r\n \"-\"\r\n )}\r\n
\r\n\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.DESCRIPTION\")}\r\n

\r\n

\r\n {podcast.description || \"-\"}\r\n

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.PORTAL_DESCRIPTION\")}\r\n

\r\n \r\n {podcast.alternativeDescription || \"-\"}\r\n \r\n
\r\n\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.EPISODE_SORT_TYPE\")}\r\n

\r\n

\r\n {podcast.podcastFeed && podcast.podcastFeed.episodeSortType\r\n ? podcast.podcastFeed.episodeSortType.name\r\n : \"-\"}\r\n

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.EPISODE_LIMIT\")}\r\n

\r\n

\r\n {podcast.podcastFeed && podcast.podcastFeed.episodeLimit\r\n ? podcast.podcastFeed.episodeLimit\r\n : \"-\"}\r\n

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.PRODUCER\")}\r\n

\r\n\r\n

\r\n {podcast.producer && (\r\n \r\n )}\r\n

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.DESCRIPTION_LINK\")}\r\n

\r\n {podcast.descriptionLink ? (\r\n \r\n {podcast.descriptionLink}\r\n \r\n ) : (\r\n

-

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

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.FIELDS.COVER_IMAGE\")}\r\n

\r\n \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(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.STATUS\")}\r\n toggleIsActive(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.PREMIUM\")}\r\n togglePremiumStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.MAKE_DEFAULT\")}\r\n toggleOnByDefaultStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.VISIBLE_IN_APP\")}\r\n toggleAppVisibilityStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.MAKE_DEFAULT_IN_APP\")}\r\n toggleOnByDefaultInAppStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.VISIBLE_IN_EMBEDDED_APP\")}\r\n toggleNakiTouchVisibilityStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.MAKE_DEFAULT_IN_EMBEDDED_APP\")}\r\n \r\n toggleOnByDefaultInNakiTouchStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.RECENTLY_UPDATED_VISIBILITY\")}\r\n \r\n toggleRecentlyUpdatedVisibilityStatus(event.target.checked)\r\n }\r\n />\r\n
\r\n
\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.HLS_ENABLED\")}\r\n toggleHlsEnabledStatus(event.target.checked)}\r\n />\r\n
\r\n\r\n
\r\n\r\n
\r\n
{t(\"Excluded from revenue\")}
\r\n toggleExcludedFromRevenueStatus(event.target.checked)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\" \"}\r\n \r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nPodcastGroupPreviewSubPodcastTemplate.propTypes = {\r\n podcast: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst SubPodcastPanelHeader = observer(function SubPodcastPanelHeader({\r\n title,\r\n t,\r\n isCollapsed,\r\n podcast,\r\n displayMissingProducers,\r\n isPremiumDisabled,\r\n}) {\r\n return (\r\n \r\n
\r\n {t(title)}{\" \"}\r\n {podcast.isPremium && (\r\n \r\n )}\r\n
\r\n
\r\n {((isPremiumDisabled && podcast.producerId === null) ||\r\n (displayMissingProducers && podcast.producerId === null)) && (\r\n

\r\n {t(\"ADMINISTRATION.PODCAST.PREVIEW.VALIDATION.MISSING_PRODUCER_LABEL\")}\r\n

\r\n )}{\" \"}\r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nexport default observer(PodcastGroupPreviewSubPodcastTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PodcastGroupPreviewSubPodcast, PodcastGroupLineLoader } from \"administration/podcast/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nfunction PodcastGroupPreviewSubPodcastListTemplate({ podcastGroupPreviewViewStore, t }) {\r\n const { item, loaderStore } = podcastGroupPreviewViewStore;\r\n\r\n return (\r\n
\r\n
\r\n }>\r\n {() => (\r\n
\r\n {map(item.subPodcasts, (subPodcast, key) => (\r\n \r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nPodcastGroupPreviewSubPodcastListTemplate.propTypes = {\r\n podcastGroupPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(PodcastGroupPreviewSubPodcastListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { StatsWidget } from \"administration/analytics/components\";\r\n\r\nfunction PodcastAnalyticsStatsWidgetTemplate({ podcastAnalyticsStatsWidgetViewStore, t }) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nPodcastAnalyticsStatsWidgetTemplate.propTypes = {\r\n podcastAnalyticsStatsWidgetViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired\r\n}\r\n\r\nexport default PodcastAnalyticsStatsWidgetTemplate;","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { StatsWidgetLoader } from \"administration/analytics/components\";\r\nimport { TrendingIndicator } from \"administration/analytics/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PodcastGroupPreviewSubPodcastAnalyticsStatsTemplate({ store, t }) {\r\n const { item, currentPeriodLabel, previousPeriodLabel, loaderStore } = store;\r\n return (\r\n }\r\n >\r\n {() => (\r\n \r\n
\r\n

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

\r\n

{numberFormatter.format(item.currentCycleScore)}

\r\n
\r\n {item.currentCyclePosition && item.previousCyclePosition && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n

Chart position

\r\n

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

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

{previousPeriodLabel} chart position

\r\n

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

\r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nPodcastGroupPreviewSubPodcastAnalyticsStatsTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(PodcastGroupPreviewSubPodcastAnalyticsStatsTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { Image } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PodcastPreviewPodcastVolumeTemplate({ podcastPreviewPodcastVolumeViewStore, t }) {\r\n const { podcastVolume, onClickEdit, coverImageUrl } = podcastPreviewPodcastVolumeViewStore;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n

{podcastVolume.title}

\r\n
\r\n\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nPodcastPreviewPodcastVolumeTemplate.propTypes = {\r\n podcastVolume: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(PodcastPreviewPodcastVolumeTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PodcastPreviewPodcastVolume, PodcastGroupLineLoader } from \"administration/podcast/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nfunction PodcastPreviewPodcastVolumeListTemplate({ podcastPreviewViewStore, t }) {\r\n const { item, loaderStore } = podcastPreviewViewStore;\r\n\r\n return (\r\n
\r\n }>\r\n {() => (\r\n
\r\n {map(item.podcastVolumes, (podcastVolume, key) => (\r\n \r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nPodcastPreviewPodcastVolumeListTemplate.propTypes = {\r\n podcastPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(PodcastPreviewPodcastVolumeListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { Image } from \"common/components\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { convertSecondsToHMS } from \"common/utils\";\r\nimport { isEmpty, isNil } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { useRootStore } from \"mrb/core\";\r\n\r\nfunction PodcastEpisodeTemplate({\r\n item,\r\n isSyncing,\r\n generateAudioFiles,\r\n openEditPodcastEpisodeTitleModal,\r\n wrapperClassName,\r\n isActive,\r\n isHlsEnabled,\r\n t,\r\n downloadPodcastEpisode,\r\n deletePodcastEpisode,\r\n}) {\r\n const rootStore = useRootStore();\r\n const artworkUrl = item.artworkFileEntryId\r\n ? rootStore.coverImageFactory.createPodcastCoverImageUrl(item.artworkFileEntryId, 50, 50)\r\n : null;\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

{item.title}

\r\n\r\n {!isNil(item.syncTask) ? (\r\n \r\n ) : null}\r\n
\r\n\r\n
\r\n {\r\n openEditPodcastEpisodeTitleModal(item);\r\n }}\r\n />\r\n\r\n downloadPodcastEpisode(item)}\r\n title={\"Download Episode\"}\r\n onlyIcon\r\n icon=\"u-icon u-icon--base u-icon--expand--down\"\r\n classNameOverride=\"c-btn c-btn--primary c-btn--rounded c-btn--rounded--sml c-btn--icon\"\r\n >\r\n {item.isManualUpload && (\r\n deletePodcastEpisode(item)}\r\n title={\"Delete Episode\"}\r\n onlyIcon\r\n icon=\"u-icon u-icon--med u-icon--trash\"\r\n classNameOverride=\"c-btn c-btn--icon\"\r\n >\r\n )}\r\n
\r\n
\r\n
\r\n

\r\n {dateFormatter.format(item.publishDate, {\r\n format: applicationDefaults.formats.date,\r\n })}{\" \"}\r\n • {convertSecondsToHMS(item.duration)}\r\n

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

Source URL

\r\n \r\n {item.streamUrl}\r\n \r\n
\r\n\r\n
\r\n {!isEmpty(item.hlsStreamUrl) ? (\r\n
\r\n

HLS availability

\r\n

Available

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

HLS availability

\r\n

Not available

\r\n
\r\n )}\r\n\r\n {!isEmpty(item.audioStreamUrl) ? (\r\n
\r\n

MP3 availability

\r\n

Available

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

MP3 availability

\r\n

Not available

\r\n
\r\n )}\r\n\r\n {item.audioFileBitrate > 0 && item.audioFileSize > 0 && (\r\n <>\r\n
\r\n

MP3 file bitrate

\r\n

{`${item.audioFileBitrate} Kbit/s`}

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

MP3 file size

\r\n

\r\n {`${(item.audioFileSize / Math.round(1024 * 1024)).toFixed(2)} MB`}\r\n

\r\n
\r\n \r\n )}\r\n
\r\n
\r\n {!isEmpty(item.audioStreamUrl) && isHlsEnabled ? (\r\n
\r\n

Streaming from local server

\r\n

Yes

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

Streaming from local server

\r\n

No

\r\n
\r\n )}\r\n
\r\n {isActive && isHlsEnabled && (\r\n generateAudioFiles(item)}\r\n />\r\n )}\r\n
\r\n );\r\n}\r\n\r\nPodcastEpisodeTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n generateAudioFiles: PropTypes.func.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(PodcastEpisodeTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PodcastEpisodeEditTitle } from \"administration/podcast/components\";\r\n\r\nconst PodcastEpisodeEditTitleModalTemplate = observer(function PodcastEpisodeEditTitleModalTemplate({\r\n podcastEpisodeListViewStore,\r\n modalParams,\r\n t,\r\n}) {\r\n return (\r\n \r\n {() => (\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nPodcastEpisodeEditTitleModalTemplate.propTypes = {\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default PodcastEpisodeEditTitleModalTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldInput } from \"mrb/components/input\";\r\nimport { MrbEditFormValidation } from \"mrb/components/layout/content\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { isFunction } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PodcastEpisodeEditTitle({ podcastEpisodeEditTitleViewStore, closeModal, t }) {\r\n const { form } = podcastEpisodeEditTitleViewStore;\r\n return (\r\n \r\n \r\n
\r\n {closeModal && isFunction(closeModal) && (\r\n \r\n )}{\" \"}\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nPodcastEpisodeEditTitle.propTypes = {\r\n podcastEpisodeEditTitleViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(PodcastEpisodeEditTitle);\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport {\r\n PodcastService,\r\n EpisodeSortTypeCacheService,\r\n MediaVaultStreamService,\r\n PodcastFileStreamService,\r\n GenreLookupService,\r\n LocationService,\r\n LanguageService,\r\n ProducerService,\r\n} from \"common/services\";\r\nimport moment from \"moment\";\r\n\r\nclass BasePodcastEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(PodcastService);\r\n this.episodeSortTypeService = new EpisodeSortTypeCacheService(this.rootStore);\r\n this.mediaVaultStreamService = new MediaVaultStreamService(\r\n this.rootStore.apiClient,\r\n this.rootStore.application.baasic\r\n );\r\n this.podcastFileStreamService = this.rootStore.createApplicationService(PodcastFileStreamService);\r\n this.genreLookupService = this.rootStore.createApplicationService(GenreLookupService);\r\n this.locationService = this.rootStore.createApplicationService(LocationService);\r\n this.languageService = this.rootStore.createApplicationService(LanguageService);\r\n this.producerService = this.rootStore.createApplicationService(ProducerService);\r\n }\r\n\r\n getEpisodeSortTypes() {\r\n return this.episodeSortTypeService.getItems();\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n return this.mediaVaultStreamService.mediaVaultModule.streams.routeDefinition.get(id);\r\n }\r\n\r\n async uploadImageFile(file) {\r\n const now = moment();\r\n const [name, extension] = file.name.split(\".\");\r\n const path = `${name}_${now.year()}-${now.month()}-${now.date()}-${now.hour()}-${now.minute()}-${now.second()}.${extension}`;\r\n const response = await this.mediaVaultStreamService.create(\r\n {\r\n path: path,\r\n fileName: file.name,\r\n },\r\n file\r\n );\r\n return response.data;\r\n }\r\n\r\n getPodcastCoverImageUrl(coverImageId) {\r\n return this.podcastFileStreamService.routeService.get(coverImageId);\r\n }\r\n\r\n async findGenres(searchPhrase) {\r\n const response = await this.genreLookupService.find(searchPhrase);\r\n return response.data;\r\n }\r\n\r\n async findProducers(searchPhrase) {\r\n const response = await this.producerService.find(searchPhrase);\r\n return response.data;\r\n }\r\n\r\n async createProducer(resource) {\r\n const response = await this.producerService.create(resource);\r\n return response.data;\r\n }\r\n\r\n async createGenre(resource) {\r\n const response = await this.genreLookupService.create(resource);\r\n return response.data;\r\n }\r\n\r\n async findLocations(searchPhrase) {\r\n const response = await this.locationService.find(searchPhrase);\r\n return response.data;\r\n }\r\n\r\n async createLocation(resource) {\r\n const response = await this.locationService.create(resource);\r\n return response.data;\r\n }\r\n\r\n async createLanguage(resource) {\r\n const response = await this.languageService.create(resource);\r\n return response.data;\r\n }\r\n\r\n async findLanguages(searchPhrase) {\r\n const response = await this.languageService.find(searchPhrase);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default BasePodcastEditRouteStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { PodcastCoverImageUploadViewStore } from \"administration/podcast/stores\";\r\nimport { map, orderBy } from \"lodash\";\r\n\r\nclass BasePodcastEditViewStore extends MrbBaseEditViewStore {\r\n @observable.ref episodeSortTypes = [];\r\n\r\n @computed get episodeSortTypeOptions() {\r\n return map(this.episodeSortTypes, (item) => {\r\n return {\r\n value: item.id,\r\n label: `ADMINISTRATION.PODCAST.EDIT.FIELDS.${item.name.toUpperCase()}_OPTION_LABEL`,\r\n };\r\n });\r\n }\r\n\r\n constructor(rootStore, routeStore, config) {\r\n super(rootStore, config);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.coverImageUploadViewStore = new PodcastCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n });\r\n }\r\n\r\n async onInit() {\r\n await this.loadLookups();\r\n await this.initializeResource();\r\n if (this.isEdit && this.item.coverImageId) {\r\n this.coverImageUploadViewStore.setImageUrl(this.routeStore.getPodcastCoverImageUrl(this.item.coverImageId));\r\n }\r\n }\r\n\r\n @action.bound\r\n setEpisodeSortTypes(items) {\r\n this.episodeSortTypes = items;\r\n }\r\n\r\n async loadLookups() {\r\n const episodeSortTypes = await this.routeStore.getEpisodeSortTypes();\r\n this.setEpisodeSortTypes(orderBy(episodeSortTypes, (sortType) => sortType.sortOrder));\r\n }\r\n}\r\n\r\nexport default BasePodcastEditViewStore;\r\n","import { action, computed, makeObservable, observable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { MrbContentLoaderStore } from \"mrb/components/loader\";\r\nimport { MrbFileUploadViewStore } from \"mrb/components/media\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\nimport { head } from \"lodash\";\r\n\r\nclass PodcastCoverImageUploadViewStore extends MrbBaseViewStore {\r\n @computed get file() {\r\n return head(this.fileUploadStore.files);\r\n }\r\n\r\n @observable uploadedFileId = null;\r\n\r\n @observable.ref imageUrl = null;\r\n\r\n @observable hasChanged = false;\r\n\r\n constructor(rootStore, { routeStore, width = 400, height = 400 }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.fileUploadStore = new MrbFileUploadViewStore(this.rootStore, {\r\n acceptedFiles: \"image/jpeg, image/png, image/gif\",\r\n maxSize: 2000000,\r\n showValidation: false,\r\n errorsMap: {\r\n \"file-invalid-type\": () => {\r\n return \"File type must be .jpg, .png or .gif\";\r\n },\r\n \"file-too-large\": () => {\r\n return \"File is larger than 2MB\";\r\n },\r\n },\r\n });\r\n this.width = width;\r\n this.height = height;\r\n this.routeStore = routeStore;\r\n this.loaderStore = new MrbContentLoaderStore({\r\n suspendRenderOnInit: false,\r\n });\r\n\r\n this.reaction(\r\n () => this.file,\r\n (file) => {\r\n if (file) {\r\n this.uploadFile(file);\r\n } else {\r\n this.changeUploadedFileId(null);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.uploadedFileId,\r\n (id) => {\r\n if (id) {\r\n this.setImageUrl(this.routeStore.getMediaVaultFileUrl(id));\r\n } else {\r\n this.setImageUrl(null);\r\n }\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n async uploadFile(file) {\r\n try {\r\n this.loaderStore.suspend();\r\n const mediaVaultFile = await this.routeStore.uploadImageFile(file);\r\n runInAction(() => {\r\n this.changeUploadedFileId(mediaVaultFile.id);\r\n this.loaderStore.resume();\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to upload image. Please contact the support team.\",\r\n err\r\n );\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n @action.bound\r\n changeUploadedFileId(fileId) {\r\n this.setUploadedFileId(fileId);\r\n this.hasChanged = true;\r\n }\r\n\r\n @action.bound\r\n setUploadedFileId(fileId) {\r\n this.uploadedFileId = fileId;\r\n }\r\n\r\n @action.bound\r\n setImageUrl(url) {\r\n if (url) {\r\n this.imageUrl = this.createAuthenticatedImageUrl(url);\r\n } else {\r\n this.imageUrl = null;\r\n }\r\n }\r\n\r\n uploadImage = (event) => {\r\n this.fileUploadStore.raiseBrowse(event);\r\n };\r\n\r\n remove = () => {\r\n this.setImageUrl(null);\r\n this.changeUploadedFileId(null);\r\n this.fileUploadStore.clear();\r\n };\r\n\r\n createAuthenticatedImageUrl = (baseUrl) => {\r\n return createBaasicAuthenticatedMediaVaultUrl(this.rootStore, baseUrl, {\r\n width: this.width,\r\n height: this.height,\r\n });\r\n };\r\n}\r\n\r\nexport default PodcastCoverImageUploadViewStore;\r\n","import { BasePodcastEditRouteStore } from \"administration/podcast/stores\";\r\nimport { TorahAnytimeService } from \"common/services\";\r\n\r\nclass PodcastEditRouteStore extends BasePodcastEditRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.torahAnytimeService = this.rootStore.createApplicationService(TorahAnytimeService);\r\n }\r\n\r\n async createPodcast(resource) {\r\n const response = await this.service.create(resource);\r\n return response.data;\r\n }\r\n\r\n async getPodcast(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"podcastFeed,genres,language,location,podcastVolumes,producer\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async updatePodcast(resource) {\r\n const response = await this.service.update(resource);\r\n return response.data;\r\n }\r\n\r\n async getTorahAnytimeSetting() {\r\n const response = await this.torahAnytimeService.getSetting();\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default PodcastEditRouteStore;\r\n","import { action, computed, observable, makeObservable, toJS } from \"mobx\";\r\nimport { PodcastGroupEditForm } from \"administration/podcast/forms\";\r\nimport { BasePodcastEditViewStore } from \"administration/podcast/stores\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { UUID } from \"common/utils\";\r\nimport { map, findIndex, filter, merge, some, omit, isEmpty } from \"lodash\";\r\n\r\nexport const PODCAST_FORM_STATUS = {\r\n CHANGED: \"CHANGED\",\r\n UPDATED: \"UPDATED\",\r\n};\r\n\r\nclass PodcastGroupEditViewStore extends BasePodcastEditViewStore {\r\n @observable subPodcasts = [];\r\n @observable subPodcastsChanged = false;\r\n\r\n @computed get anyUnsavedSubPodcast() {\r\n return some(this.subPodcasts, (subPodcast) => subPodcast.FORM_STATUS === PODCAST_FORM_STATUS.CHANGED);\r\n }\r\n\r\n @computed get isFormChanged() {\r\n return (\r\n this.form.changed ||\r\n some(\r\n this.subPodcasts,\r\n (subPodcast) =>\r\n subPodcast.FORM_STATUS === PODCAST_FORM_STATUS.CHANGED ||\r\n subPodcast.FORM_STATUS === PODCAST_FORM_STATUS.UPDATED\r\n ) ||\r\n this.subPodcastsChanged ||\r\n this.coverImageUploadViewStore.hasChanged\r\n );\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, routeStore, {\r\n id: id,\r\n name: \"podcast\",\r\n FormClass: PodcastGroupEditForm,\r\n autoFocusField: \"title\",\r\n navigateBack: \"master.administration.podcast.list\",\r\n blockRouteExit: true,\r\n redirectOnCreateSuccess: ({ id }) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.preview-group\", { id: id }),\r\n redirectOnUpdateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.preview-group\", { id: this.id }),\r\n });\r\n makeObservable(this);\r\n\r\n this.reaction(\r\n () => this.form.submitted && this.subPodcasts.length === 0,\r\n (invalidateSubPodcasts) => {\r\n if (invalidateSubPodcasts) {\r\n this.form.invalidate(\"ADMINISTRATION.PODCAST.EDIT.VALIDATION.SUB_PODCASTS_EMPTY\");\r\n } else {\r\n this.form.validator.error = null;\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () =>\r\n this.form.submitted &&\r\n some(\r\n this.subPodcasts,\r\n (subPodcast) => this.form.$(\"isPremium\").value && subPodcast.producerId === null\r\n ),\r\n (invalidateSubPodcasts) => {\r\n if (invalidateSubPodcasts) {\r\n this.form.invalidate(\"ADMINISTRATION.PODCAST.EDIT.VALIDATION.PREMIUM_PODCAST_MISSING_PRODUCER\");\r\n } else {\r\n this.form.validator.error = null;\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.form.$(\"isPremium\").value,\r\n (isPremium) => {\r\n if (!isPremium) {\r\n this.form.$(\"premiumInfo\").set(null);\r\n }\r\n }\r\n );\r\n\r\n this.registerRouteExitBlocking();\r\n }\r\n\r\n createResource(data) {\r\n this._onAfterSave(data);\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n return super.createResource(data);\r\n }\r\n\r\n updateResource(data) {\r\n this._onAfterSave(data);\r\n if (this.coverImageUploadViewStore.hasChanged) {\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n } else {\r\n data.coverImageId = this.item.coverImageId;\r\n }\r\n return super.updateResource(data);\r\n }\r\n\r\n _onAfterSave(data) {\r\n data.subPodcasts = map(this.subPodcasts, (subPodcast, index) => {\r\n return {\r\n ...omit(subPodcast, \"FORM_STATUS\"),\r\n genreIds: subPodcast.genres ? map(subPodcast.genres, (genre) => genre.id) : null,\r\n sortOrder: index + 1,\r\n };\r\n });\r\n if (!data.subPodcasts || data.subPodcasts.length === 0) {\r\n this.form.invalidate(\"ADMINISTRATION.PODCAST.EDIT.VALIDATION.SUB_PODCASTS_EMPTY\");\r\n return;\r\n }\r\n if (some(data.subPodcasts, (subPodcast) => data.isPremium && subPodcast.producerId === null)) {\r\n this.form.invalidate(\"ADMINISTRATION.PODCAST.EDIT.VALIDATION.PREMIUM_PODCAST_MISSING_PRODUCER\");\r\n return;\r\n }\r\n if (!data.isPremium && !isEmpty(data.premiumInfo)) {\r\n data.premiumInfo = null;\r\n }\r\n }\r\n\r\n setItem(item) {\r\n this.subPodcasts = item.subPodcasts;\r\n item.subPodcasts = null;\r\n super.setItem(item);\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getPodcastGroup(id);\r\n }\r\n\r\n create(data) {\r\n return this.routeStore.createPodcastGroup(data);\r\n }\r\n\r\n resetForm() {\r\n this.form.set({\r\n isActive: true,\r\n isVisible: true,\r\n });\r\n }\r\n\r\n update(data) {\r\n return this.routeStore.updatePodcastGroup(data);\r\n }\r\n\r\n onCreateSuccess(result) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n super.onCreateSuccess(result);\r\n }\r\n\r\n onUpdateSuccess(result) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n super.onUpdateSuccess(result);\r\n }\r\n\r\n onCreateError(err) {\r\n if (err.data.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n const podcast = err.data.response;\r\n this.rootStore.notificationStore.error(\r\n \"Podcast group created, but unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n this.redirectOnCreateSuccess(podcast);\r\n } else {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to create podcast group.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n onUpdateError(err) {\r\n if (err.data.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n this.rootStore.notificationStore.error(\r\n \"Podcast group updated, but an unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n this.redirectOnUpdateSuccess();\r\n } else {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to updated podcast group.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n addSubPodcast(item) {\r\n item.id = UUID.create();\r\n item.FORM_STATUS = PODCAST_FORM_STATUS.UPDATED;\r\n this.subPodcasts.push(item);\r\n this.subPodcastsChanged = true;\r\n }\r\n\r\n @action.bound\r\n updateSubPodcast(id, item) {\r\n const index = findIndex(this.subPodcasts, (subPodcast) => subPodcast.id === id);\r\n item.FORM_STATUS = PODCAST_FORM_STATUS.UPDATED;\r\n if (item.genres !== undefined) {\r\n this.subPodcasts[index].genres = item.genres;\r\n }\r\n this.subPodcasts[index] = merge(this.subPodcasts[index], item);\r\n this.subPodcastsChanged = true;\r\n }\r\n\r\n @action.bound\r\n reorderPodcasts(result) {\r\n const { destination, source } = result;\r\n if (!destination) {\r\n return;\r\n }\r\n\r\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\r\n return;\r\n }\r\n\r\n const newPodcasts = Array.from(toJS(this.subPodcasts));\r\n const podcast = newPodcasts.splice(source.index, 1)[0];\r\n podcast.FORM_STATUS = PODCAST_FORM_STATUS.UPDATED;\r\n newPodcasts.splice(destination.index, 0, podcast);\r\n\r\n this.subPodcasts = newPodcasts;\r\n this.subPodcastsChanged = true;\r\n }\r\n\r\n @action.bound\r\n markSubPodcastAsChanged(podcastId) {\r\n const index = findIndex(this.subPodcasts, (subPodcast) => subPodcast.id === podcastId);\r\n if (index > -1) {\r\n this.subPodcasts[index].FORM_STATUS = PODCAST_FORM_STATUS.CHANGED;\r\n }\r\n this.subPodcastsChanged = true;\r\n }\r\n\r\n @action.bound\r\n markSubPodcastAsUpdated(podcastId) {\r\n const index = findIndex(this.subPodcasts, (subPodcast) => subPodcast.id === podcastId);\r\n if (index > -1) {\r\n this.subPodcasts[index].FORM_STATUS = PODCAST_FORM_STATUS.UPDATED;\r\n }\r\n this.subPodcastsChanged = true;\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 @action.bound\r\n deleteSubPodcast(podcastId) {\r\n this.subPodcasts = filter(this.subPodcasts, (subPodcast) => subPodcast.id !== podcastId);\r\n }\r\n}\r\n\r\nexport default PodcastGroupEditViewStore;\r\n","import { makeObservable, observable, runInAction, action, computed, toJS } from \"mobx\";\r\nimport { MrbFieldSelectStore } from \"mrb/components/select\";\r\nimport { PodcastEditForm } from \"administration/podcast/forms\";\r\nimport { BasePodcastEditViewStore } from \"administration/podcast/stores\";\r\nimport { map, omit, filter, findIndex, merge, some } from \"lodash\";\r\nimport { PODCAST_FORM_STATUS } from \"./PodcastGroupEditViewStore\";\r\nimport { applicationErrorCodes, podcastContentType } from \"common/constants\";\r\nimport { UUID } from \"common/utils\";\r\nimport { isEmpty, isNil, find } from \"lodash\";\r\n\r\nclass PodcastEditViewStore extends BasePodcastEditViewStore {\r\n @observable overrideRadioUsersSettingsIsVisible = false;\r\n @observable overrideAppUsersSettingsIsVisible = false;\r\n @observable premiumInfoIsVisible = false;\r\n @observable podcastVolumes = [];\r\n @observable podcastVolumesChanged = false;\r\n @observable torahAnytimeSettings;\r\n\r\n skipPodcastContentTypeReaction = true;\r\n\r\n podcastContentTypes = [\r\n { name: \"Default\", id: podcastContentType.default },\r\n { name: \"TorahAnytime\", id: podcastContentType.torahAnytime },\r\n ];\r\n\r\n @computed get isFormChanged() {\r\n return (\r\n this.form.changed ||\r\n some(\r\n this.podcastVolumes,\r\n (podcastVolume) =>\r\n podcastVolume.FORM_STATUS === PODCAST_FORM_STATUS.CHANGED ||\r\n podcastVolume.FORM_STATUS === PODCAST_FORM_STATUS.UPDATED\r\n ) ||\r\n this.podcastVolumesChanged ||\r\n this.coverImageUploadViewStore.hasChanged\r\n );\r\n }\r\n\r\n @computed get isTorahAnytimeTypeSelected() {\r\n return this.form.$(\"podcastContentType\").value === podcastContentType.torahAnytime;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, routeStore, {\r\n id: id,\r\n name: \"podcast\",\r\n FormClass: PodcastEditForm,\r\n autoFocusField: \"title\",\r\n navigateBack: \"master.administration.podcast.list\",\r\n redirectOnCreateSuccess: ({ id }) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.preview\", { id: id }),\r\n redirectOnUpdateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.preview\", { id: this.id }),\r\n });\r\n makeObservable(this);\r\n\r\n this.genreSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n isMulti: true,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findGenres(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createGenre({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"genreIds\")\r\n );\r\n\r\n this.locationSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findLocations(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createLocation({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"locationId\")\r\n );\r\n\r\n this.languageSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findLanguages(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createLanguage({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"languageId\")\r\n );\r\n\r\n this.producerSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findProducers(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createProducer({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"producerId\")\r\n );\r\n\r\n this.podcastContentTypeSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: false,\r\n virtualized: false,\r\n isClearable: false,\r\n /* eslint-disable */\r\n isOptionDisabled: ({ value }) =>\r\n value == podcastContentType.torahAnytime && isNil(this.torahAnytimeSettings),\r\n /* eslint-enable */\r\n actions: {\r\n find: () => {\r\n return this.podcastContentTypes;\r\n },\r\n },\r\n },\r\n this.form.$(\"podcastContentType\")\r\n );\r\n\r\n if (this.isEdit) {\r\n this.reaction(\r\n () => this.form.$(\"isTurnedOnByDefault\").value,\r\n (isTurnedOnByDefault) => {\r\n if (isTurnedOnByDefault !== this.item.isTurnedOnByDefault) {\r\n runInAction(() => {\r\n this.overrideRadioUsersSettingsIsVisible = true;\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.overrideAppUsersSettingsIsVisible = false;\r\n this.form.$(\"overrideRadioUsersSettings\").value = false;\r\n });\r\n }\r\n }\r\n );\r\n this.reaction(\r\n () => this.form.$(\"isTurnedOnByDefaultInApp\").value,\r\n (isTurnedOnByDefault) => {\r\n if (isTurnedOnByDefault !== this.item.isTurnedOnByDefaultInApp) {\r\n runInAction(() => {\r\n this.overrideAppUsersSettingsIsVisible = true;\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.overrideAppUsersSettingsIsVisible = false;\r\n this.form.$(\"overrideAppUsersSettings\").value = false;\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n this.reaction(\r\n () => this.form.$(\"isPremium\").value,\r\n (isPremium) => {\r\n if (!isPremium) {\r\n this.form.$(\"premiumInfo\").set(null);\r\n }\r\n if (isPremium) {\r\n this.form.$(\"producerId\").addIsRequiredRule();\r\n } else {\r\n this.form.$(\"producerId\").removeIsRequiredRule();\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.form.$(\"podcastContentType\").value,\r\n (type) => {\r\n // Skip reaction on the first run\r\n /* eslint-disable */\r\n if (!this.skipPodcastContentTypeReaction) {\r\n if (type == podcastContentType.default) {\r\n this.form.$(\"podcastFeed.feedUrl\").enable();\r\n this.form.$(\"podcastFeed.feedUrl\").addIsRequiredRule();\r\n this.form.$(\"podcastFeed.feedUrl\").value = null;\r\n\r\n this.form.$(\"podcastFeed.episodeSortTypeId\").addIsRequiredRule();\r\n } else if (type == podcastContentType.torahAnytime) {\r\n this.form.$(\"podcastFeed.feedUrl\").removeIsRequiredRule();\r\n this.form.$(\"podcastFeed.feedUrl\").value = this.torahAnytimeSettings.apiUrl;\r\n\r\n this.form.$(\"podcastFeed.episodeLimit\").value = null;\r\n\r\n this.form.$(\"podcastFeed.episodeSortTypeId\").removeIsRequiredRule();\r\n this.form.$(\"isPremium\").value = false;\r\n this.form.$(\"podcastFeed.hlsEnabled\").value = false;\r\n }\r\n }\r\n /* eslint-enable */\r\n this.skipPodcastContentTypeReaction = false;\r\n }\r\n );\r\n\r\n this.registerRouteExitBlocking();\r\n }\r\n\r\n async loadLookups() {\r\n await super.loadLookups();\r\n await this.fetchTorahAnytimeSettings();\r\n }\r\n\r\n resetForm() {\r\n this.form.set({\r\n isActive: true,\r\n isVisible: true,\r\n podcastFeed: {\r\n episodeSortTypeId: this.episodeSortTypes[0].id,\r\n recentlyUpdatedVisibility: true,\r\n },\r\n podcastContentType: podcastContentType.default,\r\n });\r\n this.podcastContentTypeSelectStore.setSelectedItem(\r\n find(this.podcastContentTypes, (type) => type.id === podcastContentType.default)\r\n );\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getPodcast(id);\r\n }\r\n\r\n create(data) {\r\n this._onAfterSave(data);\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n return this.routeStore.createPodcast(data);\r\n }\r\n\r\n _onAfterSave(data) {\r\n data.podcastVolumes = map(this.podcastVolumes, (podcastVolume, index) => {\r\n return {\r\n ...omit(podcastVolume, \"FORM_STATUS\"),\r\n sortOrder: index + 1,\r\n };\r\n });\r\n if (!data.isPremium && !isEmpty(data.premiumInfo)) {\r\n data.premiumInfo = null;\r\n }\r\n }\r\n\r\n update(data) {\r\n this._onAfterSave(data);\r\n if (this.coverImageUploadViewStore.hasChanged) {\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n } else {\r\n data.coverImageId = this.item.coverImageId;\r\n }\r\n return this.routeStore.updatePodcast(data);\r\n }\r\n\r\n setItem(item) {\r\n this.podcastVolumes = item.podcastVolumes;\r\n item.podcastVolumes = null;\r\n super.setItem(item);\r\n this.genreSelectStore.setSelectedItem(item.genres);\r\n this.locationSelectStore.setSelectedItem(item.location);\r\n this.languageSelectStore.setSelectedItem(item.language);\r\n this.producerSelectStore.setSelectedItem(item.producer);\r\n this.podcastContentTypeSelectStore.setSelectedItem(\r\n find(this.podcastContentTypes, (type) => type.id === item.podcastContentType)\r\n );\r\n runInAction(() => {\r\n this.premiumInfoIsVisible = item.isPremium;\r\n });\r\n this.form.$changed = false;\r\n this.form.$(\"languageId\").$changed = false;\r\n this.form.$(\"locationId\").$changed = false;\r\n this.form.$(\"genreIds\").$changed = false;\r\n this.form.$(\"producerId\").$changed = false;\r\n this.form.$(\"podcastContentType\").$changed = false;\r\n }\r\n\r\n @action.bound\r\n addPodcastVolume(item) {\r\n item.id = UUID.create();\r\n item.FORM_STATUS = PODCAST_FORM_STATUS.UPDATED;\r\n this.podcastVolumes.push(item);\r\n this.podcastVolumesChanged = true;\r\n }\r\n\r\n @action.bound\r\n deletePodcastVolume(podcastVolumeId) {\r\n this.podcastVolumes = filter(this.podcastVolumes, (podcastVolume) => podcastVolume.id !== podcastVolumeId);\r\n this.podcastVolumesChanged = true;\r\n }\r\n\r\n @action.bound\r\n updatePodcastVolume(id, item) {\r\n const index = findIndex(this.podcastVolumes, (podcastVolume) => podcastVolume.id === id);\r\n item.FORM_STATUS = PODCAST_FORM_STATUS.UPDATED;\r\n this.podcastVolumes[index] = merge(this.podcastVolumes[index], item);\r\n this.podcastVolumesChanged = true;\r\n }\r\n\r\n updateForm(values) {\r\n this.form.set({\r\n ...values,\r\n genreIds: values.genres ? map(values.genres, (genre) => genre.id) : null,\r\n });\r\n }\r\n\r\n @action.bound\r\n markPodcastVolumeAsChanged(podcastVolumeId) {\r\n const index = findIndex(this.podcastVolumes, (podcastVolume) => podcastVolume.id === podcastVolumeId);\r\n if (index > -1) {\r\n this.podcastVolumes[index].FORM_STATUS = PODCAST_FORM_STATUS.CHANGED;\r\n }\r\n this.podcastVolumesChanged = true;\r\n }\r\n\r\n @action.bound\r\n markPodcastVolumeAsUpdated(podcastVolumeId) {\r\n const index = findIndex(this.podcastVolumes, (podcastVolume) => podcastVolume.id === podcastVolumeId);\r\n if (index > -1) {\r\n this.podcastVolumes[index].FORM_STATUS = PODCAST_FORM_STATUS.UPDATED;\r\n }\r\n this.podcastVolumesChanged = true;\r\n }\r\n\r\n async fetchTorahAnytimeSettings() {\r\n try {\r\n const data = await this.routeStore.getTorahAnytimeSetting();\r\n this.setTorahAnytimeSettings(data);\r\n if (!data) {\r\n this.rootStore.notificationStore.warning(\"TorahAnytime disabled. TorahAnytime settings are missing.\");\r\n }\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\"Unable to load TorahAnytime settings.\", err);\r\n }\r\n }\r\n\r\n @action.bound\r\n setTorahAnytimeSettings(value) {\r\n this.torahAnytimeSettings = value;\r\n }\r\n\r\n @action.bound\r\n reorderPodcastVolumes(result) {\r\n const { destination, source } = result;\r\n if (!destination) {\r\n return;\r\n }\r\n\r\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\r\n return;\r\n }\r\n\r\n const newPodcastVolumes = Array.from(toJS(this.podcastVolumes));\r\n const podcastVolume = newPodcastVolumes.splice(source.index, 1)[0];\r\n podcastVolume.FORM_STATUS = PODCAST_FORM_STATUS.UPDATED;\r\n newPodcastVolumes.splice(destination.index, 0, podcastVolume);\r\n\r\n this.podcastVolumes = newPodcastVolumes;\r\n this.subPodcastsChanged = true;\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 onCreateSuccess(result) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n super.onCreateSuccess(result);\r\n }\r\n\r\n onUpdateSuccess(result) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n super.onUpdateSuccess(result);\r\n }\r\n\r\n onCreateError(err) {\r\n if (err.data.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n const podcast = err.data.response;\r\n this.rootStore.notificationStore.error(\r\n \"Podcast created, but unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n this.redirectOnCreateSuccess(podcast);\r\n } else {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to create podcast.\", err);\r\n }\r\n }\r\n\r\n onUpdateError(err) {\r\n if (err.data.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n this.rootStore.notificationStore.error(\r\n \"Podcast updated, but an unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n this.redirectOnUpdateSuccess();\r\n } else {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to update podcast.\", err);\r\n }\r\n }\r\n}\r\n\r\nexport default PodcastEditViewStore;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { MrbFieldSelectStore } from \"mrb/components/select\";\r\nimport { PodcastGroupItemEditForm } from \"administration/podcast/forms\";\r\nimport { PodcastCoverImageUploadViewStore } from \"administration/podcast/stores\";\r\nimport { map } from \"lodash\";\r\n\r\nclass AddPodcastGroupItemViewStore extends MrbBaseEditViewStore {\r\n @computed get episodeSortTypeOptions() {\r\n return this.podcastGroupEditViewStore.episodeSortTypeOptions;\r\n }\r\n\r\n @computed get isPremiumDisabled() {\r\n return this.podcastGroupEditViewStore.form.$(\"isPremium\").value;\r\n }\r\n\r\n constructor(rootStore, { podcastGroupEditViewStore }) {\r\n super(rootStore, {\r\n name: \"podcast-group-item\",\r\n FormClass: PodcastGroupItemEditForm,\r\n redirectOnCreateSuccess: false,\r\n });\r\n this.podcastGroupEditViewStore = podcastGroupEditViewStore;\r\n this.routeStore = this.podcastGroupEditViewStore.routeStore;\r\n makeObservable(this);\r\n\r\n this.coverImageUploadViewStore = new PodcastCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.podcastGroupEditViewStore.routeStore,\r\n });\r\n\r\n this.reaction(\r\n () => this.podcastGroupEditViewStore.form.$(\"isPremium\").value,\r\n (isPremium) => {\r\n this.form.$(\"isPremium\").set(isPremium);\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.form.$(\"isPremium\").value,\r\n (isPremium) => {\r\n if (isPremium) {\r\n this.form.$(\"producerId\").addIsRequiredRule();\r\n } else {\r\n this.form.$(\"producerId\").removeIsRequiredRule();\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.podcastGroupEditViewStore.form.$(\"isVisibleInApp\").value,\r\n (isVisibleInApp) => {\r\n this.form.$(\"isVisibleInApp\").onChange(isVisibleInApp);\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.podcastGroupEditViewStore.form.$(\"isVisibleInEmbeddedApp\").value,\r\n (isVisibleInEmbeddedApp) => {\r\n this.form.$(\"isVisibleInEmbeddedApp\").onChange(isVisibleInEmbeddedApp);\r\n }\r\n );\r\n\r\n this.genreSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n isMulti: true,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findGenres(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createGenre({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"genreIds\")\r\n );\r\n\r\n this.locationSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findLocations(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createLocation({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"locationId\")\r\n );\r\n\r\n this.languageSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findLanguages(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createLanguage({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"languageId\")\r\n );\r\n\r\n this.producerSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findProducers(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createProducer({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"producerId\")\r\n );\r\n }\r\n\r\n create(data) {\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n const selectedLocationOption = this.locationSelectStore.selectedOption;\r\n if (selectedLocationOption) {\r\n data.location = selectedLocationOption.item;\r\n }\r\n const selectedLanguageOption = this.languageSelectStore.selectedOption;\r\n if (selectedLanguageOption) {\r\n data.language = selectedLanguageOption.item;\r\n }\r\n const selectedGenres = this.genreSelectStore.selectedOption;\r\n if (selectedGenres) {\r\n data.genres = map(selectedGenres, (genreOption) => genreOption.item);\r\n }\r\n const selectedProducerOption = this.producerSelectStore.selectedOption;\r\n if (selectedProducerOption) {\r\n data.producer = selectedProducerOption.item;\r\n }\r\n this.podcastGroupEditViewStore.addSubPodcast(data);\r\n return Promise.resolve();\r\n }\r\n\r\n onCreateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to update resource.\", err);\r\n }\r\n\r\n resetForm() {\r\n this.form.clear();\r\n this.coverImageUploadViewStore.remove();\r\n const isPodcastGroupPremium = this.podcastGroupEditViewStore.form.$(\"isPremium\").value;\r\n const isPodcastGroupVisibleInApp = this.podcastGroupEditViewStore.form.$(\"isVisibleInApp\").value;\r\n const isPodcastGroupVisibleInNakiTouch = this.podcastGroupEditViewStore.form.$(\"isVisibleInEmbeddedApp\").value;\r\n this.form.set({\r\n isActive: true,\r\n isVisibleInApp: isPodcastGroupVisibleInApp,\r\n isVisibleInEmbeddedApp: isPodcastGroupVisibleInNakiTouch,\r\n podcastFeed: {\r\n episodeSortTypeId: this.episodeSortTypeOptions[0].value,\r\n recentlyUpdatedVisibility: true,\r\n },\r\n isPremium: isPodcastGroupPremium,\r\n });\r\n this.genreSelectStore.setSelectedItem(null);\r\n this.locationSelectStore.setSelectedItem(null);\r\n this.languageSelectStore.setSelectedItem(null);\r\n this.producerSelectStore.setSelectedItem(null);\r\n }\r\n\r\n onCreateSuccess() {\r\n this.resetForm();\r\n }\r\n}\r\n\r\nexport default AddPodcastGroupItemViewStore;\r\n","import React from \"react\";\r\nimport { action, computed, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { MrbFieldSelectStore } from \"mrb/components/select\";\r\nimport { PodcastGroupItemEditForm } from \"administration/podcast/forms\";\r\nimport { PodcastCoverImageUploadViewStore } from \"administration/podcast/stores\";\r\nimport { find, findIndex, isNil, map } from \"lodash\";\r\nclass PodcastGroupEditSubPodcastViewStore extends MrbBaseEditViewStore {\r\n @observable overrideRadioUsersSettingsIsVisible = false;\r\n @observable overrideAppUsersSettingsIsVisible = false;\r\n @observable isCollapsed = false;\r\n panelRef = React.createRef();\r\n\r\n @computed get podcast() {\r\n return find(this.podcastGroupEditViewStore.subPodcasts, (subPodcast) => subPodcast.id === this.podcastId);\r\n }\r\n\r\n @computed get isNewlyAdded() {\r\n return isNil(this.podcast.dateCreated);\r\n }\r\n\r\n @computed get podcastIndex() {\r\n return (\r\n findIndex(this.podcastGroupEditViewStore.subPodcasts, (subPodcast) => subPodcast.id === this.podcastId) + 1\r\n );\r\n }\r\n\r\n @computed get episodeSortTypeOptions() {\r\n return this.podcastGroupEditViewStore.episodeSortTypeOptions;\r\n }\r\n\r\n @computed get disabledForShufflingWeight() {\r\n return this.podcastGroupEditViewStore.disabledForShufflingWeight;\r\n }\r\n\r\n @computed get isPremiumDisabled() {\r\n return this.podcastGroupEditViewStore.form.$(\"isPremium\").value;\r\n }\r\n\r\n constructor(rootStore, { podcastGroupEditViewStore, podcastId }) {\r\n super(rootStore, {\r\n name: \"podcast-group-sub-podcast\",\r\n FormClass: PodcastGroupItemEditForm,\r\n redirectOnCreateSuccess: false,\r\n });\r\n makeObservable(this);\r\n this.podcastId = podcastId;\r\n this.podcastGroupEditViewStore = podcastGroupEditViewStore;\r\n this.routeStore = this.podcastGroupEditViewStore.routeStore;\r\n\r\n this.coverImageUploadViewStore = new PodcastCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n width: 200,\r\n height: 200,\r\n });\r\n\r\n this.genreSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n isMulti: true,\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findGenres(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createGenre({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"genreIds\")\r\n );\r\n\r\n this.locationSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findLocations(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createLocation({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"locationId\")\r\n );\r\n\r\n this.languageSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findLanguages(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createLanguage({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"languageId\")\r\n );\r\n\r\n this.producerSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findProducers(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createProducer({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"producerId\")\r\n );\r\n\r\n if (!this.isNewlyAdded) {\r\n this.reaction(\r\n () => this.form.$(\"isTurnedOnByDefault\").value,\r\n (isTurnedOnByDefault) => {\r\n if (isTurnedOnByDefault !== this.podcast.isTurnedOnByDefault) {\r\n runInAction(() => {\r\n this.overrideRadioUsersSettingsIsVisible = true;\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.overrideAppUsersSettingsIsVisible = false;\r\n this.form.$(\"overrideRadioUsersSettings\").value = false;\r\n });\r\n }\r\n }\r\n );\r\n this.reaction(\r\n () => this.form.$(\"isTurnedOnByDefaultInApp\").value,\r\n (isTurnedOnByDefault) => {\r\n if (isTurnedOnByDefault !== this.podcast.isTurnedOnByDefaultInApp) {\r\n runInAction(() => {\r\n this.overrideAppUsersSettingsIsVisible = true;\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.overrideAppUsersSettingsIsVisible = false;\r\n this.form.$(\"overrideAppUsersSettings\").value = false;\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n this.setForm();\r\n\r\n this.reaction(\r\n () => this.isCollapsed,\r\n (isCollapsed) => {\r\n if (isCollapsed) {\r\n this.form.$(\"title\").focus();\r\n if (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 this.reaction(\r\n () => this.form.changed,\r\n (isChanged) => {\r\n if (isChanged) {\r\n this.podcastGroupEditViewStore.markSubPodcastAsChanged(this.podcastId);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.coverImageUploadViewStore.hasChanged,\r\n (isChanged) => {\r\n if (isChanged) {\r\n this.podcastGroupEditViewStore.markSubPodcastAsChanged(this.podcastId);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.podcastGroupEditViewStore.form.$(\"isPremium\").value,\r\n (isPodcastGroupPremium) => {\r\n if (isPodcastGroupPremium) {\r\n this.form.$(\"isPremium\").onChange(isPodcastGroupPremium);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.podcastGroupEditViewStore.form.$(\"isVisibleInApp\").value,\r\n (isVisibleInApp) => {\r\n this.form.$(\"isVisibleInApp\").onChange(isVisibleInApp);\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.podcastGroupEditViewStore.form.$(\"isVisibleInEmbeddedApp\").value,\r\n (isVisibleInEmbeddedApp) => {\r\n this.form.$(\"isVisibleInEmbeddedApp\").onChange(isVisibleInEmbeddedApp);\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.form.$(\"isPremium\").value,\r\n (isPremium) => {\r\n if (isPremium) {\r\n this.form.$(\"producerId\").addIsRequiredRule();\r\n } else {\r\n this.form.$(\"producerId\").removeIsRequiredRule();\r\n }\r\n }\r\n );\r\n\r\n if (this.form.$(\"isPremium\").value === true) {\r\n this.form.$(\"producerId\").addIsRequiredRule();\r\n }\r\n }\r\n\r\n @action.bound\r\n setForm() {\r\n this.form.set({\r\n ...this.podcast,\r\n genreIds: this.podcast.genres ? map(this.podcast.genres, (genre) => genre.id) : null,\r\n producerId: this.podcast.producerId,\r\n });\r\n this.genreSelectStore.setSelectedItem(this.podcast.genres || null);\r\n this.locationSelectStore.setSelectedItem(this.podcast.location);\r\n this.languageSelectStore.setSelectedItem(this.podcast.language);\r\n this.producerSelectStore.setSelectedItem(this.podcast.producer);\r\n if (this.podcast.coverImageId) {\r\n if (this.isNewlyAdded) {\r\n this.coverImageUploadViewStore.setUploadedFileId(this.podcast.coverImageId);\r\n } else {\r\n this.coverImageUploadViewStore.setImageUrl(\r\n this.routeStore.getPodcastCoverImageUrl(this.podcast.coverImageId)\r\n );\r\n }\r\n } else {\r\n this.coverImageUploadViewStore.setUploadedFileId(null);\r\n }\r\n }\r\n\r\n resetForm() {\r\n this.form.clear();\r\n this.setForm();\r\n this.podcastGroupEditViewStore.markSubPodcastAsUpdated(this.podcast.id);\r\n }\r\n\r\n @action.bound\r\n onInit() {\r\n const subPodcastId = this.rootStore.routerStore.routerState.queryParams.subPodcastId;\r\n if (subPodcastId && this.podcast.id === subPodcastId) {\r\n this.isCollapsed = true;\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n create(data) {\r\n if (this.coverImageUploadViewStore.hasChanged) {\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n } else {\r\n data.coverImageId = this.podcast.coverImageId;\r\n }\r\n const selectedLocationOption = this.locationSelectStore.selectedOption;\r\n if (selectedLocationOption) {\r\n data.location = selectedLocationOption.item;\r\n }\r\n const selectedLanguageOption = this.languageSelectStore.selectedOption;\r\n if (selectedLanguageOption) {\r\n data.language = selectedLanguageOption.item;\r\n }\r\n const selectedGenres = this.genreSelectStore.selectedOption;\r\n if (selectedGenres) {\r\n data.genres = map(selectedGenres, (genreOption) => genreOption.item);\r\n }\r\n this.podcastGroupEditViewStore.updateSubPodcast(this.podcastId, data);\r\n this.form.$changed = false;\r\n this.form.each((field) => (field.$changed = false));\r\n }\r\n\r\n onCreateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to update resource.\", err);\r\n }\r\n\r\n setPanelRef = (ref) => {\r\n this.panelRef = ref;\r\n };\r\n\r\n @action.bound\r\n toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n deleteSubPodcast = (event) => {\r\n // Prevent collapsing the podcast panel when a user clicks on the delete button.\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.podcastGroupEditViewStore.deleteSubPodcast(this.podcastId);\r\n };\r\n}\r\n\r\nexport default PodcastGroupEditSubPodcastViewStore;\r\n","import React from \"react\";\r\nimport { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { PodcastVolumeEditForm } from \"administration/podcast/forms\";\r\nimport { PodcastCoverImageUploadViewStore } from \"administration/podcast/stores\";\r\nimport { find, findIndex, isNil } from \"lodash\";\r\n\r\nclass PodcastEditPodcastVolumeViewStore extends MrbBaseEditViewStore {\r\n @observable overrideUsersSettingsIsVisible = false;\r\n @observable isCollapsed = false;\r\n panelRef = React.createRef();\r\n\r\n @computed get podcastVolume() {\r\n return find(this.podcastEditViewStore.podcastVolumes, (podcastVolume) => podcastVolume.id === this.podcastId);\r\n }\r\n\r\n @computed get podcastVolumeIndex() {\r\n return (\r\n findIndex(\r\n this.podcastEditViewStore.podcastVolumes,\r\n (podcastVolume) => podcastVolume.id === this.podcastId\r\n ) + 1\r\n );\r\n }\r\n\r\n @computed get isNewlyAdded() {\r\n return isNil(this.podcastVolume.dateCreated);\r\n }\r\n\r\n constructor(rootStore, { podcastEditViewStore, podcastId }) {\r\n super(rootStore, {\r\n name: \"podcast-podcast-volume\",\r\n FormClass: PodcastVolumeEditForm,\r\n redirectOnCreateSuccess: false,\r\n });\r\n makeObservable(this);\r\n this.podcastId = podcastId;\r\n this.podcastEditViewStore = podcastEditViewStore;\r\n this.routeStore = this.podcastEditViewStore.routeStore;\r\n\r\n this.coverImageUploadViewStore = new PodcastCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n width: 200,\r\n height: 200,\r\n });\r\n\r\n this.setForm();\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 }, 500);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.form.changed,\r\n (isChanged) => {\r\n if (isChanged) {\r\n this.podcastEditViewStore.markPodcastVolumeAsChanged(this.podcastId);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.coverImageUploadViewStore.hasChanged,\r\n (isChanged) => {\r\n if (isChanged) {\r\n this.podcastEditViewStore.markPodcastVolumeAsChanged(this.podcastId);\r\n }\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n setForm() {\r\n this.form.set({\r\n ...this.podcastVolume,\r\n });\r\n if (this.podcastVolume.podcastFileEntryId) {\r\n if (this.isNewlyAdded) {\r\n this.coverImageUploadViewStore.setUploadedFileId(this.podcastVolume.podcastFileEntryId);\r\n } else {\r\n this.coverImageUploadViewStore.setImageUrl(\r\n this.routeStore.getPodcastCoverImageUrl(this.podcastVolume.podcastFileEntryId)\r\n );\r\n }\r\n } else {\r\n this.coverImageUploadViewStore.setUploadedFileId(null);\r\n }\r\n }\r\n\r\n resetForm() {\r\n this.form.clear();\r\n this.setForm();\r\n this.podcastEditViewStore.markPodcastVolumeAsUpdated(this.podcastVolume.id);\r\n }\r\n\r\n @action.bound\r\n onInit() {\r\n const podcastVolumeId = this.rootStore.routerStore.routerState.queryParams.podcastVolumeId;\r\n if (podcastVolumeId && this.podcastVolume.id === podcastVolumeId) {\r\n this.isCollapsed = true;\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n create(data) {\r\n if (this.coverImageUploadViewStore.hasChanged) {\r\n data.podcastFileEntryId = this.coverImageUploadViewStore.uploadedFileId;\r\n } else {\r\n data.podcastFileEntryId = this.podcastVolume.podcastFileEntryId;\r\n }\r\n this.podcastEditViewStore.updatePodcastVolume(this.podcastId, data);\r\n this.form.$changed = false;\r\n this.form.each((field) => (field.$changed = false));\r\n }\r\n\r\n onCreateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to update resource.\", err);\r\n }\r\n\r\n setPanelRef = (ref) => {\r\n this.panelRef = ref;\r\n };\r\n\r\n @action.bound\r\n toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n deletePodcastVolume = (event) => {\r\n // Prevent collapsing the podcast volume panel when a user clicks on the delete button.\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.podcastEditViewStore.deletePodcastVolume(this.podcastId);\r\n };\r\n}\r\n\r\nexport default PodcastEditPodcastVolumeViewStore;\r\n","import { makeObservable } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { PodcastVolumeEditForm } from \"administration/podcast/forms\";\r\nimport { PodcastCoverImageUploadViewStore } from \"administration/podcast/stores\";\r\n\r\nclass AddPodcastVolumeItemViewStore extends MrbBaseEditViewStore {\r\n\r\n constructor(rootStore, { podcastEditViewStore }) {\r\n super(rootStore, {\r\n name: \"podcast-volume-item\",\r\n FormClass: PodcastVolumeEditForm,\r\n redirectOnCreateSuccess: false,\r\n });\r\n this.podcastEditViewStore = podcastEditViewStore;\r\n this.routeStore = this.podcastEditViewStore.routeStore;\r\n makeObservable(this);\r\n\r\n this.coverImageUploadViewStore = new PodcastCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.podcastEditViewStore.routeStore,\r\n });\r\n }\r\n\r\n create(data) {\r\n data.podcastFileEntryId = this.coverImageUploadViewStore.uploadedFileId;\r\n this.podcastEditViewStore.addPodcastVolume(data);\r\n return Promise.resolve();\r\n }\r\n\r\n onCreateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to update resource.\", err);\r\n }\r\n\r\n resetForm() {\r\n this.form.clear();\r\n this.coverImageUploadViewStore.remove();\r\n this.form.set({\r\n isActive: true\r\n });\r\n }\r\n\r\n onCreateSuccess() {\r\n this.resetForm();\r\n }\r\n}\r\n\r\nexport default AddPodcastVolumeItemViewStore;\r\n","import { BasePodcastEditRouteStore } from \"administration/podcast/stores\";\r\n\r\nclass PodcastGroupEditRouteStore extends BasePodcastEditRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n\r\n async createPodcastGroup(resource) {\r\n const response = await this.service.createGroup(resource);\r\n return response.data;\r\n }\r\n\r\n async getPodcastGroup(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"subPodcasts,subPodcasts.podcastFeed,subPodcasts.genres,subPodcasts.location,subPodcasts.language,subPodcasts.producer\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async updatePodcastGroup(resource) {\r\n const response = await this.service.updateGroup(resource);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default PodcastGroupEditRouteStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { PodcastEpisodeEditTitleForm } from \"administration/podcast/forms\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { makeObservable, observable, action } from \"mobx\";\r\n\r\nclass PodcastEpisodeEditTitleViewStore extends MrbBaseViewStore {\r\n @observable isFormChanged = false;\r\n\r\n constructor(rootStore, { podcastEpisodeListViewStore, id, title }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.podcastEpisodeListViewStore = podcastEpisodeListViewStore;\r\n this.routeStore = podcastEpisodeListViewStore.routeStore;\r\n this.id = id;\r\n this.title = title;\r\n\r\n this.form = new PodcastEpisodeEditTitleForm({\r\n onSuccess: (form) => {\r\n const item = form.values();\r\n return this.updateResource(item);\r\n },\r\n onInit: (form) => {\r\n form.set({ title: title });\r\n form.$(\"title\").focus();\r\n },\r\n });\r\n\r\n this.registerRouteExitBlocking();\r\n this.reaction(\r\n () => this.form.changed,\r\n (isChanged) => {\r\n if (isChanged) {\r\n this.isFormChanged = isChanged;\r\n }\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n async updateResource(data) {\r\n this.form.setFieldsDisabled(true);\r\n try {\r\n await this.update(this.id, data);\r\n this.form.setFieldsDisabled(false);\r\n this.onUpdateSuccess(data.title);\r\n } catch (err) {\r\n this.form.setFieldsDisabled(false);\r\n this.onUpdateError(err);\r\n }\r\n }\r\n\r\n async update(id, resource) {\r\n this.isFormChanged = false;\r\n await this.routeStore.editPodcastEpisodeTitle(id, resource);\r\n }\r\n\r\n onUpdateError(err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.EPISODES.ERROR.UPDATE_PODCAST_EPISODE_TITLE_GENERIC\")\r\n );\r\n }\r\n\r\n @action.bound\r\n onUpdateSuccess(newPodcastEpisodeTitle) {\r\n this.podcastEpisodeListViewStore.updatePodcastEpisodeTitle(this.id, newPodcastEpisodeTitle);\r\n this.podcastEpisodeListViewStore.editPodcastEpisodeTitleModal.close();\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 destroy() {\r\n super.destroy();\r\n this.form.destroy();\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeEditTitleViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PodcastService } from \"common/services\";\r\n\r\nclass PodcastListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PodcastService);\r\n }\r\n\r\n async findPodcasts(params) {\r\n const response = await this.service.find(params);\r\n return response.data;\r\n }\r\n\r\n async deletePodcast(resource) {\r\n const response = await this.service.delete(resource);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default PodcastListRouteStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { podcastType, podcastContentType } from \"common/constants\";\r\nimport { mrbDefaultFormats } from \"mrb/common/formatting\";\r\n\r\nclass PodcastListViewStore extends MrbBaseListViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n layoutActions: {\r\n createPodcastGroup: {\r\n onClick: () => this.rootStore.routerStore.goTo(\"master.administration.podcast.create-group\"),\r\n authorization: null,\r\n label: \"ADMINISTRATION.PODCAST.LIST.BUTTONS.ADD_PODCAST_GROUP\",\r\n className: \"c-btn c-btn--base c-btn--primary\",\r\n },\r\n create: {\r\n onClick: () => this.rootStore.routerStore.goTo(\"master.administration.podcast.create\"),\r\n authorization: null,\r\n label: \"ADMINISTRATION.PODCAST.LIST.BUTTONS.ADD_PODCAST\",\r\n },\r\n },\r\n queryConfig: {\r\n orderBy: \"title\",\r\n orderDirection: \"asc\",\r\n },\r\n });\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n onRowClick: (node) => {\r\n if (node.data.podcastType === podcastType.podcast) {\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.preview\", { id: node.data.id });\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.preview-group\", {\r\n id: node.data.id,\r\n });\r\n }\r\n },\r\n columns: [\r\n {\r\n key: \"title\",\r\n title: \"ADMINISTRATION.PODCAST.LIST.COLUMNS.TITLE\",\r\n sortable: true,\r\n },\r\n {\r\n key: \"isActive\",\r\n title: \"ADMINISTRATION.PODCAST.LIST.COLUMNS.STATUS\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Active\",\r\n falseLabel: \"Inactive\",\r\n },\r\n },\r\n {\r\n key: \"isPremium\",\r\n title: \"ADMINISTRATION.PODCAST.LIST.COLUMNS.PREMIUM\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Premium\",\r\n falseLabel: \"Free\",\r\n },\r\n },\r\n {\r\n key: \"isTurnedOnByDefault\",\r\n title: \"ADMINISTRATION.PODCAST.LIST.COLUMNS.DEFAULT\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Enabled\",\r\n falseLabel: \"Disabled\",\r\n },\r\n },\r\n {\r\n key: \"isVisible\",\r\n title: \"ADMINISTRATION.PODCAST.LIST.COLUMNS.VISIBLE_ON_PORTAL\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Visible\",\r\n falseLabel: \"Hidden\",\r\n },\r\n },\r\n {\r\n key: \"podcastType\",\r\n title: \"ADMINISTRATION.PODCAST.LIST.COLUMNS.PODCAST_TYPE\",\r\n format: (type) => (podcastType.podcast === type ? \"Podcast\" : \"Podcast Group\"),\r\n },\r\n {\r\n key: \"podcastContentType\",\r\n title: \"ADMINISTRATION.PODCAST.LIST.COLUMNS.PODCAST_CONTENT_TYPE\",\r\n format: (type) => (podcastContentType.default === type ? \"Default\" : \"TorahAnytime\"),\r\n },\r\n ],\r\n actions: {\r\n edit: {\r\n onClick: (item) => {\r\n if (item.podcastType === podcastType.podcast) {\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.edit\", { id: item.id });\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.edit-group\", {\r\n id: item.id,\r\n });\r\n }\r\n },\r\n label: \"ADMINISTRATION.PODCAST.LIST.ACTIONS.EDIT\",\r\n authorization: null,\r\n buttonProps: {\r\n className: \"c-btn c-btn--sml c-btn--ghost u-mar--right--tny\",\r\n },\r\n },\r\n delete: {\r\n onClick: (item) =>\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete podcast?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deletePodcast(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 podcast.\",\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 label: \"ADMINISTRATION.PODCAST.LIST.ACTIONS.DELETE\",\r\n buttonProps: {\r\n className: \"c-btn c-btn--sml c-btn--ghost\",\r\n },\r\n },\r\n },\r\n })\r\n );\r\n }\r\n\r\n find(params) {\r\n return this.routeStore.findPodcasts(params);\r\n }\r\n}\r\n\r\nexport default PodcastListViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PodcastService, RssSyncService, PodcastFileStreamService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass PodcastEpisodeListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.podcastService = this.rootStore.createApplicationService(PodcastService);\r\n this.rssSyncService = this.rootStore.createApplicationService(RssSyncService);\r\n this.podcastFileStreamService = this.rootStore.createApplicationService(PodcastFileStreamService);\r\n }\r\n\r\n async getPodcast(id) {\r\n const response = await this.podcastService.get(id, { embed: \"parentPodcast,podcastFeed\" });\r\n return response.data;\r\n }\r\n\r\n async getEpisodes(podcastId, params) {\r\n const response = await this.podcastService.getAllEpisodes(podcastId, params);\r\n return response.data;\r\n }\r\n\r\n async deleteEpisode(id) {\r\n const response = await this.podcastService.deletePodcastEpisode(id);\r\n return response.data;\r\n }\r\n\r\n async hlsEncodePodcastEpisodes(options) {\r\n await this.rssSyncService.hlsEncodePodcastEpisodes(options);\r\n }\r\n\r\n async hlsEncodePodcasts(options) {\r\n await this.rssSyncService.hlsEncodePodcasts(options);\r\n }\r\n\r\n async syncPodcasts(data) {\r\n await this.rssSyncService.syncPodcasts(data);\r\n }\r\n\r\n async editPodcastEpisodeTitle(id, resource) {\r\n await this.podcastService.editPodcastEpisodeTitle(id, resource);\r\n }\r\n\r\n createPodcastEpisodeAudioFileUrl(podcastEpisodeId) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.podcastFileStreamService.routeService.getPodcastEpisodeAudioFile(podcastEpisodeId)\r\n );\r\n }\r\n\r\n async syncPodcastsBackground(data) {\r\n await this.rssSyncService.syncPodcastsBackground(data);\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeListRouteStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBasePreviewViewStore } from \"mrb/core\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { forEach, find, some, isNil, filter, includes } from \"lodash\";\r\nimport { DownloadRequest } from \"common/models\";\r\n\r\nclass PodcastEpisodeListFilter {\r\n @observable search = \"\";\r\n @observable hlsAvailable = null;\r\n @observable mp3Available = null;\r\n\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n setSearch(search) {\r\n this.search = search;\r\n }\r\n\r\n @action.bound\r\n setHlsAvailable(value) {\r\n this.hlsAvailable = value;\r\n }\r\n\r\n @action.bound\r\n setMp3Available(value) {\r\n this.mp3Available = value;\r\n }\r\n}\r\n\r\nclass PodcastEpisodeListViewStore extends MrbBasePreviewViewStore {\r\n @observable episodes = [];\r\n @observable.ref filter = new PodcastEpisodeListFilter();\r\n\r\n @computed get filteredEpisodes() {\r\n if (this.filter.search === \"\" && this.filter.hlsAvailable === null && this.filter.mp3Available === null) {\r\n return this.episodes;\r\n }\r\n return filter(this.episodes, (episode) => {\r\n if (\r\n this.filter.hlsAvailable !== null &&\r\n !(\r\n (this.filter.hlsAvailable && episode.hlsStreamUrl) ||\r\n (!this.filter.hlsAvailable && !episode.hlsStreamUrl)\r\n )\r\n ) {\r\n return false;\r\n }\r\n if (\r\n this.filter.mp3Available !== null &&\r\n !(\r\n (this.filter.mp3Available && episode.audioStreamUrl) ||\r\n (!this.filter.mp3Available && !episode.audioStreamUrl)\r\n )\r\n ) {\r\n return false;\r\n }\r\n if (\r\n this.filter.search !== \"\" &&\r\n this.filter.search != null &&\r\n !includes(episode.title.toLowerCase(), this.filter.search.toLowerCase())\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n @computed get isSyncing() {\r\n if (this.episodes.length === 0) {\r\n return false;\r\n }\r\n return some(this.episodes, (episode) => !isNil(episode.syncTask));\r\n }\r\n\r\n @computed get coverImageUrl() {\r\n if (this.item && this.item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createPodcastCoverImageUrl(this.item.coverImageId, 150, 150);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const podcastId = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n id: podcastId,\r\n layoutActions: {\r\n add: {\r\n onClick: () => this.openGeneratePopupForPodcast(),\r\n label: \"ADMINISTRATION.PODCAST.EPISODES.HEADER.BUTTONS.ADD_EPISODE\",\r\n className: \"c-btn c-btn--base c-btn--primary\",\r\n },\r\n generate: {\r\n onClick: () => this.openGeneratePopupForPodcast(),\r\n label: \"ADMINISTRATION.PODCAST.EPISODES.HEADER.BUTTONS.GENERATE\",\r\n className: \"c-btn c-btn--base c-btn--primary\",\r\n },\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.generateAudioFilesModal = new MrbModalParams();\r\n this.editPodcastEpisodeTitleModal = new MrbModalParams();\r\n\r\n this.openGeneratePopupForEpisode = this.openGeneratePopupForEpisode.bind(this);\r\n this.openGeneratePopupForPodcast = this.openGeneratePopupForPodcast.bind(this);\r\n this.openEditPodcastEpisodeTitleModal = this.openEditPodcastEpisodeTitleModal.bind(this);\r\n this.goToUploadEpisode = this.goToUploadEpisode.bind(this);\r\n\r\n this.reaction(\r\n () => this.rootStore.contentEncoderSyncStore.podcastEpisodeTasks,\r\n async (episodeTasks) => {\r\n const isUpdated = await this._assignSyncTask(episodeTasks, this.episodes);\r\n if (isUpdated) {\r\n this.getEpisodes(this.id);\r\n }\r\n }\r\n );\r\n }\r\n\r\n async onInit() {\r\n await Promise.all([this.getEpisodes(this.id), this.initializeResource()]);\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getPodcast(id);\r\n }\r\n\r\n @action.bound\r\n async getEpisodes(podcastId) {\r\n try {\r\n const episodes = await this.routeStore.getEpisodes(podcastId);\r\n this._assignSyncTask(this.rootStore.contentEncoderSyncStore.podcastEpisodeTasks, episodes);\r\n this.setEpisodes(episodes);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.EPISODES.ERROR.FETCH_EPISODES_GENERIC\"),\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n async processHlsEncodingForPodcastEpisode(podcastEpisodeId, processHls, processMp3) {\r\n const data = {\r\n ids: [podcastEpisodeId],\r\n processHls: processHls,\r\n overwriteHls: processHls,\r\n processMp3: processMp3,\r\n overwriteMp3: processMp3,\r\n };\r\n try {\r\n await this.routeStore.hlsEncodePodcastEpisodes(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.EPISODES.ERROR.ENCODE_EPISODE_GENERIC\"),\r\n err\r\n );\r\n }\r\n this.rootStore.contentEncoderSyncStore.resetSync();\r\n this.generateAudioFilesModal.close();\r\n }\r\n\r\n @action.bound\r\n async processHlsEncodingForPodcast(processHls, processMp3) {\r\n const data = {\r\n ids: [this.id],\r\n processHls: processHls,\r\n overwriteHls: processHls,\r\n processMp3: processMp3,\r\n overwriteMp3: processMp3,\r\n };\r\n try {\r\n await this.routeStore.hlsEncodePodcasts(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.EPISODES.ERROR.ENCODE_PODCAST_GENERIC\"),\r\n err\r\n );\r\n }\r\n this.rootStore.contentEncoderSyncStore.resetSync();\r\n this.generateAudioFilesModal.close();\r\n }\r\n\r\n @action.bound\r\n async editPodcastEpisodeTitle(podcastEpisodeId, title) {\r\n const data = { title: title };\r\n try {\r\n await this.routeStore.editPodcastEpisodeTitle(podcastEpisodeId, data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.EPISODES.ERROR.ENCODE_SONG_GENERIC\"),\r\n err\r\n );\r\n }\r\n this.editPodcastEpisodeTitleModal.close();\r\n }\r\n\r\n openEditPodcastEpisodeTitleModal(podcastEpisode) {\r\n this.editPodcastEpisodeTitleModal.open({\r\n id: podcastEpisode.id,\r\n title: podcastEpisode.title,\r\n editPodcastEpisodeTitle: this.editPodcastEpisodeTitle,\r\n });\r\n }\r\n\r\n openGeneratePopupForEpisode(podcastEpisode) {\r\n this.generateAudioFilesModal.open({\r\n id: podcastEpisode.id,\r\n artworkUrl: podcastEpisode.artworkUrl,\r\n title: podcastEpisode.title,\r\n duration: podcastEpisode.duration,\r\n hlsStreamUrl: podcastEpisode.hlsStreamUrl,\r\n audioFileBitrate: podcastEpisode.audioFileBitrate,\r\n audioStreamUrl: podcastEpisode.audioStreamUrl,\r\n audioFileSize: podcastEpisode.audioFileSize,\r\n processHlsEncodingForSingleEntity: this.processHlsEncodingForPodcastEpisode,\r\n });\r\n }\r\n\r\n @action.bound\r\n async syncNewEpisodes() {\r\n try {\r\n await this.routeStore.syncPodcastsBackground({ ids: [this.id] });\r\n this.rootStore.notificationStore.info(localizationService.t(\"ADMINISTRATION.PODCAST.EPISODES.SYNC.START\"));\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.EPISODES.ERROR.SYNC_NEW_EPISODES_GENERIC\"),\r\n err\r\n );\r\n }\r\n }\r\n\r\n openGeneratePopupForPodcast() {\r\n this.generateAudioFilesModal.open({\r\n artworkUrl: this.coverImageUrl,\r\n title: this.item.title,\r\n subtitle: this.item.parentPodcast?.title,\r\n processHlsEncodingForAllEntities: this.processHlsEncodingForPodcast,\r\n });\r\n }\r\n\r\n _assignSyncTask(syncTasks, episodes) {\r\n let isUpdated = false;\r\n forEach(episodes, (episode) => {\r\n const newSyncTask = find(syncTasks, (syncTask) => episode.id === syncTask.podcastEpisodeId);\r\n if (!isNil(episode.syncTask) && isNil(newSyncTask)) {\r\n isUpdated = true;\r\n }\r\n episode.syncTask = newSyncTask;\r\n });\r\n return isUpdated;\r\n }\r\n\r\n @action.bound\r\n setEpisodes(episodes) {\r\n this.episodes = episodes;\r\n }\r\n\r\n updatePodcastEpisodeTitle(episodeId, newTitle) {\r\n const episode = find(this.episodes, (episode) => episode.id === episodeId);\r\n if (episode) {\r\n episode.title = newTitle;\r\n }\r\n }\r\n\r\n downloadPodcastEpisode = (item) => {\r\n if (item && item.audioStreamUrl) {\r\n var downloadRequest = new DownloadRequest(\r\n item.id,\r\n item.title,\r\n item.artworkUrl,\r\n this.routeStore.createPodcastEpisodeAudioFileUrl(item.id),\r\n item.duration,\r\n item.audioFileSize\r\n );\r\n this.routeStore.rootStore.downloadManagerStore.addItemToQueue(downloadRequest);\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n @action.bound\r\n async deletePodcastEpisode(item) {\r\n if (item && item.isManualUpload) {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete the episode?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deleteEpisode(item.id);\r\n const newEpisodes = filter(this.episodes, (episode) => episode.id !== item.id);\r\n this.setEpisodes(newEpisodes);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.EPISODES.ERROR.DELETE_FAILED\"),\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\n goToUploadEpisode() {\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.episodes.create\", { id: this.id });\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeListViewStore;\r\n","import { BaseStatsWidgetViewStore } from \"administration/analytics/stores\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\n\r\nclass PodcastAnalyticsStatsWidgetViewStore extends BaseStatsWidgetViewStore {\r\n podcastId = null;\r\n\r\n constructor(rootStore, { routeStore, podcastId }) {\r\n super(rootStore, {\r\n routeName: \"master.administration.analytics.podcast-activity\",\r\n routeParams: { id: podcastId },\r\n });\r\n this.routeStore = routeStore;\r\n this.podcastId = podcastId;\r\n\r\n this.setTimeRange(timeRangeType.thisMonth);\r\n }\r\n\r\n fetch(filter) {\r\n const params = {\r\n from: filter.from,\r\n to: filter.to,\r\n previousCycleFrom: filter.previousCycleFrom,\r\n previousCycleTo: filter.previousCycleTo,\r\n timeZone: filter.timeZone,\r\n };\r\n return this.routeStore.getPodcastAnalyticsStats(this.podcastId, params);\r\n }\r\n}\r\n\r\nexport default PodcastAnalyticsStatsWidgetViewStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { PodcastAnalyticsStatsWidgetViewStore } from \"administration/podcast/stores\";\r\n\r\nclass SubPodcastAnalyticsStatsWidgetViewStore extends PodcastAnalyticsStatsWidgetViewStore {\r\n @observable isInitialized = false;\r\n\r\n constructor(rootStore, options) {\r\n super(rootStore, options);\r\n makeObservable(this);\r\n }\r\n\r\n async onInit() {\r\n if (!this.isInitialized) {\r\n await this.fetchResource(this.filter);\r\n this.setIsInitialized(true);\r\n }\r\n }\r\n\r\n @action.bound\r\n setIsInitialized(value) {\r\n this.isInitialized = value;\r\n }\r\n}\r\n\r\nexport default SubPodcastAnalyticsStatsWidgetViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PodcastService, PodcastFileStreamService, PodcastAnalyticsService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass BasePodcastPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PodcastService);\r\n this.podcastFileStreamService = this.rootStore.createApplicationService(PodcastFileStreamService);\r\n this.podcastAnalyticsService = this.rootStore.createApplicationService(PodcastAnalyticsService);\r\n }\r\n\r\n async updateActiveStatus(id, isActive) {\r\n const response = await this.service.updateActiveStatus(id, isActive);\r\n return response.data;\r\n }\r\n\r\n async updateExcludedFromRevenueStatus(id, excludedFromRevenue) {\r\n const response = await this.service.updateExcludedFromRevenueStatus(id, excludedFromRevenue);\r\n return response.data;\r\n }\r\n\r\n async getPodcastAnalyticsStats(id, options) {\r\n const response = await this.podcastAnalyticsService.getPodcastStats(id, options);\r\n return response.data;\r\n }\r\n\r\n async updatePremiumStatus(id, isPremium) {\r\n const response = await this.service.updatePremiumStatus(id, isPremium);\r\n return response.data;\r\n }\r\n\r\n async updateOnByDefaultStatus(id, isOnByDefault) {\r\n const response = await this.service.updateOnByDefaultStatus(id, isOnByDefault);\r\n return response.data;\r\n }\r\n\r\n async updateOnByDefaultInAppStatus(id, isOnByDefault) {\r\n const response = await this.service.updateOnByDefaultInAppStatus(id, isOnByDefault);\r\n return response.data;\r\n }\r\n\r\n async updateOnByDefaultInNakiTouchStatus(id, isOnByDefault) {\r\n const response = await this.service.updateOnByDefaultInNakiTouchStatus(id, isOnByDefault);\r\n return response.data;\r\n }\r\n\r\n async updateVisibilityStatus(id, isVisible) {\r\n const response = await this.service.updateVisibilityStatus(id, isVisible);\r\n return response.data;\r\n }\r\n\r\n async updateAppVisibilityStatus(id, isVisible) {\r\n const response = await this.service.updateAppVisibilityStatus(id, isVisible);\r\n return response.data;\r\n }\r\n\r\n async updateNakiTouchVisibilityStatus(id, isVisible) {\r\n const response = await this.service.updateNakiTouchVisibilityStatus(id, isVisible);\r\n return response.data;\r\n }\r\n\r\n async updateRecentlyUpdatedVisibilityStatus(id, isVisible) {\r\n const response = await this.service.updateRecentlyUpdatedVisibilityStatus(id, isVisible);\r\n return response.data;\r\n }\r\n\r\n async updateFeaturedStatus(id, isFeatured) {\r\n const response = await this.service.updateFeaturedStatus(id, isFeatured);\r\n return response.data;\r\n }\r\n\r\n async deletePodcast(resource) {\r\n const response = await this.service.delete(resource);\r\n return response.data;\r\n }\r\n\r\n createPodcastCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.podcastFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n\r\n async updateHlsEnabledStatus(id, isHlsEnabled) {\r\n const response = await this.service.updateHlsEnabledStatus(id, isHlsEnabled);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default BasePodcastPreviewRouteStore;\r\n","import { action, runInAction, computed, makeObservable, observable } from \"mobx\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { MrbBasePreviewViewStore } from \"mrb/core\";\r\nimport { some } from \"lodash\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass BasePodcastPreviewViewStore extends MrbBasePreviewViewStore {\r\n @observable displayMissingProducers = false;\r\n\r\n @computed get coverImageUrl() {\r\n if (this.item && this.item.coverImageId) {\r\n return this.routeStore.createPodcastCoverImageUrl(this.item.coverImageId, 200, 200);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @computed get isPremiumDisabled() {\r\n if (this.item === null) {\r\n return false;\r\n }\r\n if (this.item.podcastType === 2) {\r\n return some(this.item.subPodcasts, (subPodcast) => subPodcast.producerId === null) && this.item.isPremium;\r\n } else {\r\n return this.item.producerId === null;\r\n }\r\n }\r\n\r\n constructor(rootStore, { routeStore, layoutActions }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n id: id,\r\n layoutActions,\r\n navigateBack: \"master.administration.podcast.list\",\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n @action.bound\r\n async toggleIsActive(value) {\r\n const oldValue = this.item.isActive;\r\n this.item.isActive = value;\r\n try {\r\n await this.routeStore.updateActiveStatus(this.item.id, this.item.isActive);\r\n } catch (err) {\r\n if (err.data.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.rootStore.notificationStore.error(\r\n \"Podcast updated, but an unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n } else {\r\n runInAction(() => {\r\n this.item.isActive = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change status\", err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleExcludedFromRevenueStatus(value) {\r\n const oldValue = this.item.excludedFromRevenue;\r\n this.item.excludedFromRevenue = value;\r\n try {\r\n await this.routeStore.updateExcludedFromRevenueStatus(this.item.id, this.item.excludedFromRevenue);\r\n } catch (err) {\r\n if (err.data?.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.rootStore.notificationStore.error(\r\n \"Podcast updated, but an unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n } else {\r\n runInAction(() => {\r\n this.item.excludedFromRevenue = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change status\", err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async togglePremiumStatus(value) {\r\n const oldValue = this.item.isPremium;\r\n this.item.isPremium = value;\r\n try {\r\n await this.routeStore.updatePremiumStatus(this.item.id, this.item.isPremium);\r\n this.setDisplayMissingProducers(false);\r\n } catch (err) {\r\n if (this.isPremiumDisabled) {\r\n this.setDisplayMissingProducers(true);\r\n runInAction(() => {\r\n this.item.isPremium = oldValue;\r\n if (this.item.podcastType === 2) {\r\n this.rootStore.notificationStore.warning(\r\n localizationService.t(\r\n \"ADMINISTRATION.PODCAST.PREVIEW.VALIDATION.SUB_PODCAST_MISSING_PRODUCER\"\r\n )\r\n );\r\n } else {\r\n this.rootStore.notificationStore.warning(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.PREVIEW.VALIDATION.PODCAST_MISSING_PRODUCER\")\r\n );\r\n }\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.item.isPremium = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change premium\", err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultStatus(value) {\r\n const oldValue = this.item.isTurnedOnByDefault;\r\n this.item.isTurnedOnByDefault = value;\r\n try {\r\n await this.routeStore.updateOnByDefaultStatus(this.item.id, this.item.isTurnedOnByDefault);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isTurnedOnByDefault = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultInAppStatus(value) {\r\n const oldValue = this.item.isTurnedOnByDefaultInApp;\r\n this.item.isTurnedOnByDefaultInApp = value;\r\n try {\r\n await this.routeStore.updateOnByDefaultInAppStatus(this.item.id, this.item.isTurnedOnByDefaultInApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isTurnedOnByDefaultInApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultInNakiTouchStatus(value) {\r\n const oldValue = this.item.isTurnedOnByDefaultInEmbeddedApp;\r\n this.item.isTurnedOnByDefaultInEmbeddedApp = value;\r\n try {\r\n await this.routeStore.updateOnByDefaultInNakiTouchStatus(\r\n this.item.id,\r\n this.item.isTurnedOnByDefaultInEmbeddedApp\r\n );\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isTurnedOnByDefaultInEmbeddedApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleVisibilityStatus(value) {\r\n const oldValue = this.item.isVisible;\r\n this.item.isVisible = value;\r\n try {\r\n await this.routeStore.updateVisibilityStatus(this.item.id, this.item.isVisible);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isVisible = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleAppVisibilityStatus(value) {\r\n const oldValue = this.item.isVisibleInApp;\r\n this.item.isVisibleInApp = value;\r\n try {\r\n await this.routeStore.updateAppVisibilityStatus(this.item.id, this.item.isVisibleInApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isVisibleInApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change app visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleNakiTouchVisibilityStatus(value) {\r\n const oldValue = this.item.isVisibleInEmbeddedApp;\r\n this.item.isVisibleInEmbeddedApp = value;\r\n try {\r\n await this.routeStore.updateNakiTouchVisibilityStatus(this.item.id, this.item.isVisibleInEmbeddedApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isVisibleInEmbeddedApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change Naki Bolt visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleRecentlyUpdatedVisibilityStatus(value) {\r\n const oldValue = this.item.podcastFeed.recentlyUpdatedVisibility;\r\n this.item.podcastFeed.recentlyUpdatedVisibility = value;\r\n try {\r\n await this.routeStore.updateRecentlyUpdatedVisibilityStatus(\r\n this.item.id,\r\n this.item.podcastFeed.recentlyUpdatedVisibility\r\n );\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.podcastFeed.recentlyUpdatedVisibility = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleFeaturedStatus(value) {\r\n const oldValue = this.item.isFeatured;\r\n this.item.isFeatured = value;\r\n try {\r\n await this.routeStore.updateFeaturedStatus(this.item.id, this.item.isFeatured);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isFeatured = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change featured status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleHlsEnabledStatus(value) {\r\n const oldValue = this.item.podcastFeed.hlsEnabled;\r\n this.item.podcastFeed.hlsEnabled = value;\r\n try {\r\n await this.routeStore.updateHlsEnabledStatus(this.item.id, this.item.podcastFeed.hlsEnabled);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.podcastFeed.hlsEnabled = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change HLS enabled status.\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async deletePodcast() {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete podcast?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deletePodcast(this.item);\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.list\");\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred. Unable to delete station.\",\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 @action.bound\r\n setDisplayMissingProducers(value) {\r\n this.displayMissingProducers = value;\r\n }\r\n}\r\n\r\nexport default BasePodcastPreviewViewStore;\r\n","import { BasePodcastPreviewRouteStore } from \"administration/podcast/stores\";\r\n\r\nclass PodcastGroupPreviewRouteStore extends BasePodcastPreviewRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n\r\n async getPodcastGroup(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"subPodcasts,subPodcasts.language,subPodcasts.location,subPodcasts.genres,subPodcasts.producer,subPodcasts.podcastFeed,subPodcasts.podcastFeed.episodeSortType,subPodcasts.podcastFeed.shuffleWeight\",\r\n });\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default PodcastGroupPreviewRouteStore;\r\n","import { BasePodcastPreviewRouteStore } from \"administration/podcast/stores\";\r\n\r\nclass PodcastPreviewRouteStore extends BasePodcastPreviewRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n\r\n async getPodcast(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"podcastFeed,podcastFeed.episodeSortType,genres,location,language,podcastVolumes,producer\",\r\n });\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default PodcastPreviewRouteStore;\r\n","import { makeObservable, computed } from \"mobx\";\r\nimport { BasePodcastPreviewViewStore } from \"administration/podcast/stores\";\r\nimport { podcastContentType } from \"common/constants\";\r\n\r\nclass PodcastPreviewViewStore extends BasePodcastPreviewViewStore {\r\n @computed get isTorahAnytimePodcast() {\r\n return this.item && this.item.podcastContentType === podcastContentType.torahAnytime;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n routeStore: routeStore,\r\n layoutActions: {\r\n episodes: {\r\n onClick: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.episodes\", {\r\n id: this.id,\r\n }),\r\n label: \"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.EPISODES\",\r\n className: \"c-btn c-btn--base c-btn--ghost\",\r\n },\r\n edit: {\r\n onClick: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.edit\", { id: this.item.id }),\r\n label: \"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.EDIT\",\r\n className: \"c-btn c-btn--base c-btn--primary\",\r\n },\r\n },\r\n });\r\n makeObservable(this);\r\n }\r\n\r\n async get(id) {\r\n return this.routeStore.getPodcast(id);\r\n }\r\n\r\n onClickPodcastEpisodeList = () => {\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.episodes\", {\r\n id: this.id,\r\n });\r\n };\r\n}\r\n\r\nexport default PodcastPreviewViewStore;\r\n","import { BasePodcastPreviewViewStore } from \"administration/podcast/stores\";\r\n\r\nclass PodcastGroupPreviewViewStore extends BasePodcastPreviewViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n routeStore: routeStore,\r\n layoutActions: {\r\n edit: {\r\n onClick: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.edit-group\", {\r\n id: this.item.id,\r\n }),\r\n label: \"ADMINISTRATION.PODCAST.PREVIEW.BUTTONS.EDIT\",\r\n className: \"c-btn c-btn--base c-btn--primary\",\r\n },\r\n },\r\n });\r\n }\r\n\r\n async get(id) {\r\n return this.routeStore.getPodcastGroup(id);\r\n }\r\n}\r\n\r\nexport default PodcastGroupPreviewViewStore;\r\n","import React from \"react\";\r\nimport { action, computed, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { SubPodcastAnalyticsStatsWidgetViewStore } from \"administration/podcast/stores\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { some } from \"lodash\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass PodcastGroupPreviewSubPodcastViewStore extends MrbBaseViewStore {\r\n @observable isCollapsed = false;\r\n @observable podcast = null;\r\n panelRef = React.createRef();\r\n\r\n @computed get coverImageUrl() {\r\n if (this.podcast && this.podcast.coverImageId) {\r\n return this.routeStore.createPodcastCoverImageUrl(this.podcast.coverImageId, 150, 150);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @computed get isPremiumDisabled() {\r\n return this.podcastGroupPreviewViewStore.item.isPremium;\r\n }\r\n\r\n @computed get isAppVisibilityDisabled() {\r\n return !this.podcastGroupPreviewViewStore.item.isVisibleInApp;\r\n }\r\n\r\n @computed get isNakiTouchVisibilityDisabled() {\r\n return !this.podcastGroupPreviewViewStore.item.isVisibleInEmbeddedApp;\r\n }\r\n\r\n constructor(rootStore, { podcastGroupPreviewViewStore, podcast }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.podcastGroupPreviewViewStore = podcastGroupPreviewViewStore;\r\n this.routeStore = podcastGroupPreviewViewStore.routeStore;\r\n this.podcast = podcast;\r\n\r\n this.subPodcastAnalyticsStatsWidgetViewStore = new SubPodcastAnalyticsStatsWidgetViewStore(rootStore, {\r\n routeStore: this.routeStore,\r\n podcastId: this.podcast.id,\r\n });\r\n\r\n this.reaction(\r\n () => this.isCollapsed,\r\n (isCollapsed) => {\r\n if (isCollapsed) {\r\n this.subPodcastAnalyticsStatsWidgetViewStore.initialize();\r\n if (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 this.reaction(\r\n () => this.podcastGroupPreviewViewStore.item.isPremium,\r\n (isPodcastGroupPremium) => {\r\n if (isPodcastGroupPremium && !this.podcastGroupPreviewViewStore.isPremiumDisabled) {\r\n runInAction(() => {\r\n this.podcast.isPremium = true;\r\n });\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.podcastGroupPreviewViewStore.item.isVisibleInApp,\r\n (isVisibleInApp) => {\r\n runInAction(() => {\r\n this.podcast.isVisibleInApp = isVisibleInApp;\r\n });\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.podcastGroupPreviewViewStore.item.isVisibleInEmbeddedApp,\r\n (isVisibleInEmbeddedApp) => {\r\n runInAction(() => {\r\n this.podcast.isVisibleInEmbeddedApp = isVisibleInEmbeddedApp;\r\n });\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.podcast.isVisibleInApp,\r\n (isVisibleInApp) => {\r\n if (!isVisibleInApp) {\r\n if (\r\n !some(\r\n this.podcastGroupPreviewViewStore.item.subPodcasts,\r\n (subPodcast) => subPodcast.isVisibleInApp\r\n )\r\n ) {\r\n runInAction(() => {\r\n this.podcastGroupPreviewViewStore.item.isVisibleInApp = false;\r\n });\r\n }\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.podcast.isVisibleInEmbeddedApp,\r\n (isVisibleInEmbeddedApp) => {\r\n if (!isVisibleInEmbeddedApp) {\r\n if (\r\n !some(\r\n this.podcastGroupPreviewViewStore.item.subPodcasts,\r\n (subPodcast) => subPodcast.isVisibleInEmbeddedApp\r\n )\r\n ) {\r\n runInAction(() => {\r\n this.podcastGroupPreviewViewStore.item.isVisibleInEmbeddedApp = false;\r\n });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n onInit() {\r\n const subPodcastId = this.rootStore.routerStore.routerState.queryParams.subPodcastId;\r\n if (subPodcastId && this.podcast.id === subPodcastId) {\r\n this.isCollapsed = true;\r\n }\r\n return Promise.resolve();\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 async toggleIsActive(value) {\r\n const oldValue = this.podcast.isActive;\r\n this.podcast.isActive = value;\r\n try {\r\n await this.routeStore.updateActiveStatus(this.podcast.id, this.podcast.isActive);\r\n } catch (err) {\r\n if (err.data.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.rootStore.notificationStore.error(\r\n \"Podcast updated, but an unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n } else {\r\n runInAction(() => {\r\n this.podcast.isActive = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change status\", err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async togglePremiumStatus(value) {\r\n const oldValue = this.podcast.isPremium;\r\n this.podcast.isPremium = value;\r\n try {\r\n await this.routeStore.updatePremiumStatus(this.podcast.id, this.podcast.isPremium);\r\n } catch (err) {\r\n if (this.podcast.isPremium && this.podcast.producerId === null) {\r\n runInAction(() => {\r\n this.podcast.isPremium = oldValue;\r\n this.rootStore.notificationStore.warning(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.LIST.VALIDATION.PODCAST_MISSING_PRODUCER\")\r\n );\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.podcast.isPremium = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change premium\", err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultStatus(value) {\r\n const oldValue = this.podcast.isTurnedOnByDefault;\r\n this.podcast.isTurnedOnByDefault = value;\r\n try {\r\n await this.routeStore.updateOnByDefaultStatus(this.podcast.id, this.podcast.isTurnedOnByDefault);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.podcast.isTurnedOnByDefault = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultInAppStatus(value) {\r\n const oldValue = this.podcast.isTurnedOnByDefaultInApp;\r\n this.podcast.isTurnedOnByDefaultInApp = value;\r\n try {\r\n await this.routeStore.updateOnByDefaultInAppStatus(this.podcast.id, this.podcast.isTurnedOnByDefaultInApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.podcast.isTurnedOnByDefaultInApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleExcludedFromRevenueStatus(value) {\r\n const oldValue = this.podcast.excludedFromRevenue;\r\n this.podcast.excludedFromRevenue = value;\r\n try {\r\n await this.routeStore.updateExcludedFromRevenueStatus(this.podcast.id, this.podcast.excludedFromRevenue);\r\n } catch (err) {\r\n if (err.data?.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.rootStore.notificationStore.error(\r\n \"Podcast updated, but an unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n } else {\r\n runInAction(() => {\r\n this.podcast.excludedFromRevenue = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change status\", err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultInNakiTouchStatus(value) {\r\n const oldValue = this.podcast.isTurnedOnByDefaultInEmbeddedApp;\r\n this.podcast.isTurnedOnByDefaultInEmbeddedApp = value;\r\n try {\r\n await this.routeStore.updateOnByDefaultInNakiTouchStatus(\r\n this.podcast.id,\r\n this.podcast.isTurnedOnByDefaultInEmbeddedApp\r\n );\r\n } catch (err) {\r\n runInAction(() => {\r\n this.podcast.isTurnedOnByDefaultInEmbeddedApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleRecentlyUpdatedVisibilityStatus(value) {\r\n const oldValue = this.podcast.podcastFeed.recentlyUpdatedVisibility;\r\n this.podcast.podcastFeed.recentlyUpdatedVisibility = value;\r\n try {\r\n await this.routeStore.updateRecentlyUpdatedVisibilityStatus(\r\n this.podcast.id,\r\n this.podcast.podcastFeed.recentlyUpdatedVisibility\r\n );\r\n } catch (err) {\r\n runInAction(() => {\r\n this.podcast.podcastFeed.recentlyUpdatedVisibility = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleAppVisibilityStatus(value) {\r\n const oldValue = this.podcast.isVisibleInApp;\r\n this.podcast.isVisibleInApp = value;\r\n try {\r\n await this.routeStore.updateAppVisibilityStatus(this.podcast.id, this.podcast.isVisibleInApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.podcast.isVisibleInApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change app visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleNakiTouchVisibilityStatus(value) {\r\n const oldValue = this.podcast.isVisibleInEmbeddedApp;\r\n this.podcast.isVisibleInEmbeddedApp = value;\r\n try {\r\n await this.routeStore.updateNakiTouchVisibilityStatus(this.podcast.id, this.podcast.isVisibleInEmbeddedApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.podcast.isVisibleInEmbeddedApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change Naki Bolt visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleHlsEnabledStatus(value) {\r\n const oldValue = this.podcast.podcastFeed.hlsEnabled;\r\n this.podcast.podcastFeed.hlsEnabled = value;\r\n try {\r\n await this.routeStore.updateHlsEnabledStatus(this.podcast.id, this.podcast.podcastFeed.hlsEnabled);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.podcast.podcastFeed.hlsEnabled = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change HLS enabled status.\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n onClickEdit = () => {\r\n this.rootStore.routerStore.goTo(\r\n \"master.administration.podcast.edit-group\",\r\n { id: this.podcast.parentPodcastId },\r\n { subPodcastId: this.podcast.id }\r\n );\r\n };\r\n\r\n onClickPodcastEpisodeList = () => {\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.episodes\", {\r\n id: this.podcast.id,\r\n });\r\n };\r\n\r\n setPanelRef = (ref) => {\r\n this.panelRef = ref;\r\n };\r\n\r\n onDestroy() {\r\n this.subPodcastAnalyticsStatsWidgetViewStore.destroy();\r\n super.onDestroy();\r\n }\r\n}\r\n\r\nexport default PodcastGroupPreviewSubPodcastViewStore;\r\n","import React from \"react\";\r\nimport { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\n\r\nclass PodcastPreviewPodcastVolumeViewStore extends MrbBaseViewStore {\r\n @observable isCollapsed = false;\r\n @observable podcastVolume = null;\r\n panelRef = React.createRef();\r\n\r\n @computed get coverImageUrl() {\r\n if (this.podcastVolume && this.podcastVolume.podcastFileEntryId) {\r\n return this.routeStore.createPodcastCoverImageUrl(this.podcastVolume.podcastFileEntryId, 150, 150);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n constructor(rootStore, { podcastPreviewViewStore, podcastVolume }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.podcastPreviewViewStore = podcastPreviewViewStore;\r\n this.routeStore = podcastPreviewViewStore.routeStore;\r\n this.podcastVolume = podcastVolume;\r\n\r\n this.reaction(\r\n () => this.isCollapsed,\r\n (isCollapsed) => {\r\n console.log(isCollapsed, this.panelRef);\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\r\n @action.bound\r\n onInit() {\r\n const podcastVolumeId = this.rootStore.routerStore.routerState.queryParams.podcastVolumeId;\r\n if (podcastVolumeId && this.podcastVolume.id === podcastVolumeId) {\r\n this.isCollapsed = true;\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n @action.bound\r\n toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n onClickEdit = () => {\r\n this.rootStore.routerStore.goTo(\r\n \"master.administration.podcast.edit\",\r\n { id: this.podcastVolume.podcastId },\r\n { podcastVolumeId: this.podcastVolume.id }\r\n );\r\n };\r\n\r\n setPanelRef = (ref) => {\r\n this.panelRef = ref;\r\n };\r\n}\r\n\r\nexport default PodcastPreviewPodcastVolumeViewStore;\r\n","import { computed, makeObservable, observable } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { PodcastEpisodeEditForm } from \"administration/podcast/forms\";\r\nimport { MrbFileUploadViewStore } from \"mrb/components/media\";\r\nimport { PodcastCoverImageUploadViewStore } from \"administration/podcast/stores\";\r\nimport { head, isNil } from \"lodash\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass PodcastEpisodeEditViewStore extends MrbBaseEditViewStore {\r\n @observable.ref navigateBack = null;\r\n\r\n @computed get file() {\r\n return head(this.fileUploadStore.files);\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: \"PodcastEpisodeEdit\",\r\n FormClass: PodcastEpisodeEditForm,\r\n autoFocusField: \"title\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n redirectOnUpdateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.podcast.episodes\", { id: id }),\r\n });\r\n this.routeStore = routeStore;\r\n this.podcastId = id;\r\n makeObservable(this);\r\n\r\n this.fileUploadStore = new MrbFileUploadViewStore(this.rootStore, {\r\n acceptedFiles: \"audio/mpeg\",\r\n maxSize: 500000000, // 500 MB in bytes\r\n showValidation: false,\r\n errorsMap: {\r\n \"file-invalid-type\": () => {\r\n return \"File type must be .mp3\";\r\n },\r\n \"file-too-large\": () => {\r\n return \"File is larger than 500MB\";\r\n },\r\n },\r\n });\r\n\r\n this.reaction(\r\n () => this.file,\r\n (file) => {\r\n if (!isNil(file)) {\r\n const fileName = file.name ? file.name.split(\".\")[0] : null;\r\n if (fileName) {\r\n this.form.$(\"title\").value = fileName;\r\n }\r\n }\r\n }\r\n );\r\n\r\n this.coverImageUploadViewStore = new PodcastCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n });\r\n }\r\n\r\n async get(id) {\r\n const podcast = await this.routeStore.getPodcast(id);\r\n this.navigateBack = this._createNavigateBackAction(podcast);\r\n }\r\n\r\n async update(data) {\r\n if (!this.file || !data || !data.title) {\r\n return;\r\n }\r\n\r\n let formData = new FormData();\r\n formData.append(\"file\", this.file);\r\n formData.append(\"title\", data.title);\r\n if (!isNil(this.coverImageUploadViewStore.uploadedFileId)) {\r\n formData.append(\"coverImageId\", this.coverImageUploadViewStore.uploadedFileId);\r\n }\r\n\r\n try {\r\n await this.routeStore.uploadEpisode(this.podcastId, formData);\r\n } catch (error) {\r\n if (error.statusCode === httpStatusCodes.Conflict)\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.EPISODES.UPLOAD.ERROR.ALREADY_EXIST\"),\r\n error\r\n );\r\n else {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.PODCAST.EPISODES.UPLOAD.ERROR.GENERIC\"),\r\n error\r\n );\r\n }\r\n }\r\n }\r\n\r\n attachAudioFile = (event) => {\r\n this.fileUploadStore.raiseBrowse(event);\r\n };\r\n\r\n removeAudioFile = () => {\r\n this.fileUploadStore.clear();\r\n };\r\n\r\n _createNavigateBackAction(podcast) {\r\n if (podcast) {\r\n return {\r\n title: podcast.title,\r\n routeName: \"master.administration.podcast.episodes\",\r\n routeParams: { id: podcast.id },\r\n };\r\n }\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PodcastService, PodcastFileStreamService, MediaVaultStreamService } from \"common/services\";\r\nimport moment from \"moment\";\r\n\r\nclass PodcastEpisodeEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PodcastService);\r\n this.mediaVaultStreamService = new MediaVaultStreamService(\r\n this.rootStore.apiClient,\r\n this.rootStore.application.baasic\r\n );\r\n this.podcastFileStreamService = this.rootStore.createApplicationService(PodcastFileStreamService);\r\n }\r\n\r\n async uploadEpisode(podcastId, formData) {\r\n const response = await this.service.uploadEpisode(podcastId, formData);\r\n return response.statusCode;\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n return this.mediaVaultStreamService.mediaVaultModule.streams.routeDefinition.get(id);\r\n }\r\n\r\n async uploadImageFile(file) {\r\n const now = moment();\r\n const [name, extension] = file.name.split(\".\");\r\n const path = `${name}_${now.year()}-${now.month()}-${now.date()}-${now.hour()}-${now.minute()}-${now.second()}.${extension}`;\r\n const response = await this.mediaVaultStreamService.create(\r\n {\r\n path: path,\r\n fileName: file.name,\r\n },\r\n file\r\n );\r\n return response.data;\r\n }\r\n\r\n getPodcastCoverImageUrl(coverImageId) {\r\n return this.podcastFileStreamService.routeService.get(coverImageId);\r\n }\r\n\r\n async getPodcast(podcastId) {\r\n const response = await this.service.get(podcastId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default PodcastEpisodeEditRouteStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport {\r\n NakiNigunArtistService,\r\n EpisodeSortTypeCacheService,\r\n MediaVaultStreamService,\r\n NakiNigunArtistFileStreamService,\r\n NakiNigunAlbumFileStreamService,\r\n GenreLookupService,\r\n ProducerService,\r\n} from \"common/services\";\r\nimport moment from \"moment\";\r\n\r\nclass NakiNigunArtistEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(NakiNigunArtistService);\r\n this.episodeSortTypeService = new EpisodeSortTypeCacheService(this.rootStore);\r\n this.mediaVaultStreamService = new MediaVaultStreamService(\r\n this.rootStore.apiClient,\r\n this.rootStore.application.baasic\r\n );\r\n this.nakiNigunArtistFileStreamService = this.rootStore.createApplicationService(\r\n NakiNigunArtistFileStreamService\r\n );\r\n this.nakiNigunAlbumFileStreamService = this.rootStore.createApplicationService(NakiNigunAlbumFileStreamService);\r\n this.genreLookupService = this.rootStore.createApplicationService(GenreLookupService);\r\n this.producerService = this.rootStore.createApplicationService(ProducerService);\r\n }\r\n\r\n async getNakiNigunArtist(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"albums,albums.albumFeed,albums.genres,albums.producer\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async createNakiNigunArtist(data) {\r\n const response = await this.service.create(data);\r\n return response.data;\r\n }\r\n\r\n async updateNakiNigunArtist(data) {\r\n const response = await this.service.update(data);\r\n return response.data;\r\n }\r\n\r\n getEpisodeSortTypes() {\r\n return this.episodeSortTypeService.getItems();\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n return this.mediaVaultStreamService.mediaVaultModule.streams.routeDefinition.get(id);\r\n }\r\n\r\n async uploadImageFile(file) {\r\n const now = moment();\r\n const [name, extension] = file.name.split(\".\");\r\n const path = `${name}_${now.year()}-${now.month()}-${now.date()}-${now.hour()}-${now.minute()}-${now.second()}.${extension}`;\r\n const response = await this.mediaVaultStreamService.create(\r\n {\r\n path: path,\r\n fileName: file.name,\r\n },\r\n file\r\n );\r\n return response.data;\r\n }\r\n\r\n getNakiNigunArtistCoverImageUrl(coverImageId) {\r\n return this.nakiNigunArtistFileStreamService.routeService.get(coverImageId);\r\n }\r\n\r\n getNakiNigunAlbumCoverImageUrl(coverImageId) {\r\n return this.nakiNigunAlbumFileStreamService.routeService.get(coverImageId);\r\n }\r\n\r\n async findGenres(searchPhrase) {\r\n const response = await this.genreLookupService.find(searchPhrase);\r\n return response.data;\r\n }\r\n\r\n async findProducers(searchPhrase) {\r\n const response = await this.producerService.find(searchPhrase);\r\n return response.data;\r\n }\r\n\r\n async createProducer(resource) {\r\n const response = await this.producerService.create(resource);\r\n return response.data;\r\n }\r\n\r\n async createGenre(resource) {\r\n const response = await this.genreLookupService.create(resource);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistEditRouteStore;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class NakiNigunArtistEditForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"name\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.NAME_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.NAME_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_ACTIVE_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_ACTIVE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isFeatured\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_FEATURED_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_FEATURED_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isPremium\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_PREMIUM_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_PREMIUM_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isVisible\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_VISIBLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_VISIBLE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isVisibleInApp\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_VISIBLE_IN_APP_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_VISIBLE_IN_APP_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isVisibleInEmbeddedApp\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_VISIBLE_IN_EMBEDDED_APP_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.FIELDS.IS_VISIBLE_IN_EMBEDDED_APP_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class NakiNigunAlbumEditForm 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: \"title\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.TITLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.TITLE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"isActive\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_ACTIVE_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_ACTIVE_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n value: true,\r\n },\r\n {\r\n name: \"isPremium\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_PREMIUM_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_PREMIUM_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefault\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_TURNED_ON_BY_DEFAULT_LABEL\",\r\n placeholder:\r\n \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_TURNED_ON_BY_DEFAULT_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefaultInApp\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_APP_LABEL\",\r\n placeholder:\r\n \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_APP_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isTurnedOnByDefaultInEmbeddedApp\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_EMBEDDED_APP_LABEL\",\r\n placeholder:\r\n \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_TURNED_ON_BY_DEFAULT_IN_EMBEDDED_APP_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"overrideRadioUsersSettings\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELD.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"overrideAppUsersSettings\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELD.FIELDS.IS_OVERRIDE_USERS_SETTINGS\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"isFeatured\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_FEATURED_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_FEATURED_PLACEHOLDER\",\r\n type: \"checkbox\",\r\n },\r\n {\r\n name: \"genreIds\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.GENRE_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.GENRE_PLACEHOLDER\",\r\n },\r\n {\r\n name: \"producerId\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.PRODUCER_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.PRODUCER_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"keywords\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.KEYWORDS_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.KEYWORDS_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"year\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.YEAR_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.YEAR_PLACEHOLDER\",\r\n rules: \"numeric|min:1900\",\r\n },\r\n {\r\n name: \"albumFeed\",\r\n fields: [\r\n {\r\n name: \"feedUrl\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.FEED_URL_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.FEED_URL_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"contentSortTypeId\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.CONTENT_SORT_TYPE_LABEL\",\r\n placeholder:\r\n \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.CONTENT_SORT_TYPE_PLACEHOLDER\",\r\n type: \"required|string\",\r\n },\r\n {\r\n name: \"hlsEnabled\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.IS_HLS_ENABLED_LABEL\",\r\n placeholder: \"\",\r\n type: \"checkbox\",\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class NakiNigunAlbumTrackEditTitleForm 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: \"title\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.SONG_LIST.FIELDS.TITLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.SONG_LIST.FIELDS.TITLE_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 NakiNigunAlbumTrackEditForm 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: \"title\",\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.TITLE_LABEL\",\r\n placeholder: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.TITLE_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { action, computed, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { MrbFieldSelectStore } from \"mrb/components/select\";\r\nimport { NakiNigunAlbumEditForm } from \"administration/naki-nigun/forms\";\r\nimport { NakiNigunAlbumCoverImageUploadViewStore } from \"administration/naki-nigun/stores\";\r\nimport { find, findIndex, isNil, map } from \"lodash\";\r\n\r\nclass NakiNigunAlbumEditViewStore extends MrbBaseEditViewStore {\r\n @observable overrideRadioUsersSettingsIsVisible = false;\r\n @observable overrideAppUsersSettingsIsVisible = false;\r\n @observable isCollapsed = false;\r\n panelRef = React.createRef();\r\n\r\n @computed get album() {\r\n return find(this.nakiNigunArtistEditViewStore.albums, (album) => album.id === this.albumId);\r\n }\r\n\r\n @computed get isNewlyAdded() {\r\n return isNil(this.album.dateCreated);\r\n }\r\n\r\n @computed get albumIndex() {\r\n return findIndex(this.nakiNigunArtistEditViewStore.albums, (album) => album.id === this.albumId) + 1;\r\n }\r\n\r\n @computed get episodeSortTypeOptions() {\r\n return this.nakiNigunArtistEditViewStore.episodeSortTypeOptions;\r\n }\r\n\r\n @computed get disabledForShufflingWeight() {\r\n return this.nakiNigunArtistEditViewStore.disabledForShufflingWeight;\r\n }\r\n\r\n @computed get isPremiumDisabled() {\r\n return this.nakiNigunArtistEditViewStore.form.$(\"isPremium\").value;\r\n }\r\n\r\n @computed get isActiveStatusDisabled() {\r\n return !this.nakiNigunArtistEditViewStore.form.$(\"isActive\").value;\r\n }\r\n\r\n constructor(rootStore, { nakiNigunArtistEditViewStore, albumId }) {\r\n super(rootStore, {\r\n name: \"naki-nigun-albums\",\r\n FormClass: NakiNigunAlbumEditForm,\r\n redirectOnCreateSuccess: false,\r\n });\r\n makeObservable(this);\r\n this.albumId = albumId;\r\n this.nakiNigunArtistEditViewStore = nakiNigunArtistEditViewStore;\r\n this.routeStore = this.nakiNigunArtistEditViewStore.routeStore;\r\n\r\n this.coverImageUploadViewStore = new NakiNigunAlbumCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n width: 200,\r\n height: 200,\r\n });\r\n\r\n this.genreSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n isMulti: true,\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findGenres(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createGenre({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"genreIds\")\r\n );\r\n\r\n this.producerSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findProducers(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createProducer({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"producerId\")\r\n );\r\n\r\n if (!this.isNewlyAdded) {\r\n this.reaction(\r\n () => this.form.$(\"isTurnedOnByDefault\").value,\r\n (isTurnedOnByDefault) => {\r\n if (isTurnedOnByDefault !== this.album.isTurnedOnByDefault) {\r\n runInAction(() => {\r\n this.overrideRadioUsersSettingsIsVisible = true;\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.overrideRadioUsersSettingsIsVisible = false;\r\n this.form.$(\"overrideRadioUsersSettings\").value = false;\r\n });\r\n }\r\n }\r\n );\r\n this.reaction(\r\n () => this.form.$(\"isTurnedOnByDefaultInApp\").value,\r\n (isTurnedOnByDefault) => {\r\n if (isTurnedOnByDefault !== this.album.isTurnedOnByDefaultInApp) {\r\n runInAction(() => {\r\n this.overrideAppUsersSettingsIsVisible = true;\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.overrideAppUsersSettingsIsVisible = false;\r\n this.form.$(\"overrideAppUsersSettings\").value = false;\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n this.setForm();\r\n\r\n this.reaction(\r\n () => this.isCollapsed,\r\n (isCollapsed) => {\r\n if (isCollapsed) {\r\n this.form.$(\"title\").focus();\r\n if (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 this.reaction(\r\n () => this.form.changed,\r\n (isChanged) => {\r\n if (isChanged) {\r\n this.nakiNigunArtistEditViewStore.markAlbumAsChanged(this.albumId);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.coverImageUploadViewStore.hasChanged,\r\n (isChanged) => {\r\n if (isChanged) {\r\n this.nakiNigunArtistEditViewStore.markAlbumAsChanged(this.albumId);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.nakiNigunArtistEditViewStore.form.$(\"isPremium\").value,\r\n (isArtistPremium) => {\r\n if (isArtistPremium) {\r\n this.form.$(\"isPremium\").onChange(isArtistPremium);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.form.$(\"isPremium\").value,\r\n (isPremium) => {\r\n if (isPremium) {\r\n this.form.$(\"producerId\").addIsRequiredRule();\r\n } else {\r\n this.form.$(\"producerId\").removeIsRequiredRule();\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.nakiNigunArtistEditViewStore.form.$(\"isActive\").value,\r\n (isActive) => {\r\n this.form.$(\"isActive\").onChange(isActive);\r\n }\r\n );\r\n\r\n if (this.form.$(\"isPremium\").value === true) {\r\n this.form.$(\"producerId\").addIsRequiredRule();\r\n }\r\n }\r\n\r\n @action.bound\r\n setForm() {\r\n this.form.set({\r\n ...this.album,\r\n genreIds: this.album.genres ? map(this.album.genres, (genre) => genre.id) : null,\r\n producerId: this.album.producerId,\r\n });\r\n this.genreSelectStore.setSelectedItem(this.album.genres || null);\r\n this.producerSelectStore.setSelectedItem(this.album.producer);\r\n if (this.album.coverImageId) {\r\n if (this.isNewlyAdded) {\r\n this.coverImageUploadViewStore.setUploadedFileId(this.album.coverImageId);\r\n } else {\r\n this.coverImageUploadViewStore.setImageUrl(\r\n this.routeStore.getNakiNigunAlbumCoverImageUrl(this.album.coverImageId)\r\n );\r\n }\r\n } else {\r\n this.coverImageUploadViewStore.setUploadedFileId(null);\r\n }\r\n }\r\n\r\n resetForm() {\r\n this.form.clear();\r\n this.setForm();\r\n this.nakiNigunArtistEditViewStore.markAlbumAsUpdated(this.album.id);\r\n }\r\n\r\n @action.bound\r\n onInit() {\r\n const albumId = this.rootStore.routerStore.routerState.queryParams.albumId;\r\n if (albumId && this.albumId === albumId) {\r\n this.isCollapsed = true;\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n create(data) {\r\n if (this.coverImageUploadViewStore.hasChanged) {\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n } else {\r\n data.coverImageId = this.album.coverImageId;\r\n }\r\n const selectedGenres = this.genreSelectStore.selectedOption;\r\n if (selectedGenres) {\r\n data.genres = map(selectedGenres, (genreOption) => genreOption.item);\r\n }\r\n this.nakiNigunArtistEditViewStore.updateAlbum(this.albumId, data);\r\n this.form.$changed = false;\r\n this.form.each((field) => (field.$changed = false));\r\n }\r\n\r\n onCreateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to update resource.\", err);\r\n }\r\n\r\n setPanelRef = (ref) => {\r\n this.panelRef = ref;\r\n };\r\n\r\n @action.bound\r\n toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n deleteAlbum = (event) => {\r\n // Prevent collapsing the album panel when a user clicks on the delete button.\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.nakiNigunArtistEditViewStore.deleteAlbum(this.albumId);\r\n };\r\n}\r\n\r\nexport default NakiNigunAlbumEditViewStore;\r\n","import { BaseCoverImageUploadViewStore } from \"common/stores\";\r\n\r\nclass NakiNigunArtistCoverImageUploadViewStore extends BaseCoverImageUploadViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n uploadImageToMediaVault(file) {\r\n return this.routeStore.uploadImageFile(file);\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n return this.routeStore.getMediaVaultFileUrl(id);\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistCoverImageUploadViewStore;\r\n","import { BaseCoverImageUploadViewStore } from \"common/stores\";\r\n\r\nclass NakiNigunAlbumCoverImageUploadViewStore extends BaseCoverImageUploadViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n uploadImageToMediaVault(file) {\r\n return this.routeStore.uploadImageFile(file);\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n return this.routeStore.getMediaVaultFileUrl(id);\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumCoverImageUploadViewStore;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { MrbFieldSelectStore } from \"mrb/components/select\";\r\nimport { NakiNigunAlbumEditForm } from \"administration/naki-nigun/forms\";\r\nimport { NakiNigunAlbumCoverImageUploadViewStore } from \"administration/naki-nigun/stores\";\r\nimport { map } from \"lodash\";\r\n\r\nclass NakiNigunAddAlbumViewStore extends MrbBaseEditViewStore {\r\n @computed get episodeSortTypeOptions() {\r\n return this.nakiNigunArtistEditViewStore.episodeSortTypeOptions;\r\n }\r\n\r\n @computed get isPremiumDisabled() {\r\n return this.nakiNigunArtistEditViewStore.form.$(\"isPremium\").value;\r\n }\r\n\r\n @computed get isActiveStatusDisabled() {\r\n return !this.nakiNigunArtistEditViewStore.form.$(\"isActive\").value;\r\n }\r\n\r\n constructor(rootStore, { nakiNigunArtistEditViewStore }) {\r\n super(rootStore, {\r\n name: \"naki-nigun-album\",\r\n FormClass: NakiNigunAlbumEditForm,\r\n redirectOnCreateSuccess: false,\r\n });\r\n this.nakiNigunArtistEditViewStore = nakiNigunArtistEditViewStore;\r\n this.routeStore = this.nakiNigunArtistEditViewStore.routeStore;\r\n makeObservable(this);\r\n\r\n this.coverImageUploadViewStore = new NakiNigunAlbumCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.nakiNigunArtistEditViewStore.routeStore,\r\n });\r\n\r\n this.reaction(\r\n () => this.nakiNigunArtistEditViewStore.form.$(\"isPremium\").value,\r\n (isPremium) => {\r\n this.form.$(\"isPremium\").set(isPremium);\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.form.$(\"isPremium\").value,\r\n (isPremium) => {\r\n if (isPremium) {\r\n this.form.$(\"producerId\").addIsRequiredRule();\r\n } else {\r\n this.form.$(\"producerId\").removeIsRequiredRule();\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.nakiNigunArtistEditViewStore.form.$(\"isActive\").value,\r\n (isActive) => {\r\n this.form.$(\"isActive\").set(isActive);\r\n }\r\n );\r\n\r\n this.genreSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n isMulti: true,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findGenres(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createGenre({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"genreIds\")\r\n );\r\n\r\n this.producerSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findProducers(searchTerm);\r\n },\r\n createOption: (name) => {\r\n return this.routeStore.createProducer({ name });\r\n },\r\n },\r\n },\r\n this.form.$(\"producerId\")\r\n );\r\n }\r\n\r\n create(data) {\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n const selectedGenres = this.genreSelectStore.selectedOption;\r\n if (selectedGenres) {\r\n data.genres = map(selectedGenres, (genreOption) => genreOption.item);\r\n }\r\n const selectedProducerOption = this.producerSelectStore.selectedOption;\r\n if (selectedProducerOption) {\r\n data.producer = selectedProducerOption.item;\r\n }\r\n this.nakiNigunArtistEditViewStore.addAlbum(data);\r\n return Promise.resolve();\r\n }\r\n\r\n onCreateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to add album.\", err);\r\n }\r\n\r\n resetForm() {\r\n this.form.clear();\r\n this.coverImageUploadViewStore.remove();\r\n const isArtistPremium = this.nakiNigunArtistEditViewStore.form.$(\"isPremium\").value;\r\n this.form.set({\r\n isActive: true,\r\n albumFeed: {\r\n contentSortTypeId: this.episodeSortTypeOptions[0].value,\r\n recentlyUpdatedVisibility: true,\r\n },\r\n isPremium: isArtistPremium,\r\n });\r\n this.genreSelectStore.setSelectedItem(null);\r\n this.producerSelectStore.setSelectedItem(null);\r\n }\r\n\r\n onCreateSuccess() {\r\n this.resetForm();\r\n }\r\n}\r\n\r\nexport default NakiNigunAddAlbumViewStore;\r\n","import { action, computed, observable, makeObservable, toJS, override } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { NakiNigunArtistEditForm } from \"administration/naki-nigun/forms\";\r\nimport { NakiNigunArtistCoverImageUploadViewStore } from \"administration/naki-nigun/stores\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { UUID } from \"common/utils\";\r\nimport { map, findIndex, filter, merge, some, omit, orderBy } from \"lodash\";\r\n\r\nexport const ARTIST_FORM_STATUS = {\r\n CHANGED: \"CHANGED\",\r\n UPDATED: \"UPDATED\",\r\n};\r\n\r\nclass NakiNigunArtistEditViewStore extends MrbBaseEditViewStore {\r\n @observable albums = [];\r\n @observable albumsChanged = false;\r\n\r\n @computed get anyUnsavedAlbum() {\r\n return some(this.albums, (album) => album.FORM_STATUS === ARTIST_FORM_STATUS.CHANGED);\r\n }\r\n\r\n @observable.ref episodeSortTypes = [];\r\n\r\n @computed get episodeSortTypeOptions() {\r\n return map(this.episodeSortTypes, (item) => {\r\n return {\r\n value: item.id,\r\n label: `ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.ALBUM.FIELDS.${item.name.toUpperCase()}_OPTION_LABEL`,\r\n };\r\n });\r\n }\r\n\r\n @computed get isFormChanged() {\r\n return (\r\n this.form.changed ||\r\n some(\r\n this.albums,\r\n (album) =>\r\n album.FORM_STATUS === ARTIST_FORM_STATUS.CHANGED || album.FORM_STATUS === ARTIST_FORM_STATUS.UPDATED\r\n ) ||\r\n this.albumsChanged ||\r\n this.coverImageUploadViewStore.hasChanged\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: \"naki-nigun-artist\",\r\n FormClass: NakiNigunArtistEditForm,\r\n autoFocusField: \"name\",\r\n navigateBack: \"master.administration.naki-nigun.artist.list\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n blockRouteExit: true,\r\n redirectOnCreateSuccess: ({ id }) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.naki-nigun.artist.preview\", { id: id }),\r\n redirectOnUpdateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.naki-nigun.artist.preview\", { id: this.id }),\r\n });\r\n this.routeStore = routeStore;\r\n makeObservable(this);\r\n\r\n this.coverImageUploadViewStore = new NakiNigunArtistCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n });\r\n\r\n this.reaction(\r\n () => this.form.submitted && this.albums.length === 0,\r\n (invalidateAlbums) => {\r\n if (invalidateAlbums) {\r\n this.form.invalidate(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.VALIDATION.ALBUMS_EMPTY\");\r\n } else {\r\n this.form.validator.error = null;\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () =>\r\n this.form.submitted &&\r\n some(this.albums, (album) => this.form.$(\"isPremium\").value && album.producerId === null),\r\n (invalidateAlbums) => {\r\n if (invalidateAlbums) {\r\n this.form.invalidate(\r\n \"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.VALIDATION.PREMIUM_ALBUM_MISSING_PRODUCER\"\r\n );\r\n } else {\r\n this.form.validator.error = null;\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.form.$(\"isPremium\").value,\r\n (isPremium) => {\r\n if (!isPremium) {\r\n this.form.$(\"premiumInfo\").set(null);\r\n }\r\n }\r\n );\r\n\r\n this.registerRouteExitBlocking();\r\n }\r\n\r\n async onInit() {\r\n await this.loadLookups();\r\n await this.initializeResource();\r\n if (this.isEdit && this.item.coverImageId) {\r\n this.coverImageUploadViewStore.setImageUrl(\r\n this.routeStore.getNakiNigunArtistCoverImageUrl(this.item.coverImageId)\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n setEpisodeSortTypes(items) {\r\n this.episodeSortTypes = items;\r\n }\r\n\r\n async loadLookups() {\r\n const episodeSortTypes = await this.routeStore.getEpisodeSortTypes();\r\n this.setEpisodeSortTypes(orderBy(episodeSortTypes, (sortType) => sortType.sortOrder));\r\n }\r\n\r\n createResource(data) {\r\n this._onAfterSave(data);\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n return super.createResource(data);\r\n }\r\n\r\n updateResource(data) {\r\n this._onAfterSave(data);\r\n if (this.coverImageUploadViewStore.hasChanged) {\r\n data.coverImageId = this.coverImageUploadViewStore.uploadedFileId;\r\n } else {\r\n data.coverImageId = this.item.coverImageId;\r\n }\r\n return super.updateResource(data);\r\n }\r\n\r\n _onAfterSave(data) {\r\n data.albums = map(this.albums, (album, index) => {\r\n return {\r\n ...omit(album, \"FORM_STATUS\"),\r\n genreIds: album.genres ? map(album.genres, (genre) => genre.id) : null,\r\n sortOrder: index + 1,\r\n };\r\n });\r\n if (!data.albums || data.albums.length === 0) {\r\n this.form.invalidate(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.VALIDATION.ALBUMS_EMPTY\");\r\n return;\r\n }\r\n if (some(data.albums, (album) => data.isPremium && album.producerId === null)) {\r\n this.form.invalidate(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.EDIT.VALIDATION.PREMIUM_ALBUM_MISSING_PRODUCER\");\r\n return;\r\n }\r\n }\r\n\r\n @override\r\n setItem(item) {\r\n this.albums = item.albums;\r\n item.albums = null;\r\n super.setItem(item);\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getNakiNigunArtist(id);\r\n }\r\n\r\n create(data) {\r\n return this.routeStore.createNakiNigunArtist(data);\r\n }\r\n\r\n resetForm() {\r\n this.form.set({\r\n isActive: true,\r\n isVisible: true,\r\n isVisibleInApp: true,\r\n });\r\n }\r\n\r\n async update(data) {\r\n await this.routeStore.updateNakiNigunArtist(data);\r\n }\r\n\r\n onCreateSuccess(result) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n super.onCreateSuccess(result);\r\n }\r\n\r\n onUpdateSuccess(result) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n super.onUpdateSuccess(result);\r\n }\r\n\r\n onCreateError(err) {\r\n if (err.data.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n const artist = err.data.response;\r\n this.rootStore.notificationStore.error(\r\n \"Artist created, but unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n this.redirectOnCreateSuccess(artist);\r\n } else {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to create artist.\", err);\r\n }\r\n }\r\n\r\n onUpdateError(err) {\r\n if (err.data.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.routeStore.setIsRouteExitBlocked(false);\r\n this.rootStore.notificationStore.error(\r\n \"Artist updated, but an unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n this.redirectOnUpdateSuccess();\r\n } else {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to update artist.\", err);\r\n }\r\n }\r\n\r\n @action.bound\r\n addAlbum(item) {\r\n item.id = UUID.create();\r\n item.FORM_STATUS = ARTIST_FORM_STATUS.UPDATED;\r\n this.albums.push(item);\r\n this.albumsChanged = true;\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 @action.bound\r\n updateAlbum(id, item) {\r\n const index = findIndex(this.albums, (album) => album.id === id);\r\n item.FORM_STATUS = ARTIST_FORM_STATUS.UPDATED;\r\n if (item.genres !== undefined) {\r\n this.albums[index].genres = item.genres;\r\n }\r\n this.albums[index] = merge(this.albums[index], item);\r\n this.albumsChanged = true;\r\n }\r\n\r\n @action.bound\r\n reorderAlbums(result) {\r\n const { destination, source } = result;\r\n if (!destination) {\r\n return;\r\n }\r\n\r\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\r\n return;\r\n }\r\n\r\n const newAlbums = Array.from(toJS(this.albums));\r\n const album = newAlbums.splice(source.index, 1)[0];\r\n album.FORM_STATUS = ARTIST_FORM_STATUS.UPDATED;\r\n newAlbums.splice(destination.index, 0, album);\r\n\r\n this.albums = newAlbums;\r\n this.albumsChanged = true;\r\n }\r\n\r\n @action.bound\r\n markAlbumAsChanged(albumId) {\r\n const index = findIndex(this.albums, (album) => album.id === albumId);\r\n if (index > -1) {\r\n this.albums[index].FORM_STATUS = ARTIST_FORM_STATUS.CHANGED;\r\n }\r\n this.albumsChanged = true;\r\n }\r\n\r\n @action.bound\r\n markAlbumAsUpdated(albumId) {\r\n const index = findIndex(this.albums, (album) => album.id === albumId);\r\n if (index > -1) {\r\n this.albums[index].FORM_STATUS = ARTIST_FORM_STATUS.UPDATED;\r\n }\r\n this.albumsChanged = true;\r\n }\r\n\r\n @action.bound\r\n deleteAlbum(albumId) {\r\n this.albums = filter(this.albums, (album) => album.id !== albumId);\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistEditViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { NakiNigunAlbumTrackEditTitleForm } from \"administration/naki-nigun/forms\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { makeObservable, observable, action } from \"mobx\";\r\n\r\nclass NakiNigunAlbumTrackEditTitleViewStore extends MrbBaseViewStore {\r\n @observable isFormChanged = false;\r\n\r\n constructor(rootStore, { nakiNigunAlbumTrackListViewStore, id, title }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.nakiNigunAlbumTrackListViewStore = nakiNigunAlbumTrackListViewStore;\r\n this.routeStore = nakiNigunAlbumTrackListViewStore.routeStore;\r\n this.id = id;\r\n this.title = title;\r\n\r\n this.form = new NakiNigunAlbumTrackEditTitleForm({\r\n onSuccess: (form) => {\r\n const item = form.values();\r\n return this.updateResource(item);\r\n },\r\n onInit: (form) => {\r\n form.set({ title: title });\r\n form.$(\"title\").focus();\r\n },\r\n });\r\n\r\n this.registerRouteExitBlocking();\r\n this.reaction(\r\n () => this.form.changed,\r\n (isChanged) => {\r\n if (isChanged) {\r\n this.isFormChanged = isChanged;\r\n }\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n async updateResource(data) {\r\n this.form.setFieldsDisabled(true);\r\n try {\r\n await this.update(this.id, data);\r\n this.form.setFieldsDisabled(false);\r\n this.onUpdateSuccess(data.title);\r\n } catch (err) {\r\n this.form.setFieldsDisabled(false);\r\n this.onUpdateError(err);\r\n }\r\n }\r\n\r\n async update(id, resource) {\r\n this.isFormChanged = false;\r\n await this.routeStore.editAlbumTrackTitle(id, resource);\r\n }\r\n\r\n onUpdateError(err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.SONG_LIST.ERROR.GENERIC_MESSAGE\")\r\n );\r\n }\r\n\r\n @action.bound\r\n onUpdateSuccess(newAlbumTrackTitle) {\r\n this.nakiNigunAlbumTrackListViewStore.updateAlbumTrackTitle(this.id, newAlbumTrackTitle);\r\n this.nakiNigunAlbumTrackListViewStore.editAlbumTrackModal.close();\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 destroy() {\r\n super.destroy();\r\n this.form.destroy();\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumTrackEditTitleViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunArtistService } from \"common/services\";\r\n\r\nclass NakiNigunArtistListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(NakiNigunArtistService);\r\n }\r\n\r\n async findNakiNigunArtists(params) {\r\n const response = await this.service.find(params);\r\n return response.data;\r\n }\r\n\r\n async deleteNakiNigunArtist(resource) {\r\n const response = await this.service.delete(resource);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistListRouteStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { mrbDefaultFormats } from \"mrb/common/formatting\";\r\n\r\nclass NakiNigunArtistListViewStore extends MrbBaseListViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n layoutActions: {\r\n create: {\r\n onClick: () => this.rootStore.routerStore.goTo(\"master.administration.naki-nigun.artist.create\"),\r\n label: \"ADMINISTRATION.NAKI_NIGUN.LIST.BUTTONS.ADD\",\r\n },\r\n },\r\n queryConfig: {\r\n orderBy: \"name\",\r\n orderDirection: \"asc\",\r\n },\r\n });\r\n this.routeStore = routeStore;\r\n\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n onRowClick: (node) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.naki-nigun.artist.preview\", {\r\n id: node.data.id,\r\n }),\r\n columns: [\r\n {\r\n key: \"name\",\r\n title: \"ADMINISTRATION.NAKI_NIGUN.LIST.COLUMNS.ARTIST\",\r\n sortable: true,\r\n /*format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Active\",\r\n falseLabel: \"Inactive\",\r\n },*/\r\n },\r\n {\r\n key: \"isActive\",\r\n title: \"ADMINISTRATION.PODCAST.LIST.COLUMNS.STATUS\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Active\",\r\n falseLabel: \"Inactive\",\r\n },\r\n },\r\n {\r\n key: \"isPremium\",\r\n title: \"ADMINISTRATION.PODCAST.LIST.COLUMNS.PREMIUM\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Premium\",\r\n falseLabel: \"Free\",\r\n },\r\n },\r\n {\r\n key: \"isVisible\",\r\n title: \"ADMINISTRATION.PODCAST.LIST.COLUMNS.VISIBLE_ON_PORTAL\",\r\n format: {\r\n type: mrbDefaultFormats.bool,\r\n trueLabel: \"Visible\",\r\n falseLabel: \"Hidden\",\r\n },\r\n },\r\n ],\r\n actions: {\r\n edit: {\r\n onClick: (item) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.naki-nigun.artist.edit\", {\r\n id: item.id,\r\n }),\r\n label: \"ADMINISTRATION.NAKI_NIGUN.LIST.ACTIONS.EDIT\",\r\n buttonProps: {\r\n className: \"c-btn c-btn--sml c-btn--ghost u-mar--right--tny\",\r\n },\r\n },\r\n delete: {\r\n onClick: (item) =>\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete artist?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deleteNakiNigunArtist(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 artist.\",\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 label: \"ADMINISTRATION.NAKI_NIGUN.LIST.ACTIONS.DELETE\",\r\n buttonProps: {\r\n className: \"c-btn c-btn--sml c-btn--ghost\",\r\n },\r\n },\r\n },\r\n })\r\n );\r\n }\r\n\r\n find(params) {\r\n return this.routeStore.findNakiNigunArtists(params);\r\n }\r\n\r\n onFetchError() {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\"\r\n );\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistListViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunAlbumService, RssSyncService, NakiNigunAlbumFileStreamService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass NakiNigunAlbumTrackListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.nakiNigunAlbumService = this.rootStore.createApplicationService(NakiNigunAlbumService);\r\n this.rssSyncService = this.rootStore.createApplicationService(RssSyncService);\r\n this.nakiNigunAblumFileStreamService = this.rootStore.createApplicationService(NakiNigunAlbumFileStreamService);\r\n }\r\n\r\n async getAlbum(id) {\r\n const response = await this.nakiNigunAlbumService.get(id, { embed: \"artist,albumFeed\" });\r\n return response.data;\r\n }\r\n\r\n async deleteAlbumTrack(id) {\r\n const response = await this.nakiNigunAlbumService.deleteAlbumTrack(id);\r\n return response.data;\r\n }\r\n\r\n async getSongs(albumId, params) {\r\n const response = await this.nakiNigunAlbumService.getAllSongs(albumId, params);\r\n return response.data;\r\n }\r\n\r\n async hlsEncodeAlbums(options) {\r\n await this.rssSyncService.hlsEncodeAlbums(options);\r\n }\r\n\r\n async hlsEncodeAlbumTracks(options) {\r\n await this.rssSyncService.hlsEncodeAlbumTracks(options);\r\n }\r\n\r\n async syncNakiNigunAlbums(data) {\r\n await this.rssSyncService.syncNakiNigunAlbums(data);\r\n }\r\n\r\n async editAlbumTrackTitle(id, resource) {\r\n await this.nakiNigunAlbumService.editAlbumTrackTitle(id, resource);\r\n }\r\n\r\n createAlbumTrackAudioFileUrl(albumTrackId) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.nakiNigunAblumFileStreamService.routeService.getAlbumTrackAudioFile(albumTrackId)\r\n );\r\n }\r\n\r\n async syncNakiNigunAlbumsBackground(data) {\r\n await this.rssSyncService.syncNakiNigunAlbumsBackground(data);\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumTrackListRouteStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBasePreviewViewStore } from \"mrb/core\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { forEach, find, some, isNil, filter, includes } from \"lodash\";\r\nimport { DownloadRequest } from \"common/models\";\r\n\r\nclass NakiNigunAlbumTrackListFilter {\r\n @observable search = \"\";\r\n @observable hlsAvailable = null;\r\n @observable mp3Available = null;\r\n\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n setSearch(search) {\r\n this.search = search;\r\n }\r\n\r\n @action.bound\r\n setHlsAvailable(value) {\r\n this.hlsAvailable = value;\r\n }\r\n\r\n @action.bound\r\n setMp3Available(value) {\r\n this.mp3Available = value;\r\n }\r\n}\r\n\r\nclass NakiNigunAlbumTrackListViewStore extends MrbBasePreviewViewStore {\r\n @observable songs = [];\r\n @observable.ref filter = new NakiNigunAlbumTrackListFilter();\r\n\r\n @computed get filteredSongs() {\r\n if (this.filter.search === \"\" && this.filter.hlsAvailable === null && this.filter.mp3Available === null) {\r\n return this.songs;\r\n }\r\n return filter(this.songs, (song) => {\r\n if (\r\n this.filter.hlsAvailable !== null &&\r\n !((this.filter.hlsAvailable && song.hlsStreamUrl) || (!this.filter.hlsAvailable && !song.hlsStreamUrl))\r\n ) {\r\n return false;\r\n }\r\n if (\r\n this.filter.mp3Available !== null &&\r\n !(\r\n (this.filter.mp3Available && song.audioStreamUrl) ||\r\n (!this.filter.mp3Available && !song.audioStreamUrl)\r\n )\r\n ) {\r\n return false;\r\n }\r\n if (\r\n this.filter.search !== \"\" &&\r\n this.filter.search != null &&\r\n !includes(song.title.toLowerCase(), this.filter.search.toLowerCase())\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n @computed get isSyncing() {\r\n if (this.songs.length === 0) {\r\n return false;\r\n }\r\n return some(this.songs, (song) => !isNil(song.syncTask));\r\n }\r\n\r\n @computed get coverImageUrl() {\r\n if (this.item && this.item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(this.item.coverImageId, 150, 150);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const albumId = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n id: albumId,\r\n layoutActions: {\r\n generate: {\r\n onClick: () => this.openGeneratePopupForAlbum(),\r\n label: \"ADMINISTRATION.NAKI_NIGUN.SONGS.HEADER.BUTTONS.GENERATE\",\r\n className: \"c-btn c-btn--base c-btn--primary\",\r\n },\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.generateAudioFilesModal = new MrbModalParams();\r\n this.editAlbumTrackModal = new MrbModalParams();\r\n\r\n this.openGeneratePopupForSong = this.openGeneratePopupForSong.bind(this);\r\n this.openGeneratePopupForAlbum = this.openGeneratePopupForAlbum.bind(this);\r\n this.openEditAlbumTrack = this.openEditAlbumTrack.bind(this);\r\n this.goToUploadAlbumTrack = this.goToUploadAlbumTrack.bind(this);\r\n\r\n this.reaction(\r\n () => this.rootStore.contentEncoderSyncStore.albumTrackTasks,\r\n async (songTasks) => {\r\n const isUpdated = await this._assignSyncTask(songTasks, this.songs);\r\n if (isUpdated) {\r\n this.getSongs(this.id);\r\n }\r\n }\r\n );\r\n }\r\n\r\n async onInit() {\r\n await Promise.all([this.getSongs(this.id), this.initializeResource()]);\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getAlbum(id);\r\n }\r\n\r\n @action.bound\r\n async getSongs(albumId) {\r\n try {\r\n const songs = await this.routeStore.getSongs(albumId);\r\n this._assignSyncTask(this.rootStore.contentEncoderSyncStore.albumTrackTasks, songs);\r\n this.setSongs(songs);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.NAKI_NIGUN.SONGS.ERROR.FETCH_SONGS_GENERIC\"),\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n async syncNewSongs() {\r\n try {\r\n await this.routeStore.syncNakiNigunAlbumsBackground({ ids: [this.id] });\r\n this.rootStore.notificationStore.info(localizationService.t(\"ADMINISTRATION.NAKI_NIGUN.SONGS.SYNC.START\"));\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.NAKI_NIGUN.SONGS.ERROR.SYNC_NEW_SONGS_GENERIC\"),\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n async processHlsEncodingForAlbumTrack(albumTrackId, processHls, processMp3) {\r\n const data = {\r\n ids: [albumTrackId],\r\n processHls: processHls,\r\n overwriteHls: processHls,\r\n processMp3: processMp3,\r\n overwriteMp3: processMp3,\r\n };\r\n try {\r\n await this.routeStore.hlsEncodeAlbumTracks(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.NAKI_NIGUN.SONGS.ERROR.ENCODE_SONG_GENERIC\"),\r\n err\r\n );\r\n }\r\n this.rootStore.contentEncoderSyncStore.resetSync();\r\n this.generateAudioFilesModal.close();\r\n }\r\n\r\n @action.bound\r\n async processHlsEncodingForAlbum(processHls, processMp3) {\r\n const data = {\r\n ids: [this.id],\r\n processHls: processHls,\r\n overwriteHls: processHls,\r\n processMp3: processMp3,\r\n overwriteMp3: processMp3,\r\n };\r\n try {\r\n await this.routeStore.hlsEncodeAlbums(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.NAKI_NIGUN.SONGS.ERROR.ENCODE_ALBUM_GENERIC\"),\r\n err\r\n );\r\n }\r\n this.generateAudioFilesModal.close();\r\n }\r\n\r\n @action.bound\r\n async editAlbumTrackTitle(albumTrackId, title) {\r\n const data = { title: title };\r\n try {\r\n await this.routeStore.editAlbumTrackTitle(albumTrackId, data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.SONG_LIST.ERROR.GENERIC_MESSAGE\"),\r\n err\r\n );\r\n }\r\n this.editAlbumTrackModal.close();\r\n }\r\n\r\n openEditAlbumTrack(albumTrack) {\r\n this.editAlbumTrackModal.open({\r\n id: albumTrack.id,\r\n title: albumTrack.title,\r\n editAlbumTrackTitle: this.editAlbumTrackTitle,\r\n });\r\n }\r\n\r\n openGeneratePopupForSong(song) {\r\n this.generateAudioFilesModal.open({\r\n id: song.id,\r\n artworkUrl: song.artworkUrl,\r\n title: song.title,\r\n duration: song.duration,\r\n hlsStreamUrl: song.hlsStreamUrl,\r\n audioFileBitrate: song.audioFileBitrate,\r\n audioStreamUrl: song.audioStreamUrl,\r\n audioFileSize: song.audioFileSize,\r\n processHlsEncodingForSingleEntity: this.processHlsEncodingForAlbumTrack,\r\n });\r\n }\r\n\r\n openGeneratePopupForAlbum() {\r\n this.generateAudioFilesModal.open({\r\n artworkUrl: this.coverImageUrl,\r\n title: this.item.title,\r\n subtitle: this.item.artist.name,\r\n processHlsEncodingForAllEntities: this.processHlsEncodingForAlbum,\r\n });\r\n }\r\n\r\n _assignSyncTask(syncTasks, songs) {\r\n let isUpdated = false;\r\n forEach(songs, (song) => {\r\n const newSyncTask = find(syncTasks, (syncTask) => song.id === syncTask.trackId);\r\n if (!isNil(song.syncTask) && isNil(newSyncTask)) {\r\n isUpdated = true;\r\n }\r\n song.syncTask = newSyncTask;\r\n });\r\n\r\n return isUpdated;\r\n }\r\n\r\n @action.bound\r\n setSongs(songs) {\r\n this.songs = songs;\r\n }\r\n\r\n updateAlbumTrackTitle(songId, newTitle) {\r\n const song = find(this.songs, (song) => song.id === songId);\r\n if (song) {\r\n song.title = newTitle;\r\n }\r\n }\r\n\r\n downloadAlbumTrack = (item) => {\r\n if (item && item.audioStreamUrl) {\r\n var downloadRequest = new DownloadRequest(\r\n item.id,\r\n item.title,\r\n item.artworkUrl,\r\n this.routeStore.createAlbumTrackAudioFileUrl(item.id),\r\n item.duration,\r\n item.audioFileSize\r\n );\r\n this.routeStore.rootStore.downloadManagerStore.addItemToQueue(downloadRequest);\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n @action.bound\r\n async deleteAlbumTrack(item) {\r\n if (item && item.isManualUpload) {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete the song?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deleteAlbumTrack(item.id);\r\n var newSongs = filter(this.songs, (song) => song.id !== item.id);\r\n this.setSongs(newSongs);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\r\n \"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.SONG_LIST.ERROR.DELETE_FAILED\"\r\n ),\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\n goToUploadAlbumTrack() {\r\n this.rootStore.routerStore.goTo(\"master.administration.naki-nigun.artist.album.tracks.create\", { id: this.id });\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumTrackListViewStore;\r\n","import React from \"react\";\r\nimport { action, computed, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\n//import { SubPodcastAnalyticsStatsWidgetViewStore } from \"administration/podcast/stores\";\r\n\r\nclass NakiNigunArtistPreviewAlbumViewStore extends MrbBaseViewStore {\r\n @observable isCollapsed = false;\r\n @observable album = null;\r\n panelRef = React.createRef();\r\n\r\n @computed get coverImageUrl() {\r\n if (this.album && this.album.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(\r\n this.album.coverImageId,\r\n 150,\r\n 150\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @computed get isPremiumDisabled() {\r\n return this.nakiNigunArtistPreviewViewStore.item.isPremium;\r\n }\r\n\r\n @computed get isActiveStatusDisabled() {\r\n return !this.nakiNigunArtistPreviewViewStore.item.isActive;\r\n }\r\n\r\n constructor(rootStore, { nakiNigunArtistPreviewViewStore, album }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.nakiNigunArtistPreviewViewStore = nakiNigunArtistPreviewViewStore;\r\n this.routeStore = nakiNigunArtistPreviewViewStore.routeStore;\r\n this.album = album;\r\n\r\n // this.subPodcastAnalyticsStatsWidgetViewStore = new SubPodcastAnalyticsStatsWidgetViewStore(rootStore, {\r\n // routeStore: this.routeStore,\r\n // podcastId: this.podcast.id,\r\n // });\r\n\r\n this.reaction(\r\n () => this.isCollapsed,\r\n (isCollapsed) => {\r\n if (isCollapsed) {\r\n //this.subPodcastAnalyticsStatsWidgetViewStore.initialize();\r\n if (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 this.reaction(\r\n () => this.nakiNigunArtistPreviewViewStore.item.isPremium,\r\n (isArtistPremium) => {\r\n if (isArtistPremium && !this.nakiNigunArtistPreviewViewStore.isPremiumDisabled) {\r\n runInAction(() => {\r\n this.album.isPremium = true;\r\n });\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.nakiNigunArtistPreviewViewStore.item.isActive,\r\n (isArtistActive) => {\r\n runInAction(() => {\r\n this.album.isActive = isArtistActive;\r\n });\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n onInit() {\r\n const albumId = this.rootStore.routerStore.routerState.queryParams.albumId;\r\n if (albumId && this.album.id === albumId) {\r\n this.isCollapsed = true;\r\n }\r\n return Promise.resolve();\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 async toggleIsActive(value) {\r\n const oldValue = this.album.isActive;\r\n this.album.isActive = value;\r\n try {\r\n await this.routeStore.updateAlbumActiveStatus(this.album.id, this.album.isActive);\r\n } catch (err) {\r\n if (err.data.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.rootStore.notificationStore.error(\r\n \"Album updated, but an unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n } else {\r\n runInAction(() => {\r\n this.album.isActive = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change status\", err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async togglePremiumStatus(value) {\r\n const oldValue = this.album.isPremium;\r\n this.album.isPremium = value;\r\n try {\r\n await this.routeStore.updateAlbumPremiumStatus(this.album.id, this.album.isPremium);\r\n } catch (err) {\r\n if (this.album.isPremium && this.album.producerId === null) {\r\n runInAction(() => {\r\n this.album.isPremium = oldValue;\r\n this.rootStore.notificationStore.warning(\r\n localizationService.t(\r\n \"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.ALBUM.VALIDATION.ALBUM_MISSING_PRODUCER\"\r\n )\r\n );\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.album.isPremium = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change premium\", err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleIsFeatured(value) {\r\n const oldValue = this.album.isFeatured;\r\n this.album.isFeatured = value;\r\n try {\r\n await this.routeStore.updateAlbumFeaturedStatus(this.album.id, this.album.isFeatured);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.album.isFeatured = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change featured status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultStatus(value) {\r\n const oldValue = this.album.isTurnedOnByDefault;\r\n this.album.isTurnedOnByDefault = value;\r\n try {\r\n await this.routeStore.updateAlbumOnByDefaultStatus(this.album.id, this.album.isTurnedOnByDefault);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.album.isTurnedOnByDefault = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultInAppStatus(value) {\r\n const oldValue = this.album.isTurnedOnByDefaultInApp;\r\n this.album.isTurnedOnByDefaultInApp = value;\r\n try {\r\n await this.routeStore.updateAlbumOnByDefaultInAppStatus(this.album.id, this.album.isTurnedOnByDefaultInApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.album.isTurnedOnByDefaultInApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleOnByDefaultInNakiTouchStatus(value) {\r\n const oldValue = this.album.isTurnedOnByDefaultInEmbeddedApp;\r\n this.album.isTurnedOnByDefaultInEmbeddedApp = value;\r\n try {\r\n await this.routeStore.updateAlbumOnByDefaultInNakiTouchStatus(\r\n this.album.id,\r\n this.album.isTurnedOnByDefaultInEmbeddedApp\r\n );\r\n } catch (err) {\r\n runInAction(() => {\r\n this.album.isTurnedOnByDefaultInEmbeddedApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change default status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleHlsEnabledStatus(value) {\r\n const oldValue = this.album.albumFeed.hlsEnabled;\r\n this.album.albumFeed.hlsEnabled = value;\r\n try {\r\n await this.routeStore.updateAlbumHlsEnabledStatus(this.album.id, this.album.albumFeed.hlsEnabled);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.album.albumFeed.hlsEnabled = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change HLS enabled status.\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n onClickAlbumTrackList = () => {\r\n this.rootStore.routerStore.goTo(\"master.administration.naki-nigun.artist.album.tracks\", {\r\n id: this.album.id,\r\n });\r\n };\r\n\r\n onClickEdit = () => {\r\n this.rootStore.routerStore.goTo(\r\n \"master.administration.naki-nigun.artist.edit\",\r\n { id: this.album.artistId },\r\n { albumId: this.album.id }\r\n );\r\n };\r\n\r\n setPanelRef = (ref) => {\r\n this.panelRef = ref;\r\n };\r\n\r\n onDestroy() {\r\n //this.subPodcastAnalyticsStatsWidgetViewStore.destroy();\r\n super.onDestroy();\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistPreviewAlbumViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunArtistService, NakiNigunAlbumService } from \"common/services\";\r\n\r\nclass NakiNigunArtistPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(NakiNigunArtistService);\r\n this.albumService = rootStore.createApplicationService(NakiNigunAlbumService);\r\n }\r\n\r\n async getNakiNigunArtist(id) {\r\n const response = await this.service.get(id, {\r\n embed: \"albums,albums.albumFeed,albums.albumFeed.contentSortType,albums.genres,albums.producer\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async updateActiveStatus(id, isActive) {\r\n const response = await this.service.updateActiveStatus(id, isActive);\r\n return response.data;\r\n }\r\n\r\n async updateAlbumActiveStatus(id, isActive) {\r\n const response = await this.albumService.updateActiveStatus(id, isActive);\r\n return response.data;\r\n }\r\n\r\n async updatePremiumStatus(id, isPremium) {\r\n const response = await this.service.updatePremiumStatus(id, isPremium);\r\n return response.data;\r\n }\r\n\r\n async updateAlbumPremiumStatus(id, isPremium) {\r\n const response = await this.albumService.updatePremiumStatus(id, isPremium);\r\n return response.data;\r\n }\r\n\r\n async updateAlbumFeaturedStatus(id, isPremium) {\r\n const response = await this.albumService.updateFeaturedStatus(id, isPremium);\r\n return response.data;\r\n }\r\n\r\n async updateAlbumOnByDefaultStatus(id, isOnByDefault) {\r\n const response = await this.albumService.updateOnByDefaultStatus(id, isOnByDefault);\r\n return response.data;\r\n }\r\n\r\n async updateAlbumOnByDefaultInAppStatus(id, isOnByDefault) {\r\n const response = await this.albumService.updateOnByDefaultInAppStatus(id, isOnByDefault);\r\n return response.data;\r\n }\r\n\r\n async updateAlbumOnByDefaultInNakiTouchStatus(id, isOnByDefault) {\r\n const response = await this.albumService.updateOnByDefaultInNakiTouchStatus(id, isOnByDefault);\r\n return response.data;\r\n }\r\n\r\n async updateVisibilityStatus(id, isVisible) {\r\n const response = await this.service.updateVisibilityStatus(id, isVisible);\r\n return response.data;\r\n }\r\n\r\n async updateMobileAppVisibilityStatus(id, isVisible) {\r\n const response = await this.service.updateMobileAppVisibilityStatus(id, isVisible);\r\n return response.data;\r\n }\r\n\r\n async updateNakiTouchVisibilityStatus(id, isVisible) {\r\n const response = await this.service.updateNakiTouchVisibilityStatus(id, isVisible);\r\n return response.data;\r\n }\r\n\r\n async updateFeaturedStatus(id, isFeatured) {\r\n const response = await this.service.updateFeaturedStatus(id, isFeatured);\r\n return response.data;\r\n }\r\n\r\n async deleteArtist(resource) {\r\n const response = await this.service.delete(resource);\r\n return response.data;\r\n }\r\n\r\n async updateAlbumHlsEnabledStatus(id, isHlsEnabled) {\r\n const response = await this.albumService.updateHlsEnabledStatus(id, isHlsEnabled);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistPreviewRouteStore;\r\n","import { action, computed, observable, runInAction } from \"mobx\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { MrbBasePreviewViewStore } from \"mrb/core\";\r\nimport { some } from \"lodash\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass NakiNigunArtistPreviewViewStore extends MrbBasePreviewViewStore {\r\n @observable displayMissingProducers = false;\r\n\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 @computed get isPremiumDisabled() {\r\n return some(this.item?.albums, (album) => album.producerId === null) && this.item.isPremium;\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 layoutActions: {\r\n edit: {\r\n onClick: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.naki-nigun.artist.edit\", {\r\n id: this.item.id,\r\n }),\r\n label: \"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.BUTTONS.EDIT\",\r\n className: \"c-btn c-btn--base c-btn--primary\",\r\n },\r\n },\r\n navigateBack: \"master.administration.naki-nigun.artist.list\",\r\n });\r\n this.routeStore = routeStore;\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getNakiNigunArtist(id);\r\n }\r\n\r\n @action.bound\r\n async toggleIsActive(value) {\r\n const oldValue = this.item.isActive;\r\n this.item.isActive = value;\r\n try {\r\n await this.routeStore.updateActiveStatus(this.item.id, this.item.isActive);\r\n } catch (err) {\r\n if (err.data.errorCode === applicationErrorCodes.rssSync.rssSyncFailed) {\r\n this.rootStore.notificationStore.error(\r\n \"Artist updated, but an unexpected error occurred during RSS sync.\",\r\n err\r\n );\r\n } else {\r\n runInAction(() => {\r\n this.item.isActive = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change status\", err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async togglePremiumStatus(value) {\r\n const oldValue = this.item.isPremium;\r\n this.item.isPremium = value;\r\n try {\r\n await this.routeStore.updatePremiumStatus(this.item.id, this.item.isPremium);\r\n this.setDisplayMissingProducers(false);\r\n } catch (err) {\r\n if (this.isPremiumDisabled) {\r\n this.setDisplayMissingProducers(true);\r\n runInAction(() => {\r\n this.item.isPremium = oldValue;\r\n this.rootStore.notificationStore.warning(\r\n localizationService.t(\r\n \"ADMINISTRATION.NAKI_NIGUN.ARTIST.PREVIEW.VALIDATION.ALBUM_MISSING_PRODUCER\"\r\n )\r\n );\r\n });\r\n } else {\r\n runInAction(() => {\r\n this.item.isPremium = oldValue;\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Unable to change premium\", err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleVisibilityStatus(value) {\r\n const oldValue = this.item.isVisible;\r\n this.item.isVisible = value;\r\n try {\r\n await this.routeStore.updateVisibilityStatus(this.item.id, this.item.isVisible);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isVisible = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleMobileAppVisibilityStatus(value) {\r\n const oldValue = this.item.isVisibleInApp;\r\n this.item.isVisibleInApp = value;\r\n try {\r\n await this.routeStore.updateMobileAppVisibilityStatus(this.item.id, this.item.isVisibleInApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isVisibleInApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleNakiTouchVisibilityStatus(value) {\r\n const oldValue = this.item.isVisibleInEmbeddedApp;\r\n this.item.isVisibleInEmbeddedApp = value;\r\n try {\r\n await this.routeStore.updateNakiTouchVisibilityStatus(this.item.id, this.item.isVisibleInEmbeddedApp);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isVisibleInEmbeddedApp = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change visibility status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async toggleFeaturedStatus(value) {\r\n const oldValue = this.item.isFeatured;\r\n this.item.isFeatured = value;\r\n try {\r\n await this.routeStore.updateFeaturedStatus(this.item.id, this.item.isFeatured);\r\n } catch (err) {\r\n runInAction(() => {\r\n this.item.isFeatured = oldValue;\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Unable to change featured status\",\r\n err\r\n );\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async deleteArtist() {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to delete artist?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.deleteArtist(this.item);\r\n this.rootStore.routerStore.goTo(\"master.administration.naki-nigun.artist.list\");\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred. Unable to delete artist.\",\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 @action.bound\r\n setDisplayMissingProducers(value) {\r\n this.displayMissingProducers = value;\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistPreviewViewStore;\r\n","import { computed, makeObservable, observable } from \"mobx\";\r\nimport { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { PodcastEpisodeEditForm } from \"administration/podcast/forms\";\r\nimport { MrbFileUploadViewStore } from \"mrb/components/media\";\r\nimport { head, isNil } from \"lodash\";\r\nimport { NakiNigunAlbumCoverImageUploadViewStore } from \"administration/naki-nigun/stores\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass NakiNigunAlbumTrackEditViewStore extends MrbBaseEditViewStore {\r\n @observable.ref navigateBack = null;\r\n\r\n @computed get file() {\r\n return head(this.fileUploadStore.files);\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: \"NakiNigunAlbumTrackEdit\",\r\n FormClass: PodcastEpisodeEditForm,\r\n autoFocusField: \"title\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n redirectOnUpdateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.naki-nigun.artist.album.tracks\", { id: id }),\r\n });\r\n this.routeStore = routeStore;\r\n this.albumId = id;\r\n makeObservable(this);\r\n\r\n this.coverImageUploadViewStore = new NakiNigunAlbumCoverImageUploadViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n width: 200,\r\n height: 200,\r\n });\r\n\r\n this.fileUploadStore = new MrbFileUploadViewStore(this.rootStore, {\r\n acceptedFiles: \"audio/mpeg\",\r\n maxSize: 500000000, // 500 MB in bytes\r\n showValidation: false,\r\n errorsMap: {\r\n \"file-invalid-type\": () => {\r\n return \"File type must be .mp3\";\r\n },\r\n \"file-too-large\": () => {\r\n return \"File is larger than 500MB\";\r\n },\r\n },\r\n });\r\n\r\n this.reaction(\r\n () => this.file,\r\n (file) => {\r\n if (!isNil(file)) {\r\n const fileName = file.name ? file.name.split(\".\")[0] : null;\r\n if (fileName) {\r\n this.form.$(\"title\").value = fileName;\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n async get(id) {\r\n const album = await this.routeStore.getNakiNigunAlbum(id);\r\n this.navigateBack = this._createNavigateBackAction(album);\r\n }\r\n\r\n async update(data) {\r\n if (!this.file || !data || !data.title) {\r\n return;\r\n }\r\n\r\n let formData = new FormData();\r\n formData.append(\"file\", this.file);\r\n formData.append(\"title\", data.title);\r\n if (!isNil(this.coverImageUploadViewStore.uploadedFileId)) {\r\n formData.append(\"coverImageId\", this.coverImageUploadViewStore.uploadedFileId);\r\n }\r\n\r\n try {\r\n await this.routeStore.uploadAlbumTrack(this.albumId, formData);\r\n } catch (error) {\r\n if (error.statusCode === httpStatusCodes.Conflict)\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.NAKI_NIGUN.SONGS.UPLOAD.ERROR.ALREADY_EXIST\"),\r\n error\r\n );\r\n else {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.NAKI_NIGUN.SONGS.UPLOAD.ERROR.GENERIC\"),\r\n error\r\n );\r\n }\r\n }\r\n }\r\n\r\n attachAudioFile = (event) => {\r\n this.fileUploadStore.raiseBrowse(event);\r\n };\r\n\r\n removeAudioFile = () => {\r\n this.fileUploadStore.clear();\r\n };\r\n\r\n _createNavigateBackAction(album) {\r\n if (album) {\r\n return {\r\n title: album.title,\r\n routeName: \"master.administration.naki-nigun.artist.album.tracks\",\r\n routeParams: { id: album.id },\r\n };\r\n }\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumTrackEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunAlbumService, NakiNigunAlbumFileStreamService, MediaVaultStreamService } from \"common/services\";\r\nimport moment from \"moment\";\r\n\r\nclass NakiNigunAlbumTrackEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(NakiNigunAlbumService);\r\n this.mediaVaultStreamService = new MediaVaultStreamService(\r\n this.rootStore.apiClient,\r\n this.rootStore.application.baasic\r\n );\r\n this.nakiNigunAlbumFileStreamService = this.rootStore.createApplicationService(NakiNigunAlbumFileStreamService);\r\n }\r\n\r\n async uploadAlbumTrack(albumId, formData) {\r\n await this.service.uploadAlbumTrack(albumId, formData);\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n return this.mediaVaultStreamService.mediaVaultModule.streams.routeDefinition.get(id);\r\n }\r\n\r\n async uploadImageFile(file) {\r\n const now = moment();\r\n const [name, extension] = file.name.split(\".\");\r\n const path = `${name}_${now.year()}-${now.month()}-${now.date()}-${now.hour()}-${now.minute()}-${now.second()}.${extension}`;\r\n const response = await this.mediaVaultStreamService.create(\r\n {\r\n path: path,\r\n fileName: file.name,\r\n },\r\n file\r\n );\r\n return response.data;\r\n }\r\n\r\n getNakiNigunAlbumCoverImageUrl(coverImageId) {\r\n return this.nakiNigunAlbumFileStreamService.routeService.get(coverImageId);\r\n }\r\n\r\n async getNakiNigunAlbum(albumid) {\r\n const response = await this.service.get(albumid);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumTrackEditRouteStore;\r\n"],"sourceRoot":""}