{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.html","./src/app/common/components/alert-dialog/alert-dialog.component.html","./src/app/common/components/app-menu/app-menu.component.html","./src/app/common/components/side-channel-menu/side-channel-menu.component.html","./src/app/common/components/side-menu/side-menu.component.html","./src/app/components/add-user/add-user.component.html","./src/app/components/admin-myself/admin-myself.component.html","./src/app/components/admin-users/admin-users.component.html","./src/app/components/admin/admin.component.html","./src/app/components/edit-category/edit-category.component.html","./src/app/components/edit-channel/edit-channel.component.html","./src/app/components/edit-user/edit-user.component.html","./src/app/components/forgot-password/forgot-password.component.html","./src/app/components/home/home.component.html","./src/app/components/login/login.component.html","./src/app/components/my-profile/my-profile.component.html","./src/app/components/rss-item/rss-item.component.html","./src/app/components/today-feed-item/today-feed-item.component.html","./src/app/components/today-feed-items/today-feed-items.component.html","./src/app/app-routing.module.ts","./src/app/app.component.css","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/common/components/alert-dialog/alert-dialog.component.css","./src/app/common/components/alert-dialog/alert-dialog.component.ts","./src/app/common/components/app-menu/app-menu.component.css","./src/app/common/components/app-menu/app-menu.component.ts","./src/app/common/components/base/base.component.ts","./src/app/common/components/side-channel-menu/side-channel-menu.component.css","./src/app/common/components/side-channel-menu/side-channel-menu.component.ts","./src/app/common/components/side-menu/side-menu.component.css","./src/app/common/components/side-menu/side-menu.component.ts","./src/app/common/services/client-config.service.ts","./src/app/common/services/functions.service.ts","./src/app/common/services/output-data.service.ts","./src/app/common/services/session.service.ts","./src/app/components/add-user/add-user.component.css","./src/app/components/add-user/add-user.component.ts","./src/app/components/admin-myself/admin-myself.component.css","./src/app/components/admin-myself/admin-myself.component.ts","./src/app/components/admin-users/admin-users.component.css","./src/app/components/admin-users/admin-users.component.ts","./src/app/components/admin/admin.component.css","./src/app/components/admin/admin.component.ts","./src/app/components/edit-category/edit-category.component.css","./src/app/components/edit-category/edit-category.component.ts","./src/app/components/edit-channel/edit-channel.component.css","./src/app/components/edit-channel/edit-channel.component.ts","./src/app/components/edit-user/edit-user.component.css","./src/app/components/edit-user/edit-user.component.ts","./src/app/components/forgot-password/forgot-password.component.css","./src/app/components/forgot-password/forgot-password.component.ts","./src/app/components/home/home.component.css","./src/app/components/home/home.component.ts","./src/app/components/login/login.component.css","./src/app/components/login/login.component.ts","./src/app/components/my-profile/my-profile.component.css","./src/app/components/my-profile/my-profile.component.ts","./src/app/components/rss-item/rss-item.component.css","./src/app/components/rss-item/rss-item.component.ts","./src/app/components/today-feed-item/today-feed-item.component.css","./src/app/components/today-feed-item/today-feed-item.component.ts","./src/app/components/today-feed-items/today-feed-items.component.css","./src/app/components/today-feed-items/today-feed-items.component.ts","./src/app/contracts/responseMessage/coreResponseMessage.ts","./src/app/managers/login.service.ts","./src/app/managers/rssFeed.service.ts","./src/app/models/category.ts","./src/app/models/channel.ts","./src/app/models/user.ts","./src/app/repositories/base.repository.ts","./src/app/repositories/category.repository.ts","./src/app/repositories/channel.repository.ts","./src/app/repositories/channelItem.repository.ts","./src/app/repositories/user.repository.ts","./src/app/store/reducers.ts","./src/app/store/store.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","module.exports = \"\\n \\n \\n \\n {{ applicationName }}    rss reader beta\\n \\n \\n \\n
\\n
\\n Log in\\n  or \\n Sign up\\n
\\n Back to Home\\n {{ getWelcome() }}\\n  (Logout)\\n \\n \\n
\\n
\\n
\\n\\n\\n\"","module.exports = \"
\\n
{{ title }}
\\n
{{ this.dataSource }}
\\n
\\n \\n
\\n
\\n \\n
\\n \\n    \\n \\n \\n
\\n
\\n
\"","module.exports = \"
\\n
Home
\\n
Login
\\n
Admin
\\n
Logout
\\n
Clear User
\\n
\\n
Login: {{ nickName }}
\\n
\"","module.exports = \"
\\n today
Today's Feeds
\\n
\\n\\n
\\n bookmarks\\n 0\\\" class=\\\"menu-icon\\\">bookmarks\\n
Bookmarks ({{favoriteItemCount}})
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n
{{subscriptionTitle}}
\\n
\\n\\n
\\n
\\n
   Loading...
\\n
\\n\\n
\\n
\\n
\\n \\n
arrow_right
\\n
{{ category.Name }} ({{ category.Channels.length }})
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
{{ channel.Title }}
\\n
\\n
\\n
\\n
\"","module.exports = \"
\\n
\\n
Administration
\\n
\\n person
Myself
\\n
\\n
\\n people
Users
\\n
\\n
\\n
\\n
User Account
\\n
\\n login
Log in
\\n
\\n
\\n how_to_reg
Sign up
\\n
\\n
\\n
\\n \\n
\\n
\\n\"","module.exports = \"
\\n
Add a new user
\\n \\n \\n \\n Username\\n \\n Username can't be empty!\\n \\n \\n \\n \\n Password\\n \\n Password can't be empty! \\n \\n \\n \\n \\n Active\\n \\n Yes\\n No\\n \\n \\n \\n \\n \\n Role\\n \\n ADMIN\\n MEMBER\\n \\n \\n \\n \\n
\\n \\n
\\n
\\n
\\n \\n   \\n \\n
\\n
\\n
\\n
\\n
\\n
\"","module.exports = \"
\\n
\\n \\n Myself \\n
\\n
\\n \\n Edit username/password\\n \\n
\\n \\n Username\\n \\n Username can't be empty\\n \\n \\n New password\\n \\n Your new password is required. \\n \\n \\n Confirm password\\n \\n Confirm password is required. \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\"","module.exports = \"
\\n
\\n \\n Users \\n
\\n
\\n \\n \\n
\\n
Manage users
\\n
\\n
add
\\n
\\n
\\n \\n
\\n
  Loading data...
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n
Email{{ user.Email }}Role{{ user.Role }}User Log{{ user.IsLoggedIn ? 'In' : 'Out' }}Active{{ user.Active ? 'Active' : 'Inactive' }}Last Activity Date{{ user.LastActivityTime }}Created Date{{ user.CreatedDate }}\\n edit\\n delete\\n
\\n \\n
\\n
\\n
\\n
\\n
\"","module.exports = \"\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n\"","module.exports = \"
\\n
{{data.action}} Subscription Group
\\n \\n \\n \\n Select to {{data.action}}\\n \\n {{categoryItem.Name}}\\n \\n Please choose a subscription group to {{data.action}}\\n \\n \\n \\n \\n Group Name\\n \\n Group Name can't be empty!\\n \\n \\n \\n \\n Group Description\\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n \\n \\n     \\n
\\n
\\n
\\n
\\n
\"","module.exports = \"
\\n
{{data.action}} Subscription
\\n \\n \\n \\n Select subscription to {{data.action.toLowerCase()}}\\n \\n {{channelItem.Title}}\\n \\n Please choose a subscription to {{data.action}}\\n \\n \\n \\n \\n Select group where new subscription belongs to\\n \\n {{categoryItem.Name}}\\n \\n Please select a category for subscription belongs\\n \\n \\n \\n \\n {{data.action}} subscription title\\n \\n Subscription Title can't be empty!\\n \\n \\n \\n \\n {{data.action}} subscription URL\\n \\n Subscription URL can't be empty!\\n \\n \\n \\n \\n
\\n \\n
\\n \\n \\n     \\n
\\n
\\n
\\n
\\n
\"","module.exports = \"
\\n
Edit user
\\n \\n \\n \\n Username\\n \\n Username can't be empty!\\n \\n \\n \\n \\n Password\\n \\n \\n \\n \\n \\n Active \\n \\n Yes\\n No\\n \\n \\n \\n \\n \\n Role\\n \\n \\n \\n \\n \\n Last activity time\\n \\n \\n \\n \\n \\n Created date\\n \\n \\n \\n \\n \\n Logged in\\n \\n \\n \\n \\n
\\n \\n
\\n \\n
\\n \\n   \\n \\n
\\n
\\n
\\n
\\n
\\n
\"","module.exports = \"
\\n
Forgot Password
\\n \\n \\n Please enter your username(email) below then, click Send. Your password will be sent to the email address.\\n \\n \\n \\n Username\\n \\n Username should not empty.\\n \\n \\n \\n
\\n \\n
\\n \\n
\\n \\n   \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\"","module.exports = \"\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\"","module.exports = \"\\n\\n\\n \\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n {{ cardTitle }}\\n \\n
\\n \\n Username \\n \\n Vaild email is required.\\n \\n \\n Password\\n \\n Password is required.\\n \\n \\n Confirm Password\\n \\n Confirm password is required.\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
Update My Profile
\\n \\n Username\\n \\n Valid email is required.\\n \\n \\n New Password\\n \\n Password is required.\\n \\n \\n Confirm New Password\\n \\n Confirm password is required.\\n \\n
\\n \\n
\\n
\\n \\n    \\n
\\n
\\n\"","module.exports = \"
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n   {{ titleToDisplay }}\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n    Loading feeds...\\n \\n \\n \\n \\n \\n \\n {{ item.Title }} \\n \\n \\n \\n
\\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n
\\n {{ currentItem.Title }}\\n
\\n
\\n
{{ currentItem.PublishDate | date:'mediumDate' }}
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","module.exports = \"\\n \\n
{{ dataSource.Tags }}
\\n
\\n
\\n
\\n bookmark_border \\n
\\n
\\n delete_outline\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
{{ dataSource.Title }}
\\n
\\n \\n
\\n
{{ dataSource.PublishDate | date:'mediumDate' }}
\\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n \\n
\\n
{{ loadingStr }}
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\"","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { HomeComponent } from 'src/app/components/home/home.component';\nimport { LoginComponent } from 'src/app/components/login/login.component';\nimport { AdminComponent } from 'src/app/components/admin/admin.component';\n\nconst routes: Routes = [\n { path: 'home', component: HomeComponent },\n { path: 'login/:sideMenu', component: LoginComponent },\n { path: 'admin/:sideMenu', component: AdminComponent },\n { path: '', component: HomeComponent, pathMatch: 'full' }, \n { path: '**', component: HomeComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","module.exports = \".toolbar-menu-text {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXBwLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxlQUFlO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvYXBwLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudG9vbGJhci1tZW51LXRleHQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn0iXX0= */\"","import { Component, OnInit, OnDestroy, HostListener } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MatDialog, MatSnackBar } from '@angular/material';\nimport { Subscription } from 'rxjs';\nimport { LoginComponent } from 'src/app/components/login/login.component';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { environment } from 'src/environments/environment';\nimport { OutputDataService } from 'src/app/common/services/output-data.service';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { ClientConfigService } from './common/services/client-config.service';\nimport { CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage'\nimport { MyProfileComponent } from './components/my-profile/my-profile.component';\n//import { Store } from 'src/app/store/store';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent extends BaseComponent implements OnInit, OnDestroy {\n platformName: string = environment.platformName;\n version: string = environment.platformVersion;\n applicationName: string = environment.titleToDisplay;\n isInLogin: boolean;\n private _onLoginSubscription: Subscription;\n private _menuOpened: boolean;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _outputDataService: OutputDataService,\n private _snackBar: MatSnackBar, private _router: Router) {\n super(route, loginManager, clientConfig, dialog);\n this._menuOpened = true;\n this.isInLogin = false;\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.loginManager.clearUser();\n if (!this.undefinedOrNull(this._onLoginSubscription)) this._onLoginSubscription.unsubscribe();\n }\n\n @HostListener('window:beforeunload', ['$event']) \n onBeforeUnload(event) {\n //console.log(this._loginManager.getLoggedinUser());\n }\n\n routerOutletComponentActivated(component) {\n if (component instanceof LoginComponent) {\n this._onLoginSubscription = component.onLogin.subscribe(x => {\n this.dataSource = this.loginManager.getLoggedinUser();\n });\n this.isInLogin = true;\n }\n\n this._menuOpened = true;\n }\n\n routerOutletComponentDeactivated(component) {\n if (component instanceof LoginComponent) {\n this._onLoginSubscription.unsubscribe();\n this.isInLogin = false;\n }\n }\n\n menuOpenClick() {\n this._menuOpened = !this._menuOpened;\n this._outputDataService.emitMenuOpened(this._menuOpened);\n }\n\n loginClick() {\n this._router.navigate(['/login/signin']);\n this.isInLogin = true;\n }\n\n signupClick() {\n this._router.navigate(['/login/signup']);\n this.isInLogin = true;\n }\n\n backHome() {\n this._router.navigate(['/home']);\n }\n\n async logoutClick() {\n this._snackBar.open('Signing out...');\n let responseMsg = await this.loginManager.logoutAsync();\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this.dataSource = this.loginManager.getLoggedinUser();\n this._snackBar.open('Signed out successfully', 'Ok', { duration: 5000 });\n this._outputDataService.emitLogout(); \n }\n else {\n this._snackBar.open('Failed to sign out: ' + responseMsg.Message, 'Ok', { duration: 5000 });\n this.handleCoreResponseMessageError(responseMsg);\n }\n }\n\n getWelcome(): string { \n if (this.isUserLogged()) { \n let str = this.getLoggedinUser().Email.split('@', 2);\n return 'Welcome, ' + str[0];\n }\n else\n return ''; \n }\n\n myProfile() {\n const dialogRef = this.dialog.open(MyProfileComponent, {\n width: '500px',\n height: '350px',\n data: {\n parentComponent: 'AppComponent',\n dataSource: this.getLoggedinUser()\n }\n });\n\n dialogRef.afterClosed().subscribe(user => {\n if (!this.undefinedOrNull(user)) {\n this.loginManager.setLoggedinUser(user);\n this.dataSource = this.loginManager.getLoggedinUser();\n }\n });\n }\n\n appStoreClick() {\n window.open(this.clientConfig.Configuration.appStoreUrl);\n }\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { AppRoutingModule } from 'src/app/app-routing.module';\nimport { AppComponent } from 'src/app/app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatToolbarModule, MatIconModule, MatSidenavModule, MatListModule, MatButtonModule, MatFormFieldModule, MatInputModule, \n MatCardModule, MatSnackBarModule, MatTableModule, MatPaginatorModule, MatProgressSpinnerModule, MatTooltipModule, \n MatSortModule, MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS, MatGridListModule, MatSelectModule, MatDividerModule,\n } from '@angular/material'; \nimport { MatMenuModule } from '@angular/material/menu'; \nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { FunctionsService, ClientConfigFactory } from 'src/app/common/services/functions.service';\nimport { SessionService } from 'src/app/common/services/session.service';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { OutputDataService } from 'src/app/common/services/output-data.service';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { RssFeedService } from 'src/app/managers/rssFeed.service';\n\nimport { UserRepository } from 'src/app/repositories/user.repository';\nimport { CategoryRepository } from 'src/app/repositories/category.repository';\nimport { ChannelItemRepository } from 'src/app/repositories/channelItem.repository';\nimport { ChannelRepository } from 'src/app/repositories/channel.repository';\n\nimport { HomeComponent } from 'src/app/components/home/home.component';\nimport { LoginComponent } from 'src/app/components/login/login.component';\nimport { AppMenuComponent } from 'src/app/common/components/app-menu/app-menu.component';\nimport { AdminComponent } from './components/admin/admin.component';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { SideMenuComponent } from './common/components/side-menu/side-menu.component';\nimport { AdminMyselfComponent } from './components/admin-myself/admin-myself.component';\nimport { AdminUsersComponent } from './components/admin-users/admin-users.component';\nimport { EditUserComponent } from './components/edit-user/edit-user.component';\nimport { AlertDialogComponent } from './common/components/alert-dialog/alert-dialog.component';\nimport { AddUserComponent } from './components/add-user/add-user.component';\nimport { SideChannelMenuComponent } from 'src/app/common/components/side-channel-menu/side-channel-menu.component';\nimport { RssItemComponent } from './components/rss-item/rss-item.component';\nimport { EditCategoryComponent } from './components/edit-category/edit-category.component';\nimport { EditChannelComponent } from './components/edit-channel/edit-channel.component';\nimport { TodayFeedItemsComponent } from './components/today-feed-items/today-feed-items.component';\nimport { TodayFeedItemComponent } from './components/today-feed-item/today-feed-item.component';\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\nimport { MyProfileComponent } from './components/my-profile/my-profile.component';\n\nimport { Store } from 'src/app/store/store';\n\n@NgModule({\n declarations: [\n AppComponent,\n HomeComponent,\n LoginComponent,\n AppMenuComponent,\n AdminComponent,\n BaseComponent,\n SideMenuComponent,\n AdminMyselfComponent,\n AdminUsersComponent,\n EditUserComponent,\n AlertDialogComponent,\n AddUserComponent,\n SideChannelMenuComponent,\n RssItemComponent,\n EditCategoryComponent,\n EditChannelComponent,\n TodayFeedItemsComponent,\n TodayFeedItemComponent,\n ForgotPasswordComponent,\n MyProfileComponent\n ],\n imports: [\n BrowserModule, \n BrowserAnimationsModule,\n MatToolbarModule,\n MatSidenavModule,\n MatListModule,\n MatButtonModule,\n MatIconModule,\n MatSnackBarModule,\n FlexLayoutModule,\n MatFormFieldModule, \n MatInputModule,\n MatCardModule,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n MatTableModule,\n MatPaginatorModule,\n MatProgressSpinnerModule,\n MatSortModule,\n MatTooltipModule,\n MatDialogModule,\n MatGridListModule,\n MatSelectModule,\n MatDividerModule,\n AppRoutingModule,\n MatMenuModule\n ],\n entryComponents: [\n EditUserComponent,\n AlertDialogComponent,\n AddUserComponent,\n EditCategoryComponent,\n EditChannelComponent,\n ForgotPasswordComponent,\n MyProfileComponent\n ],\n providers: [ // DI for singleton\n SessionService,\n LoginService,\n FunctionsService,\n OutputDataService,\n RssFeedService,\n \n UserRepository,\n CategoryRepository,\n ChannelItemRepository,\n ChannelRepository,\n\n Store,\n\n { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { hasBackdrop: false } },\n { provide: ClientConfigService, useFactory: ClientConfigFactory } \n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbW1vbi9jb21wb25lbnRzL2FsZXJ0LWRpYWxvZy9hbGVydC1kaWFsb2cuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit, OnDestroy, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { AdminUsersComponent } from 'src/app/components/admin-users/admin-users.component';\n\n@Component({\n selector: 'app-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.css']\n})\nexport class AlertDialogComponent implements OnInit, OnDestroy {\n title: string;\n mainActionText: string;\n dataSource: any;\n\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\n }\n\n ngOnInit() {\n this.title = this.data.title;\n this.dataSource = this.data.alertStr;\n this.mainActionText = this.data.mainAction;\n }\n\n ngOnDestroy() {\n }\n\n public okClicked() {\n this.dialogRef.close(this.data.mainAction);\n }\n \n public closeClicked() {\n this.dialogRef.close('Cancel');\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbW1vbi9jb21wb25lbnRzL2FwcC1tZW51L2FwcC1tZW51LmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit, OnChanges, OnDestroy } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { MatSnackBar, MatDialog } from '@angular/material';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\n\n@Component({\n selector: 'app-app-menu',\n templateUrl: './app-menu.component.html',\n styleUrls: ['./app-menu.component.css']\n})\nexport class AppMenuComponent extends BaseComponent implements OnInit, OnChanges, OnDestroy { \n showHome: boolean;\n showLogin: boolean;\n showAdmin: boolean;\n nickName: string;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _router: Router, \n private _snackBar: MatSnackBar) {\n super(route, loginManager, clientConfig, dialog);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.refresh(); \n }\n\n ngOnChanges() {\n this.refresh();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n private refresh() { \n this.showHome = this.parentComponent === 'home' ? false : true;\n this.showLogin = this.parentComponent === 'login' ? false : (this.dataSource.Id === 0 ? true : false);\n this.showAdmin = this.parentComponent === 'admin' ? false : (this.dataSource.Id === 0 ? false: this.dataSource.IsAdmin); \n this.nickName = this.getNickName(); \n }\n\n private getNickName(): string { \n if (this.dataSource.Id !== 0) { \n let str = this.dataSource.Email.split('@', 2);\n return str[0];\n }\n else\n return ''; \n }\n\n async logoutAsync() {\n this._snackBar.open('Signing out...');\n let responseMsg = await this.loginManager.logoutAsync();\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this.dataSource = this.getLoggedinUser();\n this.refresh();\n this._snackBar.open('Signed out successfully', 'Ok', { duration: 5000 }); \n \n /*\n we want to stay in the root url to prevent the error of 404 file or directory not found when users refresh page from a browser. \n this._router.navigate(['/home']);\n */\n this._router.navigate(['']);\n }\n else {\n this._snackBar.open('Failed to sign out: ' + responseMsg.Message, 'Ok', { duration: 5000 });\n this.handleCoreResponseMessageError(responseMsg);\n } \n }\n\n clearUser() {\n this.loginManager.clearUser();\n this.dataSource = this.getLoggedinUser();\n this.refresh();\n\n /*\n we want to stay in the root url to prevent the error of 404 file or directory not found when users refresh page from a browser. \n this._router.navigate(['/home']);\n */\n this._router.navigate(['']);\n }\n}\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { User } from 'src/app/models/user';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { CoreResponseMessage } from 'src/app/contracts/responseMessage/coreResponseMessage'\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { AlertDialogComponent } from 'src/app/common/components/alert-dialog/alert-dialog.component';\nimport { MatDialog } from '@angular/material';\n\n@Component({\n selector: 'app-base',\n template: '' //no html template because this will be used as a base class\n})\nexport class BaseComponent implements OnInit, OnDestroy {\n @Input() parentComponent: string;\n @Input() dataSource: any;\n params: Params;\n dataSourceCallback: () => void;\n private _paramsSubscription: Subscription;\n protected _successMsgDuration: number;\n protected _failMsgDuration: number;\n\n constructor(protected route: ActivatedRoute, protected loginManager: LoginService, protected clientConfig: ClientConfigService,\n protected dialog: MatDialog) {\n this._successMsgDuration = clientConfig.Configuration.successMsgPopupDuration;\n this._failMsgDuration = clientConfig.Configuration.failMsgPopupDuration;\n }\n\n ngOnInit() { \n this._paramsSubscription = this.route.params.subscribe(parameters => {\n this.params = parameters;\n });\n }\n\n ngOnDestroy() {\n if (!this.undefinedOrNull(this._paramsSubscription))\n this._paramsSubscription.unsubscribe();\n }\n\n getLoggedinUser(): User {\n return this.loginManager.getLoggedinUser();\n }\n\n handleCoreResponseMessageError(responseMsg: CoreResponseMessage) {\n console.log(responseMsg);\n }\n\n isUserLogged(): boolean {\n return this.getLoggedinUser().Email !== '';\n }\n\n isUserAdmin(): boolean {\n if (this.isUserLogged()) {\n return this.getLoggedinUser().IsAdmin;\n }\n else\n return false;\n }\n \n openAlertDialog(title: string, alertText: string, widthInCss: string, heightInCss: string, mainAction: string = 'noAction'): any {\n return this.dialog.open(AlertDialogComponent, {\n width: widthInCss,\n height: heightInCss,\n data: {\n title: title,\n mainAction: mainAction,\n alertStr: alertText\n }\n });\n }\n\n undefinedOrNull(value: any): boolean {\n return (value !== undefined && value !== null) ? false : true;\n }\n}","module.exports = \".title { \\r\\n padding-bottom: 15px;\\r\\n}\\r\\n\\r\\n.menu-icon {\\r\\n padding-right: 10px;\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n text-align: left;\\r\\n vertical-align: middle; \\r\\n}\\r\\n\\r\\n.menu {\\r\\n overflow-x: hidden;\\r\\n text-overflow: ellipsis;\\r\\n width: 190px;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.submenu-icon {\\r\\n padding-left: 30px; \\r\\n text-align: left; \\r\\n}\\r\\n\\r\\n.submenu { \\r\\n overflow-x: hidden;\\r\\n text-overflow: ellipsis;\\r\\n width: 160px;\\r\\n text-align: left;\\r\\n padding-left: 10px;\\r\\n font-weight: normal; \\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tbW9uL2NvbXBvbmVudHMvc2lkZS1jaGFubmVsLW1lbnUvc2lkZS1jaGFubmVsLW1lbnUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsdUJBQXVCO0lBQ3ZCLFlBQVk7SUFDWixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixtQkFBbUI7QUFDdkIiLCJmaWxlIjoic3JjL2FwcC9jb21tb24vY29tcG9uZW50cy9zaWRlLWNoYW5uZWwtbWVudS9zaWRlLWNoYW5uZWwtbWVudS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRpdGxlIHsgICAgXHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLm1lbnUtaWNvbiB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgICAgXHJcbn1cclxuXHJcbi5tZW51IHtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgd2lkdGg6IDE5MHB4O1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG5cclxuLnN1Ym1lbnUtaWNvbiB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7ICAgIFxyXG4gICAgdGV4dC1hbGlnbjogbGVmdDsgICAgXHJcbn1cclxuXHJcbi5zdWJtZW51IHsgICAgXHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIHdpZHRoOiAxNjBweDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsOyAgICBcclxufSJdfQ== */\"","import { Component, OnInit, OnDestroy, OnChanges, SimpleChanges, EventEmitter, Input, Output } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog, MatSnackBar } from '@angular/material';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { Channel } from 'src/app/models/channel';\nimport { Category } from 'src/app/models/category';\nimport { environment } from 'src/environments/environment';\nimport { EditCategoryComponent } from 'src/app/components/edit-category/edit-category.component';\nimport { EditChannelComponent } from 'src/app/components/edit-channel/edit-channel.component';\nimport { CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { RssFeedService } from 'src/app/managers/rssFeed.service';\nimport { Store } from 'src/app/store/store';\nimport { ChannelActionType, channelReducer, DisplayModeActionType, displayModeReducer, SubscriptionDisplayModeActionType, subscriptionDisplayModeReducer } from 'src/app/store/reducers';\n\n@Component({\n selector: 'app-side-channel-menu',\n templateUrl: './side-channel-menu.component.html',\n styleUrls: ['./side-channel-menu.component.css']\n})\nexport class SideChannelMenuComponent extends BaseComponent implements OnChanges, OnInit, OnDestroy {\n @Input() loadInProgress: boolean;\n @Input() favoriteItemCount: number;\n defaultChannelImageUrl: string;\n subscriptionTitle: string;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _rssFeedManager: RssFeedService,\n private _snackBar: MatSnackBar, private _store: Store) { \n super(route, loginManager, clientConfig, dialog);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let propName in changes) {\n if (propName === 'dataSource') {\n this.updateSubscriptionTitle();\n }\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.defaultChannelImageUrl = environment.defaultChannelImageUrl;\n this.updateSubscriptionTitle();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n categoryClick(category: Category) {\n if (category.Channels !== null && category.Channels.length > 0) \n this.toggleCategoryForChannels(category.Name);\n }\n\n channelClick(channel: Channel) {\n this._store.dispatch(channelReducer, { type: ChannelActionType.ChannelSelected, payload: channel });\n }\n\n todayFeedsClick() {\n this._store.dispatch(displayModeReducer, { type: DisplayModeActionType.Today });\n }\n\n bookmarksClick() { \n if (this.isUserLogged())\n this._store.dispatch(displayModeReducer, { type: DisplayModeActionType.Favorite });\n else \n this.openAlertDialog('UltraRSS', 'Please login to go to Bookmarks', '400', '300');\n }\n\n categoryMenuClick(menuAction: string) {\n if (!this.isUserLogged()) {\n this.openAlertDialog('UltraRSS', 'Please login to ' + menuAction.toLowerCase() + ' subscription group', '400', '300');\n return;\n }\n\n let heightValue: string;\n\n if (menuAction === 'Add')\n heightValue = '300px';\n else if (menuAction === 'Edit')\n heightValue = '375px';\n else\n heightValue = '225px';\n\n const dialogRef = this.dialog.open(EditCategoryComponent, {\n width: '550px',\n height: heightValue,\n data: {\n parentComponent: 'SideChannelMenuComponent',\n dataSource: this.dataSource,\n action: menuAction\n }\n });\n\n dialogRef.afterClosed().subscribe(updatedCategories => {\n if (updatedCategories !== null && updatedCategories.length > 0) {\n if (menuAction === 'Add')\n this.updateSourceForCategoryAdd(updatedCategories);\n else if (menuAction === 'Edit')\n this.updateSourceForCategoryEdit(updatedCategories);\n else\n this.updateSourceForCategoryRemove(updatedCategories);\n }\n });\n }\n\n channelMenuClick(menuAction: string) { \n if (!this.isUserLogged()) {\n this.openAlertDialog('UltraRSS', 'Please login to ' + menuAction.toLowerCase() + ' subscription', '400', '300');\n return;\n }\n \n if (!this.categoryExist()) {\n this.openAlertDialog('UltraRSS', 'No group or subscription exist to ' + menuAction.toLowerCase(), '400', '300');\n return;\n }\n\n let heightValue: string;\n\n if (menuAction === 'Add')\n heightValue = '375px';\n else if (menuAction === 'Edit')\n heightValue = '375px';\n else\n heightValue = '225px';\n\n const dialogRef = this.dialog.open(EditChannelComponent, {\n width: '550px',\n height: heightValue,\n data: {\n parentComponent: 'SideChannelMenuComponent',\n dataSource: this.dataSource,\n action: menuAction\n }\n });\n\n dialogRef.afterClosed().subscribe(updatedChannels => {\n if (updatedChannels !== null && updatedChannels.length > 0) {\n if (menuAction === 'Add')\n this.updateSourceForChannelAdd(updatedChannels);\n else if (menuAction === 'Edit')\n this.updateSourceForChannelEdit(updatedChannels);\n else\n this.updateSourceForChannelRemove(updatedChannels);\n }\n });\n }\n\n subscriptionDisplayMode(mode) { \n this._store.dispatch(subscriptionDisplayModeReducer, { type: (mode === 'grid' ? SubscriptionDisplayModeActionType.Grid : SubscriptionDisplayModeActionType.List) });\n }\n\n categoryExist(): boolean {\n return (this.dataSource !== undefined && this.dataSource.length > 0) ? true : false;\n }\n\n // isDefaultLoggedin(): boolean {\n // return (this.getLoggedinUser().Email.toLowerCase() === environment.defaultEmail.toLowerCase());\n // }\n\n async refreshTodayFeedsAsync() {\n this._snackBar.open(\"Refreshing today's feeds...\");\n let responseMsg = await this._rssFeedManager.refreshTodayFeedsAsync();\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open(\"Today's feeds have been successfully refreshed.\", 'OK', { duration: this._successMsgDuration });\n }\n else\n this._snackBar.open(\"Failed to refresh today's feeds: \" + responseMsg.Message, 'OK', { duration: this._failMsgDuration });\n }\n\n private updateSubscriptionTitle() {\n if (this.isUserLogged()) {\n this.subscriptionTitle = 'Your Subscriptions';\n }\n else {\n this.subscriptionTitle = 'Subscriptions';\n }\n }\n\n private updateSourceForCategoryEdit(updatedCategories: Category[]) {\n updatedCategories.map(update => {\n for (let index = 0; index < this.dataSource.length; index++) {\n let source = this.dataSource[index];\n\n if (source.Id === update.Id) {\n source.Name = update.Name;\n source.Description = update.Description;\n }\n }\n });\n\n this.dataSource.sort((a, b) => a.Name > b.Name ? 1 : -1);\n }\n\n private updateSourceForChannelEdit(updatedChannels: Channel[]) {\n updatedChannels.map(update => {\n this.dataSource.map(category => {\n category.Channels.map(source => {\n if (source.Id === update.Id) {\n source.Title = update.Title;\n source.ChannelUrl = update.ChannelUrl;\n category.Channels.sort((a, b) => a.Title > b.Title ? 1 : -1);\n }\n });\n });\n });\n }\n\n private updateSourceForCategoryAdd(updatedCategories: Category[]) {\n updatedCategories.map(update => {\n this.dataSource.push(update);\n });\n\n this.dataSource.sort((a, b) => a.Name > b.Name ? 1 : -1);\n }\n\n private updateSourceForChannelAdd(updatedChannels: Channel[]) {\n updatedChannels.map(update => {\n update.Categories.map(category => {\n this.dataSource.map(source => {\n if (source.Id === category.Id) {\n source.Channels.push(update);\n source.Channels.sort((a, b) => a.Title > b.Title ? 1 : -1);\n }\n });\n });\n });\n }\n\n private updateSourceForCategoryRemove(updatedCategories: Category[]) {\n updatedCategories.map(remove => {\n this.dataSource = this.dataSource.filter(c => c.Id !== remove.Id);\n });\n }\n\n private updateSourceForChannelRemove(updatedChannels: Channel[]) {\n updatedChannels.map(update => {\n this.dataSource.map(category => {\n category.Channels = category.Channels.filter(c => c.Id !== update.Id);\n });\n });\n }\n\n private toggleCategoryForChannels(categoryName: string) {\n let arrowDiv = document.getElementById('arrow_' + categoryName);\n\n if (arrowDiv.innerHTML.includes('arrow_right')) {\n //arrowDiv.innerHTML = 'arrow_drop_down';\n arrowDiv.innerHTML = 'arrow_drop_down';\n document.getElementById('channel_' + categoryName).style.display = 'block';\n }\n else {\n //arrowDiv.innerHTML = 'arrow_right';\n arrowDiv.innerHTML = 'arrow_right';\n document.getElementById('channel_' + categoryName).style.display = 'none';\n }\n }\n} ","module.exports = \".title { \\r\\n padding-bottom: 15px;\\r\\n}\\r\\n\\r\\n.menu-icon {\\r\\n padding-right: 10px;\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.menu {\\r\\n overflow-x: hidden;\\r\\n text-overflow: ellipsis;\\r\\n width: 160px;\\r\\n text-align: left;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tbW9uL2NvbXBvbmVudHMvc2lkZS1tZW51L3NpZGUtbWVudS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osZ0JBQWdCO0FBQ3BCIiwiZmlsZSI6InNyYy9hcHAvY29tbW9uL2NvbXBvbmVudHMvc2lkZS1tZW51L3NpZGUtbWVudS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRpdGxlIHsgICAgXHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLm1lbnUtaWNvbiB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4ubWVudSB7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIHdpZHRoOiAxNjBweDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbn0iXX0= */\"","import { Component, OnInit, OnDestroy, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MatSnackBar, MatDialog } from '@angular/material';\nimport { ActivatedRoute } from '@angular/router';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { RssFeedService } from 'src/app/managers/rssFeed.service';\nimport { Channel } from 'src/app/models/channel';\nimport { ChannelItem } from 'src/app/models/channel_item';\nimport { Category } from 'src/app/models/category';\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { OrderBy } from 'src/app/repositories/base.repository';\nimport { OutputDataService } from 'src/app/common/services/output-data.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'app-side-menu',\n templateUrl: './side-menu.component.html',\n styleUrls: ['./side-menu.component.css']\n})\nexport class SideMenuComponent extends BaseComponent implements OnChanges, OnInit, OnDestroy {\n @Input() addedFavoriteChannelItem: ChannelItem;\n @Input() removedFavoriteChannelItem: ChannelItem;\n @Input() isSignIn: boolean;\n categoryLoading: boolean;\n categories: Category[];\n favChannel: Channel;\n favoriteItemCount: number;\n private _onLogoutSubscription: Subscription;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _rssFeedManager: RssFeedService,\n private _snackBar: MatSnackBar, private _outputDataSrv: OutputDataService) { \n super(route, loginManager, clientConfig, dialog);\n this.categoryLoading = false;\n this.categories = [];\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let propName in changes) {\n if (propName === 'addedFavoriteChannelItem') {\n //let change: SimpleChange = changes[propName];\n this.favoriteItemCount += 1;\n }\n else if (propName === 'removedFavoriteChannelItem') {\n this.favoriteItemCount -= 1;\n }\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.parentComponent === 'home') {\n this.loadAllDataAsync();\n }\n\n this._onLogoutSubscription = this._outputDataSrv.onLogout.subscribe(() => {\n this.loadAllDataAsync();\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this._onLogoutSubscription.unsubscribe();\n }\n\n private async loadAllDataAsync() {\n let responseMsg: CoreResponseMessage;\n \n this.categoryLoading = true;\n this.favoriteItemCount = 0;\n this.categories = [];\n responseMsg = await this._rssFeedManager.getCategoriesAllAsync(this.getLoggedinUser(), 0, 0, 'Name', OrderBy.ASC.toString());\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n let favCategories: Category[] = responseMsg.Result.filter(c => c.Name === 'bookmarks');\n\n if (this.isUserLogged()) {\n this.favChannel = favCategories[0].Channels[0];\n this.favoriteItemCount = Number(this.favChannel.ChannelUrl);\n } \n else\n this.favoriteItemCount = 0; \n\n this.categories = responseMsg.Result.filter(c => c.Name !== 'bookmarks');\n }\n else {\n this.favChannel = this.createEmptyFavoriteChannel();\n this.favoriteItemCount = 0;\n\n if (responseMsg.Status !== CoreResponseStatus.NoData) {\n this._snackBar.open('Failed to load subscriptions: ' + responseMsg.Message, 'OK', { duration: this._failMsgDuration });\n this.handleCoreResponseMessageError(responseMsg);\n }\n }\n\n this.categoryLoading = false;\n }\n\n private createEmptyFavoriteChannel(): Channel {\n return { Id: 0, UserId: 0, ChannelUrl: '0', Title: 'Favorite_Builtin', Categories: null, PublishDate: null, ImageUrl: '', Active: false,\n Show: false, ModifiedDate: null, CreatedDate: null };\n }\n}\n","export class ClientConfigService {\r\n Configuration = {\r\n successMsgPopupDuration: 1000,\r\n failMsgPopupDuration: 1000, \r\n baseAppCoreApi: '',\r\n appStoreUrl: ''\r\n };\r\n\r\n AppEncryptConfig = {\r\n AppCore: ''\r\n };\r\n\r\n constructor() {}\r\n}","import { Location } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\r\n\r\nexport class FunctionsService { \r\n constructor(private _location: Location, private _http: HttpClient) {} \r\n\r\n goBack() {\r\n this._location.back();\r\n }\r\n \r\n async getClientIpAsync(): Promise<{ ip: string }> {\r\n let clientIp;\r\n\r\n await this._http.get<{ ip: string }>('https://jsonip.com').toPromise().then(resp => {\r\n clientIp = resp;\r\n }).catch(err => {\r\n clientIp.ip = '';\r\n });\r\n\r\n return clientIp;\r\n }\r\n\r\n deepCopy(obj: T): T {\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n\r\n copyToClipboard(value: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = value;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n\r\n getSubtractionForAppHeight(withAppMenu: boolean): number {\r\n return withAppMenu ? 102 : 66;\r\n }\r\n\r\n isNullOrUndefined(value: object): boolean {\r\n return (value === null || value === undefined) ? true : false;\r\n }\r\n}\r\n\r\nexport const ClientConfigFactory = () => {\r\n const clientConfig = new ClientConfigService();\r\n\r\n const browserWindow = window || {};\r\n const configuration = browserWindow['__configuration'] || {};\r\n const appEncryptConfig = browserWindow['__appEncryptConfig'] || {};\r\n\r\n for (const key in configuration) {\r\n if (configuration.hasOwnProperty(key)) \r\n clientConfig.Configuration[key] = window['__configuration'][key];\r\n }\r\n\r\n for (const key in appEncryptConfig) {\r\n if (appEncryptConfig.hasOwnProperty(key))\r\n clientConfig.AppEncryptConfig[key] = window['__appEncryptConfig'][key];\r\n }\r\n \r\n return clientConfig;\r\n}\r\n\r\n/*\r\n- once you login then, the url will be www.ultrarss.com/home from www.ultrarss.com by appending home. then let's say user refresh the page \r\n from browser, the 404 error will be generated due to the url www.ultrarss.com/home. if it's without home, it's OK.\r\n\r\n \r\n- item card arrange issue with less than or equal to 3 item cards reamined in grid display mode.\r\n- getting the below error time to time. need more detail log data to address the issue.\r\n {Status: 1, Message: \"The user is not validated in the system: 'eunae@ultrarss.com'.\", TotalDataCount: 0, Result: {…}}\r\n Message: \"The user is not validated in the system: 'eunae@ultrarss.com'.\"\r\n Result:\r\n Message: \"\"\r\n Method: \"UserController.GetAuthToken\"\r\n OccurredDate: \"2020-12-14T23:22:11.9405714-06:00\"\r\n transactionId: \"1f31e117-9235-4691-bca3-85adb005d6e9\"\r\n __proto__: Object\r\n Status: 1\r\n TotalDataCount: 0\r\n __proto__: Object\r\n- add initial focus for input field - only edit-category component has an issue.\r\n*/","import { EventEmitter, Output } from '@angular/core';\r\n\r\nexport class OutputDataService {\r\n @Output() onMenuOpened: EventEmitter = new EventEmitter();\r\n @Output() onLogout: EventEmitter = new EventEmitter();\r\n \r\n emitMenuOpened(opened: boolean): void {\r\n this.onMenuOpened.emit(opened);\r\n }\r\n\r\n emitLogout(): void {\r\n this.onLogout.emit();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class SessionService {\r\n get(key: string, fallback: any): any {\r\n let value = sessionStorage.getItem(key); \r\n return (value) ? JSON.parse(value) : fallback;\r\n }\r\n\r\n set(key: string, value: any) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYWRkLXVzZXIvYWRkLXVzZXIuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit, AfterViewInit, OnDestroy, Inject, ElementRef, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatSnackBar } from '@angular/material';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { User } from 'src/app/models/user';\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\n\n@Component({\n selector: 'app-add-user',\n templateUrl: './add-user.component.html',\n styleUrls: ['./add-user.component.css']\n})\nexport class AddUserComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('usernameField', { static: true }) usernameElement: ElementRef;\n userActive: string;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, public dialogRef: MatDialogRef, \n @Inject(MAT_DIALOG_DATA) public data: any, private _snackBar: MatSnackBar) { \n super(route, loginManager, clientConfig, dialog);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.parentComponent = this.data.parentComponent;\n this.initializeUserToAdd();\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.usernameElement.nativeElement.focus();\n }, 0);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy(); \n }\n\n async add() {\n this._snackBar.open('Adding new user...');\n this.dataSource.Active = this.userActive === 'true' ? true : false;\n let responseMsg: CoreResponseMessage = await this.loginManager.addUsersAsync(this.getLoggedinUser(), [ this.dataSource ]);\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open('The user has been added successfully.', 'OK', { duration: this._successMsgDuration });\n }\n else {\n this.handleCoreResponseMessageError(responseMsg);\n this._snackBar.open('Failed to add the user: ' + responseMsg.Message, 'OK');\n }\n\n this.dialogRef.close(responseMsg);\n }\n\n cancel() {\n this.dialogRef.close(null);\n }\n\n private initializeUserToAdd() {\n this.userActive = \"true\";\n\n let user: User = new User();\n user.Active = true;\n user.Role = \"REGULAR\";\n user.ApplicationId = this.getLoggedinUser().ApplicationId;\n\n this.dataSource = user;\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYWRtaW4tbXlzZWxmL2FkbWluLW15c2VsZi5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, AfterViewInit, DoCheck, OnDestroy, Output, EventEmitter, Input, ViewChild, ElementRef } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatSnackBar, MatDrawer, MatDialog } from '@angular/material';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { User } from 'src/app/models/user';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\n\n@Component({\n selector: 'app-admin-myself',\n templateUrl: './admin-myself.component.html',\n styleUrls: ['./admin-myself.component.css']\n})\nexport class AdminMyselfComponent extends BaseComponent implements OnInit, DoCheck, AfterViewInit, OnDestroy {\n @Output() OnUpdate: EventEmitter = new EventEmitter();\n @Input() drawer: MatDrawer;\n @ViewChild('newUsernameField', { static: true }) newUsernameElement: ElementRef;\n newUsername: string;\n newPassword: string;\n confirmPassword: string;\n submittable: boolean; \n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _snackBar: MatSnackBar) {\n super(route, loginManager, clientConfig, dialog);\n this.submittable = false;\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.newUsername = this.getLoggedinUser().Email;\n }\n\n ngDoCheck() {\n this.submittable = this.isSubmittable();\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.newUsernameElement.nativeElement.focus();\n }, 100);\n }\n\n ngDestroy() {\n super.ngOnDestroy();\n }\n\n private isSubmittable(): boolean {\n let submittable: boolean = false;\n\n if (this.newUsername && this.newPassword && this.confirmPassword) {\n if (this.newUsername.length > 0 && this.newPassword.length > 0 && this.confirmPassword.length > 0) {\n if (this.newPassword === this.confirmPassword)\n submittable = true;\n }\n }\n\n return submittable;\n }\n\n toggleDrawer() {\n this.drawer.toggle();\n }\n\n async updateAsync() {\n this._snackBar.open('Updating...'); \n let userToUpdate = new User();\n userToUpdate.Id = this.getLoggedinUser().Id;\n userToUpdate.Email = this.newUsername;\n userToUpdate.Password = this.confirmPassword;\n\n let responseMsg: CoreResponseMessage = await this.loginManager.updateUserAsync(userToUpdate);\n \n if (responseMsg.Status === CoreResponseStatus.OK) {\n this.loginManager.setLoggedinUser(responseMsg.Result);\n let newUser = this.loginManager.getLoggedinUser(); \n this.dataSource = newUser;\n\n this.OnUpdate.emit(this.getLoggedinUser());\n this._snackBar.dismiss();\n }\n else {\n this.openAlertDialog('Edit Myself', responseMsg.Message, '400px', '200px');\n this.handleCoreResponseMessageError(responseMsg); \n }\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYWRtaW4tdXNlcnMvYWRtaW4tdXNlcnMuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit, AfterViewInit, OnDestroy, Input, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDrawer, MatSnackBar, MatSort, MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { MatPaginator } from '@angular/material/paginator'\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { Subscription } from 'rxjs';\nimport { EditUserComponent } from '../edit-user/edit-user.component';\nimport { CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { AddUserComponent } from 'src/app/components/add-user/add-user.component';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\n\n@Component({\n selector: 'app-admin-users',\n templateUrl: './admin-users.component.html',\n styleUrls: ['./admin-users.component.css']\n})\nexport class AdminUsersComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() drawer: MatDrawer;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n\n tableDisplayColumns;\n totalUserCount: number;\n loading: boolean;\n private _pageIndex: number;\n private _pageSize: number;\n private _sortBy: string;\n private _orderBy: string;\n private _paginatorSubscription: Subscription;\n private _sortSubscription: Subscription;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _snackBar: MatSnackBar) {\n super(route, loginManager, clientConfig, dialog); \n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this._pageIndex = 0;\n this._pageSize = 5;\n this.paginator.pageSize = this._pageSize;\n this.paginator.pageIndex = this._pageIndex; \n this._sortBy = \"Email\";\n this._orderBy = \"ASC\";\n this.loadDataSource();\n this.tableDisplayColumns = ['Email', 'Role', 'IsLoggedIn', 'Active', 'LastActivityTime', 'CreatedDate', 'Id']; \n }\n\n ngAfterViewInit() { \n //subscribe to get changes in paginator component in order to load data accordingly.\n this._paginatorSubscription = this.paginator.page.subscribe(() => {\n this._pageIndex = this.paginator.pageIndex;\n this._pageSize = this.paginator.pageSize;\n this.loadDataSource(); \n }); \n \n this._sortSubscription = this.sort.sortChange.subscribe(() => { \n this._sortBy = this.sort.active;\n this._orderBy = this.sort.direction.toString().toUpperCase();\n this.loadDataSource();\n })\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this._paginatorSubscription.unsubscribe();\n this._sortSubscription.unsubscribe();\n }\n\n toggleDrawer() {\n this.drawer.toggle(); \n }\n\n onUserEditClick(user) { \n const dialogRef = this.dialog.open(EditUserComponent, {\n width: '700px',\n height: '450px', \n data: { \n parentComponent: 'AdminUsers',\n dataSource: user\n }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result !== null) \n this.loadDataSource(); \n });\n }\n\n onUserDeleteClick(user) {\n const alertRef = this.openAlertDialog('Confirmation', 'Do you want to continue to delete the user \\'' + user.Email + '\\'?', '400px', '200px', 'Delete');\n\n alertRef.afterClosed().subscribe(result => {\n if (result === 'Delete')\n this.removeUsers([user.Id]);\n }); \n }\n\n onUserAddClick() {\n const dialogRef = this.dialog.open(AddUserComponent, {\n width: '700px',\n height: '300px',\n data: {\n parentComponent: 'AdminUsers'\n }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result !== null)\n this.loadDataSource();\n })\n }\n\n private async removeUsers(deleteUserIds: number[]) {\n this._snackBar.open('Deleting...');\n let responseMsg = await this.loginManager.removeUserAsync(this.getLoggedinUser(), deleteUserIds);\n this._snackBar.dismiss(); \n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open('Success to delete the user.', 'OK', { duration: this._successMsgDuration });\n this.loadDataSource(); \n }\n else {\n this._snackBar.open('Failed to delete the user: ' + responseMsg.Message, 'OK', { duration: this._failMsgDuration });\n this.handleCoreResponseMessageError(responseMsg);\n }\n }\n\n private async loadDataSource() { \n this.loading = true;\n let responseMsg = await this.loginManager.getAllSync(this.getLoggedinUser(), this._pageIndex, this._pageSize, this._sortBy, this._orderBy); \n\n if (responseMsg.Status === CoreResponseStatus.OK) { \n this.dataSource = responseMsg.Result; \n this.totalUserCount = responseMsg.TotalDataCount;\n this.loading = false; \n }\n else {\n this.handleCoreResponseMessageError(responseMsg);\n this.loading = false;\n this._snackBar.open('Failed to load user data: ' + responseMsg.Message, 'OK'); \n }\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYWRtaW4vYWRtaW4uY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit, DoCheck, OnDestroy, ViewChild, HostListener} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog } from '@angular/material';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { MatDrawer } from '@angular/material';\nimport { Subscription } from 'rxjs';\nimport { OutputDataService } from 'src/app/common/services/output-data.service';\n\n@Component({\n selector: 'app-admin',\n templateUrl: './admin.component.html',\n styleUrls: ['./admin.component.css']\n})\nexport class AdminComponent extends BaseComponent implements OnInit, DoCheck, OnDestroy {\n @ViewChild('drawer', { static: true }) drawer: MatDrawer\n private _onMenuOpenedSubscription: Subscription;\n sideMenu: string;\n componentHeight: string;\n \n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _outputDataService: OutputDataService) {\n super(route, loginManager, clientConfig, dialog);\n }\n\n @HostListener('window:resize', ['$event'])\n getScreenSize(event?) {\n this.setComponentHeight();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.refresh();\n this._onMenuOpenedSubscription = this._outputDataService.onMenuOpened.subscribe(x => this.toggleMenu(x));\n this.setComponentHeight();\n }\n\n ngDoCheck() {\n this.refresh();\n }\n \n ngOnDestroy() {\n super.ngOnDestroy();\n this._onMenuOpenedSubscription.unsubscribe();\n }\n\n onMyselfUpdate() {\n }\n\n private refresh() {\n this.sideMenu = this.params['sideMenu'];\n this.dataSource = this.getDataSource(); \n }\n\n private getDataSource(): any {\n if (this.sideMenu === 'myself')\n return this.getLoggedinUser();\n else if (this.sideMenu === 'otherUsers')\n return null; \n else\n return null;\n }\n\n private toggleMenu(opened: boolean): void {\n if (opened)\n this.drawer.open();\n else\n this.drawer.close();\n }\n\n private setComponentHeight() {\n let screenHeight: number = window.innerHeight;\n let screenWidth: number = window.innerWidth;\n this.componentHeight = screenHeight - 128 + 'px'; \n }\n}\n\n\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS9lZGl0LWNhdGVnb3J5LmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit, OnDestroy, Inject, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { MatSnackBar, MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material';\nimport { ActivatedRoute } from '@angular/router';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { SideChannelMenuComponent } from 'src/app/common/components/side-channel-menu/side-channel-menu.component';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { FunctionsService } from 'src/app/common/services/functions.service';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { Category } from 'src/app/models/category';\nimport { Subscription } from 'rxjs';\nimport { RssFeedService } from 'src/app/managers/rssFeed.service';\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\n\n@Component({\n selector: 'app-edit-category',\n templateUrl: './edit-category.component.html',\n styleUrls: ['./edit-category.component.css']\n})\nexport class EditCategoryComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('categoryNameField', { static: true }) categoryElement: ElementRef;\n category: Category;\n updatedCategories: Category[];\n categoryControl = new FormControl('', Validators.required);\n categoryControlSubscription: Subscription;\n selectedId: number;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, public clientConfig: ClientConfigService, dialog: MatDialog,\n private _functionsService: FunctionsService, private _snackBar: MatSnackBar, public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any, private _rssFeedService: RssFeedService) { \n super(route, loginManager, clientConfig, dialog);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.updatedCategories = [];\n\n /*\n Deepcopy data because data from calling component is reference to original data which will take effect when it's changed here.\n */\n this.dataSource = this._functionsService.deepCopy(this.data.dataSource);\n\n if (this.data.action === 'Add')\n this.category = new Category();\n else {\n if (this.dataSource.length > 0) {\n this.category = this._functionsService.deepCopy(this.dataSource[0]);\n this.selectedId = this.category.Id;\n }\n else {\n this.category = new Category();\n this.selectedId = 0;\n }\n }\n\n this.categoryControlSubscription = this.categoryControl.valueChanges.subscribe(x => {\n if (this.dataSource.length > 0) {\n this.category = this._functionsService.deepCopy(this.dataSource.filter(c => c.Id === this.categoryControl.value)[0]);\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.data.action === 'Add') {\n // setTimeout(() => {\n // this.categoryElement.nativeElement.focus();\n // }, 100);\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.categoryControlSubscription.unsubscribe();\n }\n\n enableActionButton(): boolean {\n if (this.data.action === 'Add') {\n if (this.category !== undefined && this.category.Name !== undefined) {\n return this.category.Name.length > 0 ? true : false;\n }\n else\n return false;\n }\n else if (this.data.action === 'Edit') {\n if (this.category !== undefined && this.category.Name !== undefined) {\n return (this.selectedId > 0 && this.category.Name.length > 0) ? true : false;\n }\n else\n return false;\n }\n else if (this.data.action === 'Remove') {\n return this.selectedId > 0 ? true : false;\n }\n }\n\n async actionClick() {\n if (this.data.action === 'Add') {\n if (this.isDupeCategoryName()) {\n let alertStr = \"Can't add the group because the same name already exists\";\n this.openAlertDialog('Add Group', alertStr, '500px', '200px');\n }\n else\n this.addCategory();\n }\n else if (this.data.action === 'Edit') {\n if (this.isDupeCategoryName()) {\n let alertStr = 'The group name \"' + this.category.Name + '\" already exists. Choose other name';\n this.openAlertDialog('Edit Group', alertStr, '500px', '200px');\n }\n else\n this.editCategory();\n }\n else if (this.data.action === 'Remove') {\n if (this.category.Channels.length > 0) {\n let alertStr = \"Can't delete the group because there is a subscription belonging to it\";\n this.openAlertDialog('Remove Group', alertStr, '500px', '200px');\n } \n else\n this.removeCategory();\n }\n }\n\n closeClick() {\n this.dialogRef.close(this.updatedCategories);\n }\n\n private isDupeCategoryName(): boolean {\n return this.dataSource.filter(c => c.Name.toLowerCase() === this.category.Name.toLowerCase()).length > 0 ? true : false;\n }\n\n private async addCategory() {\n let responseMsg: CoreResponseMessage;\n\n this._snackBar.open('Adding...');\n responseMsg = await this._rssFeedService.addCategoryAsync(this.getLoggedinUser(), this.category);\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open('The group has been added.', 'OK', { duration: this._successMsgDuration });\n \n if (this._functionsService.isNullOrUndefined(this.category.Channels))\n this.category.Channels = [];\n\n let insertedCategory = responseMsg.Result[0];\n this.category.Id = insertedCategory.Id;\n\n this.updatedCategories.push(this._functionsService.deepCopy(this.category));\n this.dataSource.push(this._functionsService.deepCopy(this.category));\n this.category = new Category();\n }\n else {\n this._snackBar.open('Failed to add the group: ' + responseMsg.Message, 'OK', { duration: this._failMsgDuration });\n this.handleCoreResponseMessageError(responseMsg);\n }\n }\n\n private async editCategory() {\n let responseMsg: CoreResponseMessage;\n\n this._snackBar.open('Updating...');\n responseMsg = await this._rssFeedService.updateCategoryAsync(this.getLoggedinUser(), this.category);\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open('The group has been updated.', 'OK', { duration: this._successMsgDuration });\n this.updatedCategories.push(this._functionsService.deepCopy(this.category));\n\n for (let index = 0; index < this.dataSource.length; index++) {\n if (this.dataSource[index].Id === this.category.Id) {\n this.dataSource[index].Name = this.category.Name;\n this.dataSource[index].Description = this.category.Description;\n }\n }\n }\n else {\n this._snackBar.open('Failed to update the group: ' + responseMsg.Message, 'OK', { duration: this._failMsgDuration });\n this.handleCoreResponseMessageError(responseMsg);\n }\n }\n\n private async removeCategory() {\n let responseMsg: CoreResponseMessage;\n\n this._snackBar.open('Removing...');\n responseMsg = await this._rssFeedService.removeCategoryAsync(this.getLoggedinUser(), this.category);\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open('The group ' + this.category.Name + ' has been removed.', 'OK', { duration: this._successMsgDuration });\n this.updatedCategories.push(this._functionsService.deepCopy(this.category));\n this.dataSource = this.dataSource.filter(c => c.Id !== this.category.Id);\n\n if (this.dataSource.length > 0) {\n this.category = this._functionsService.deepCopy(this.dataSource[0]);\n this.selectedId = this.category.Id;\n }\n else {\n this.category = new Category();\n this.selectedId = 0;\n }\n }\n else {\n this._snackBar.open('Failed to remove the group: ' + responseMsg.Message, 'OK', { duration: this._successMsgDuration });\n this.handleCoreResponseMessageError(responseMsg);\n }\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZWRpdC1jaGFubmVsL2VkaXQtY2hhbm5lbC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, OnDestroy, Inject } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { MatSnackBar, MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { ActivatedRoute } from '@angular/router';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { SideChannelMenuComponent } from 'src/app/common/components/side-channel-menu/side-channel-menu.component';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { FunctionsService } from 'src/app/common/services/functions.service';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { Category } from 'src/app/models/category';\nimport { Channel } from 'src/app/models/channel';\nimport { Subscription } from 'rxjs';\nimport { RssFeedService } from 'src/app/managers/rssFeed.service';\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\n\n@Component({\n selector: 'app-edit-channel',\n templateUrl: './edit-channel.component.html',\n styleUrls: ['./edit-channel.component.css']\n})\nexport class EditChannelComponent extends BaseComponent implements OnInit, OnDestroy {\n updatedChannels: Channel[];\n channel: Channel;\n channels: Channel[];\n category: Category;\n categories: Category[];\n categoryControl = new FormControl('', Validators.required);\n channelControl = new FormControl('', Validators.required);\n categoryControlSubscription: Subscription;\n channelControlSubscription: Subscription;\n selectedId: number;\n selectedCategoryId: number;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _functionsService: FunctionsService,\n private _snackBar: MatSnackBar, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any,\n private _rssFeedService: RssFeedService) { \n super(route, loginManager, clientConfig, dialog);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.dataSource = this._functionsService.deepCopy(this.data.dataSource);\n this.channels = [];\n this.updatedChannels = [];\n\n this.composeChannels();\n this.categories = this._functionsService.deepCopy(this.data.dataSource);\n\n if (this.data.action === 'Add') {\n this.channel = new Channel();\n this.selectedCategoryId = this.categories[0].Id;\n this.category = this._functionsService.deepCopy(this.categories[0]);\n }\n else {\n if (this.channels.length > 0) {\n this.selectedId = this.channels[0].Id;\n this.channel = this._functionsService.deepCopy(this.channels[0]);\n }\n else {\n this.selectedId = 0;\n this.channel = new Channel();\n }\n }\n\n this.channelControlSubscription = this.channelControl.valueChanges.subscribe(value => {\n if (this.data.action === 'Edit' || this.data.action === 'Remove') {\n if (this.channels.length > 0) {\n this.channel = this._functionsService.deepCopy(this.channels.filter(c => c.Id === this.channelControl.value)[0]);\n }\n }\n });\n\n this.categoryControlSubscription = this.categoryControl.valueChanges.subscribe(value => {\n if (this.data.action === 'Add') {\n this.category = this._functionsService.deepCopy(this.categories.filter(c => c.Id === this.categoryControl.value)[0]);\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.channelControlSubscription.unsubscribe();\n this.categoryControlSubscription.unsubscribe();\n }\n\n enableActionButton(): boolean {\n if (this.data.action === 'Add') {\n if (!this._functionsService.isNullOrUndefined(this.channel) && this.channel.Title !== undefined && this.channel.ChannelUrl !== undefined) \n return (this.selectedCategoryId > 0 && this.channel.Title.length > 0 && this.channel.ChannelUrl.length > 0) ? true : false;\n else\n return false;\n }\n else if (this.data.action === 'Edit') {\n if (!this._functionsService.isNullOrUndefined(this.channel) && this.channel.Title !== undefined && this.channel.ChannelUrl !== undefined) \n return (this.selectedId > 0 && this.channel.Title.length > 0 && this.channel.ChannelUrl.length > 0) ? true : false;\n else\n return false;\n }\n else if (this.data.action === 'Remove') {\n return this.selectedId > 0 ? true : false;\n }\n }\n\n actionClick() {\n if (this.data.action === 'Add') {\n if (this.isDupeChannel(true)) {\n let alertStr = \"Can't add because either the same subscription URL or Title already exists\";\n this.openAlertDialog('Add Subscription', alertStr, '500px', '200px');\n }\n else\n this.addChannel();\n }\n else if (this.data.action === 'Edit') {\n if (this.isDupeChannel(false)) {\n let alertStr = \"Can't update because the same subscription URL/Title already exists\";\n this.openAlertDialog('Edit Subscription', alertStr, '500px', '200px');\n }\n else\n this.editChannel();\n }\n else if (this.data.action === 'Remove') {\n this.removeChannel();\n }\n }\n\n closeClick() {\n this.dialogRef.close(this.updatedChannels);\n }\n\n //The function populates this.channels array\n private composeChannels() {\n this.dataSource.map(category => {\n category.Channels.map(channel => {\n let glChannels = this.channels.filter(c => c.Id === channel.Id);\n\n if (glChannels.length > 0) {\n //channel was already added and exists so add its category to channel.Categories array\n let glChannel: Channel = glChannels[0];\n glChannel.Categories.push(this._functionsService.deepCopy(category));\n }\n else {\n //channel is not available because not added yet\n let glChannel = this._functionsService.deepCopy(channel);\n glChannel.Categories = [];\n glChannel.Categories.push(this._functionsService.deepCopy(category));\n this.channels.push(glChannel); \n }\n });\n });\n\n this.channels.sort((a, b) => a.Title > b.Title ? 1 : -1);\n }\n\n private isDupeChannel(addAction: boolean): boolean {\n let results = this.channels.filter(c => c.ChannelUrl.toLowerCase() === this.channel.ChannelUrl.toLowerCase() \n || c.Title.toLowerCase() === this.channel.Title.toLowerCase())\n if (addAction) {\n return results.length > 0 ? true : false;\n }\n else {\n return results.filter(c => c.Id !== this.channel.Id).length > 0 ? true : false;\n }\n }\n\n private async removeChannel() {\n let responseMsg: CoreResponseMessage;\n\n this._snackBar.open('Removing...');\n responseMsg = await this._rssFeedService.removeChannelAsync(this.getLoggedinUser(), this.channel);\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open('The subscription ' + this.channel.Title + ' has been removed', 'OK', { duration: this._successMsgDuration });\n this.updatedChannels.push(this._functionsService.deepCopy(this.channel));\n this.channels = this.channels.filter(c => c.Id !== this.channel.Id);\n\n if (this.channels.length > 0) {\n this.selectedId = this.channels[0].Id;\n this.channel = this.channels[0];\n }\n else {\n this.selectedId = 0;\n this.channel = new Channel();\n }\n }\n else {\n this._snackBar.open('Failed to remove the subscription: ' + responseMsg.Message, 'OK', { duration: this._failMsgDuration });\n this.handleCoreResponseMessageError(responseMsg);\n }\n }\n\n private async editChannel() {\n let responseMsg: CoreResponseMessage;\n\n this._snackBar.open('Editing...');\n responseMsg = await this._rssFeedService.updateChannelAsync(this.getLoggedinUser(), this.channel);\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open('The subscription has been updated', 'OK', { duration: this._successMsgDuration });\n this.updatedChannels.push(this._functionsService.deepCopy(this.channel));\n\n for (let index = 0; index < this.channels.length; index++) {\n if (this.channels[index].Id === this.channel.Id) {\n this.channels[index].Title = this.channel.Title;\n this.channels[index].ChannelUrl = this.channel.ChannelUrl;\n }\n }\n\n this.channels.sort((a, b) => a.Title > b.Title ? 1 : -1);\n }\n else {\n this._snackBar.open('Failed to edit: ' + responseMsg.Message, 'OK', { duration: this._failMsgDuration });\n this.handleCoreResponseMessageError(responseMsg);\n }\n }\n\n private async addChannel() {\n let responseMsg: CoreResponseMessage; \n\n this._snackBar.open('Adding subscription. Please wait...');\n this.channel.Categories = [this._functionsService.deepCopy(this.category)];\n responseMsg = await this._rssFeedService.addChannelAsync(this.getLoggedinUser(), this.channel);\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open('The subscription has been added', 'OK', { duration: this._successMsgDuration });\n\n let insertedChannel = responseMsg.Result[0];\n this.channel.Id = insertedChannel.Id;\n this.channel.ImageUrl = insertedChannel.ImageUrl;\n\n this.updatedChannels.push(this._functionsService.deepCopy(this.channel));\n this.channels.push(this._functionsService.deepCopy(this.channel));\n this.channel = new Channel();\n\n this.channels.sort((a, b) => a.Title > b.Title ? 1 : -1);\n }\n else {\n this.openAlertDialog('Add Channel', 'Failed to add: ' + responseMsg.Message, '400px', '200px');\n }\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZWRpdC11c2VyL2VkaXQtdXNlci5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, AfterViewInit, OnDestroy, Inject, ElementRef, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatSnackBar } from '@angular/material';\nimport { AdminUsersComponent } from '../admin-users/admin-users.component';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { User } from 'src/app/models/user';\nimport { FunctionsService } from 'src/app/common/services/functions.service';\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\n\n@Component({\n selector: 'app-edit-user',\n templateUrl: './edit-user.component.html',\n styleUrls: ['./edit-user.component.css']\n})\nexport class EditUserComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('usernameField', { static: true }) userNameElement: ElementRef;\n userToUpdate: User;\n isUserActive: string; \n isLoggedin: string; \n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _functionsService: FunctionsService, \n private _snackBar: MatSnackBar, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\n super(route, loginManager, clientConfig, dialog);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.parentComponent = this.data.parentComponent;\n this.dataSource = this.data.dataSource;\n this.userToUpdate = this._functionsService.deepCopy(this.dataSource);\n this.isUserActive = String(this.userToUpdate.Active); \n this.isLoggedin = String(this.userToUpdate.IsLoggedIn) === 'true' ? 'Yes' : 'No'; \n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.userNameElement.nativeElement.focus();\n }, 0)\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n async update() {\n this.userToUpdate.Active = this.isUserActive === 'true' ? true : false;\n this.userToUpdate.Role = null;\n this.userToUpdate.IsLoggedIn = null;\n this.userToUpdate.LastActivityTime = null;\n this.userToUpdate.CreatedDate = null;\n this.userToUpdate.ApplicationId = 0;\n this.userToUpdate.ApplicationName = null;\n this.userToUpdate.ApplicationKey = null;\n this.userToUpdate.IsAdmin = null;\n\n this._snackBar.open('Updating...');\n let responseMsg: CoreResponseMessage = await this.loginManager.updateUserAsync(this.userToUpdate);\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open('The user has been updated successfully.', 'OK', { duration: this._successMsgDuration }); \n }\n else {\n this.handleCoreResponseMessageError(responseMsg);\n let alertStr = 'Failed to update the user: ' + responseMsg.Message;\n this.openAlertDialog('Edit User', alertStr, '400px', '200px');\n }\n\n this.dialogRef.close(responseMsg);\n }\n\n cancel() { \n this.dialogRef.close(null);\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, AfterViewInit, OnDestroy, Inject, ViewChild, ElementRef } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatSnackBar } from '@angular/material';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { FunctionsService } from 'src/app/common/services/functions.service';\nimport { CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { LoginComponent } from 'src/app/components/login/login.component';\n\n@Component({\n selector: 'app-forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrls: ['./forgot-password.component.css']\n})\nexport class ForgotPasswordComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('userNameField', { static: true }) userNameElement: ElementRef;\n email: string;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, functionsService: FunctionsService,\n private _snackBar: MatSnackBar, private _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) private _data: any) { \n super(route, loginManager, clientConfig, dialog);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.parentComponent = this._data.parentComponent;\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.userNameElement.nativeElement.focus();\n }, 0);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n readyToSend(): boolean {\n return (this.email !== undefined && this.email.length > 0) ? true : false;\n }\n\n async sendPassword() {\n this._snackBar.open('Sending...');\n let resposneMsg = await this.loginManager.sendEmailPasswordAsync(this.email);\n this._snackBar.dismiss();\n\n if (resposneMsg.Status === CoreResponseStatus.OK) {\n this.openAlertDialog('Send Password', 'Your password has been successfully sent to the email ' + this.email, '400px', '200px');\n this._dialogRef.close(this.email);\n }\n else {\n this.openAlertDialog('Send Password', 'Failed to send your password: ' + resposneMsg.Message, '400px', '200px');\n this._dialogRef.close('');\n }\n }\n\n cancel() {\n this._dialogRef.close('');\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvaG9tZS9ob21lLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit, OnDestroy, ViewChild, HostListener } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { MatDialog, MatDrawer } from '@angular/material';\nimport { OutputDataService } from 'src/app/common/services/output-data.service';\nimport { Subscription } from 'rxjs';\nimport { ChannelItem } from 'src/app/models/channel_item';\nimport { FunctionsService } from 'src/app/common/services/functions.service';\nimport { DisplayModeActionType, displayModeReducer, SubscriptionDisplayModeActionType } from 'src/app/store/reducers';\nimport { Store, UnsubscribeCallback } from 'src/app/store/store';\n\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\nexport class HomeComponent extends BaseComponent implements OnInit, OnDestroy {\n @ViewChild('drawer', { static: true }) drawer: MatDrawer;\n addedFavoriteChannelItem: ChannelItem;\n removedFavoriteChannelItem: ChannelItem;\n componentHeight: string;\n displayMode: DisplayModeActionType;\n subDisplayMode: SubscriptionDisplayModeActionType;\n private _onMenuOpenedSubscription: Subscription;\n private _onLogoutSubscription: Subscription;\n private _unsubscribeSubscriptionDisplayModeState: UnsubscribeCallback;\n private _unsubscribeDisplayModeState: UnsubscribeCallback;\n private _unsubscribeChannelState: UnsubscribeCallback;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _outputDataService: OutputDataService,\n private _functionsService: FunctionsService, private _store: Store) {\n super(route, loginManager, clientConfig, dialog); \n this.setComponentHeight();\n\n this._unsubscribeSubscriptionDisplayModeState = this._store.subscribeSubscriptionDisplayModeState(() => {\n this.subDisplayMode = this._store.getSubscriptionDisplayModeState();\n });\n\n this._unsubscribeDisplayModeState = this._store.subscribeDisplayModeState(() => {\n this.displayMode = this._store.getDisplayModeState();\n });\n\n this._unsubscribeChannelState = this._store.subscribeChannelState(() => {\n this.displayMode = this._store.getDisplayModeState();\n });\n }\n\n @HostListener('window:resize', ['$event'])\n getScreenSize(event?) {\n this.setComponentHeight();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this._onMenuOpenedSubscription = this._outputDataService.onMenuOpened.subscribe(x => this.toggleMenu(x));\n\n this._onLogoutSubscription = this._outputDataService.onLogout.subscribe(() => { \n this._store.dispatch(displayModeReducer, { type: DisplayModeActionType.Today });\n this.displayMode = this._store.getDisplayModeState();\n });\n\n this.dataSource = this.getLoggedinUser();\n this.displayMode = this._store.getDisplayModeState();\n this.subDisplayMode = this._store.getSubscriptionDisplayModeState();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this._onMenuOpenedSubscription.unsubscribe();\n this._onLogoutSubscription.unsubscribe();\n this._unsubscribeSubscriptionDisplayModeState();\n this._unsubscribeChannelState();\n this._unsubscribeDisplayModeState();\n }\n \n favoriteItemAdded(channelItem) {\n this.addedFavoriteChannelItem = channelItem;\n }\n\n favoriteItemRemoved(channelItem) {\n this.removedFavoriteChannelItem = channelItem;\n }\n\n private toggleMenu(opened: boolean) {\n if (opened)\n this.drawer.open();\n else\n this.drawer.close();\n }\n\n private setComponentHeight() {\n let screenHeight: number = window.innerHeight;\n let screenWidth: number = window.innerWidth;\n this.componentHeight = screenHeight - this._functionsService.getSubtractionForAppHeight(this.isUserAdmin()) + 'px';\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LmNzcyJ9 */\"","import { Component, Output, EventEmitter, ViewChild, OnInit, DoCheck, AfterViewInit, OnDestroy, HostListener, ElementRef } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatDrawer, MatDialog } from '@angular/material';\nimport { User } from 'src/app/models/user';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { FunctionsService } from 'src/app/common/services/functions.service';\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { OutputDataService } from 'src/app/common/services/output-data.service';\nimport { Subscription } from 'rxjs';\nimport { ForgotPasswordComponent } from 'src/app/components/forgot-password/forgot-password.component';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent extends BaseComponent implements OnInit, DoCheck, AfterViewInit, OnDestroy {\n @Output() onLogin: EventEmitter = new EventEmitter();\n @ViewChild('drawer', { static: true }) drawer: MatDrawer;\n @ViewChild('userNameField', { static: true }) userNameElement: ElementRef;\n private _onMenuOpenedSubscription: Subscription;\n email: string;\n password: string;\n confirmPassword: string;\n submittable: boolean;\n componentHeight: string;\n isLogin: boolean;\n cardTitle: string;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _functionsService: FunctionsService,\n private _snackBar: MatSnackBar, private _router: Router, private _outputDataService: OutputDataService) {\n super(route, loginManager, clientConfig, dialog);\n this.setComponentHeight();\n }\n\n @HostListener('window:resize', ['$event'])\n getScreenSize(event?) {\n this.setComponentHeight();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.dataSource = this.getLoggedinUser(); \n this.email = this.dataSource.EmailAddress; \n this.password = '';\n this.submittable = this.isSubmittable();\n this._onMenuOpenedSubscription = this._outputDataService.onMenuOpened.subscribe(x => this.toggleMenu(x));\n \n if (this.params['sideMenu'] === 'signin') {\n this.cardTitle = \"Log in\";\n this.isLogin = true;\n }\n else {\n this.cardTitle = \"Sign up\";\n this.isLogin = false;\n }\n }\n\n ngDoCheck() { \n this.submittable = this.isSubmittable();\n \n if (this.params['sideMenu'] === 'signin') {\n this.cardTitle = \"Log in\";\n this.isLogin = true;\n }\n else {\n this.cardTitle = \"Sign up\";\n this.isLogin = false;\n }\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.userNameElement.nativeElement.focus();\n }, 0);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this._onMenuOpenedSubscription.unsubscribe();\n }\n\n submitAction() {\n if (this.isLogin)\n this.submitLoginAsync();\n else\n this.submitSignupAsync();\n }\n\n async submitLoginAsync() {\n this._snackBar.open('Logging in...');\n let coreResponseMsg = await this.loginManager.loginAsync(this.email, this.password);\n this._snackBar.dismiss();\n\n if (coreResponseMsg.Status === CoreResponseStatus.OK) {\n this.dataSource = this.getLoggedinUser();\n let name = this.dataSource.Email.split('@', 2);\n this.onLogin.emit(this.dataSource);\n this._snackBar.open('Welcome ' + name[0] + '!', 'OK', { duration: this._successMsgDuration });\n \n /*\n we want to stay in the root url to prevent the error of 404 file or directory not found when users refresh page from a browser. \n this._router.navigate(['/home']);\n */\n this._router.navigate(['']);\n } \n else {\n let alertStr = coreResponseMsg.Message + ' Please try again with correct username and password.';\n this.openAlertDialog('Log in', alertStr, '400px', '235px');\n this.handleCoreResponseMessageError(coreResponseMsg);\n }\n }\n\n async submitSignupAsync() {\n if (this.password !== this.confirmPassword) {\n this.openAlertDialog('Sign up', \"Passwords don't match\", '350px', '200px');\n return;\n }\n\n this._snackBar.open('Signing up and configuring for the first time...');\n let coreResponseMsg = await this.loginManager.signupAsync(this.email, this.password);\n this._snackBar.dismiss();\n\n if (coreResponseMsg.Status === CoreResponseStatus.OK) {\n this.dataSource = this.getLoggedinUser();\n let name = this.dataSource.Email.split('@', 2);\n this.onLogin.emit(this.dataSource);\n this._snackBar.open('Signup completed successfully. Welcome ' + name[0] + '!', 'OK', { duration: this._successMsgDuration });\n \n /*\n we want to stay in the root url to prevent the error of 404 file or directory not found when users refresh page from a browser. \n this._router.navigate(['/home']);\n */\n this._router.navigate(['']);\n } \n else {\n let alertStr = coreResponseMsg.Message + ' Signning up got failed. Please try again.';\n this.openAlertDialog('Sign up', alertStr, '400px', '215px');\n this.handleCoreResponseMessageError(coreResponseMsg);\n }\n }\n\n cancel(): void {\n //this._functionsService.goBack();\n \n /*\n we want to stay in the root url to prevent the error of 404 file or directory not found when users refresh page from a browser. \n this._router.navigate(['/home']);\n */\n this._router.navigate(['']);\n }\n\n forgotPasswordClick() {\n const dialogRef = this.dialog.open(ForgotPasswordComponent, {\n width: '540px',\n height: '300px',\n data: {\n parentComponent: 'LoginComponent'\n }\n });\n\n dialogRef.afterClosed().subscribe(userEmail => {\n if (userEmail !== '') {\n this.email = userEmail;\n }\n });\n }\n\n private isSubmittable(): boolean { \n if (this.email && this.password)\n return this.email.length > 0 && this.password.length > 0; \n else\n return false;\n }\n\n private toggleMenu(opened: boolean): void {\n if (opened)\n this.drawer.open();\n else\n this.drawer.close();\n }\n\n private setComponentHeight() {\n let screenHeight: number = window.innerHeight;\n let screenWidth: number = window.innerWidth;\n this.componentHeight = screenHeight - this._functionsService.getSubtractionForAppHeight(this.isUserAdmin()) + 'px'; \n }\n\n private cleanupInputs() {\n this.email = '';\n this.password = '';\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbXktcHJvZmlsZS9teS1wcm9maWxlLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MatSnackBar, MAT_DIALOG_DATA } from '@angular/material';\nimport { ActivatedRoute } from '@angular/router';\nimport { AppComponent } from 'src/app/app.component';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { FunctionsService } from 'src/app/common/services/functions.service';\nimport { CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { LoginService } from 'src/app/managers/login.service';\n\n@Component({\n selector: 'app-my-profile',\n templateUrl: './my-profile.component.html',\n styleUrls: ['./my-profile.component.css']\n})\nexport class MyProfileComponent extends BaseComponent implements OnInit, OnDestroy {\n email: string;\n password: string;\n confirmPassword: string;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, \n private _functionsService: FunctionsService, private _snackBar: MatSnackBar, private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private _data: any) { \n super(route, loginManager, clientConfig, dialog);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.email = this._data.dataSource.Email;\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n enableUpdateButton(): boolean {\n let enable = false;\n\n if (!this.undefinedOrNull(this.email) && this.email.length > 0) {\n if (!this.undefinedOrNull(this.password) && this.password.length > 0) {\n if (!this.undefinedOrNull(this.confirmPassword) && this.confirmPassword.length > 0)\n enable = true;\n }\n }\n\n return enable;\n }\n\n async updateUser() {\n if (this.password !== this.confirmPassword) {\n this.openAlertDialog('Update Profile', \"Passwords don't match.\", '350px', '200px');\n return;\n }\n\n this._snackBar.open('Updating profile. Please wait...');\n let responseMsg = await this.loginManager.updateSelfAsync(this.email, this.password);\n this._snackBar.dismiss();\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this._snackBar.open('Your profile updated successfully.', 'OK', { duration: this._successMsgDuration });\n this.dialogRef.close(responseMsg.Result);\n }\n else {\n this.openAlertDialog('Update Profile', 'Failed to update: ' + responseMsg.Message, '350px', '250px');\n this.dialogRef.close(null);\n }\n }\n\n close() {\n this.dialogRef.close(null);\n }\n}\n","module.exports = \"mat-grid-list {\\r\\n width: 400px;\\r\\n}\\r\\n\\r\\nmat-grid-tile span {\\r\\n padding-left: 10px;\\r\\n font-size: 14px;\\r\\n width: 250px;\\r\\n height: 70px;\\r\\n /* text-overflow: ellipsis; */\\r\\n overflow: hidden;\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 4;\\r\\n -webkit-box-orient: vertical;\\r\\n}\\r\\n\\r\\nmat-grid-tile img {\\r\\n width: 150px;\\r\\n height: 70px;\\r\\n padding-left: 10px;\\r\\n}\\r\\n\\r\\n.item-title:hover {\\r\\n cursor: pointer;\\r\\n background-color: #e9edf5;\\r\\n}\\r\\n\\r\\n.font-loading {\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.icon-button-divider { \\r\\n height: 17px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yc3MtaXRlbS9yc3MtaXRlbS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsWUFBWTtJQUNaLFlBQVk7SUFDWiw2QkFBNkI7SUFDN0IsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIsNEJBQTRCO0FBQ2hDOztBQUVBO0lBQ0ksWUFBWTtJQUNaLFlBQVk7SUFDWixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLFlBQVk7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3Jzcy1pdGVtL3Jzcy1pdGVtLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJtYXQtZ3JpZC1saXN0IHtcclxuICAgIHdpZHRoOiA0MDBweDtcclxufVxyXG5cclxubWF0LWdyaWQtdGlsZSBzcGFuIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIHdpZHRoOiAyNTBweDtcclxuICAgIGhlaWdodDogNzBweDtcclxuICAgIC8qIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyAqL1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiA0O1xyXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcclxufVxyXG5cclxubWF0LWdyaWQtdGlsZSBpbWcge1xyXG4gICAgd2lkdGg6IDE1MHB4O1xyXG4gICAgaGVpZ2h0OiA3MHB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG59XHJcblxyXG4uaXRlbS10aXRsZTpob3ZlciB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllZGY1O1xyXG59XHJcblxyXG4uZm9udC1sb2FkaW5nIHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxufVxyXG5cclxuLmljb24tYnV0dG9uLWRpdmlkZXIgeyAgICBcclxuICAgIGhlaWdodDogMTdweDtcclxufSJdfQ== */\"","import { Component, OnInit, OnDestroy, OnChanges, Input, SimpleChange, SimpleChanges, HostListener, Output, EventEmitter } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatSnackBar, MatDialog } from '@angular/material';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { Channel } from 'src/app/models/channel';\nimport { ChannelItem } from 'src/app/models/channel_item';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { FunctionsService } from 'src/app/common/services/functions.service';\nimport { RssFeedService } from 'src/app/managers/rssFeed.service';\nimport { environment } from 'src/environments/environment';\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { OrderBy } from 'src/app/repositories/base.repository';\nimport { Store, UnsubscribeCallback } from 'src/app/store/store';\nimport { SubscriptionDisplayModeActionType } from 'src/app/store/reducers';\n\n@Component({\n selector: 'app-rss-item',\n templateUrl: './rss-item.component.html',\n styleUrls: ['./rss-item.component.css']\n})\nexport class RssItemComponent extends BaseComponent implements OnInit, OnDestroy, OnChanges {\n @Output() onFavoriteItemAdded: EventEmitter = new EventEmitter();\n @Output() onFavoriteItemRemoved: EventEmitter = new EventEmitter();\n @Input() channel: Channel;\n componentHeight: string;\n loading: boolean;\n defaultChannelImageUrl: string;\n defaultChannelItemImageUrl: string;\n itemSingleClicked: boolean; \n currentItem: ChannelItem;\n titleToDisplay: string;\n private _onInitCalled: boolean;\n private _channelStoreUnsubscription: UnsubscribeCallback; \n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _rssFeedService: RssFeedService,\n private _snackBar: MatSnackBar, private _functionsService: FunctionsService, private _store: Store) { \n super(route, loginManager, clientConfig, dialog);\n this.titleToDisplay = '';\n this._onInitCalled = false;\n\n this._channelStoreUnsubscription = this._store.subscribeChannelState(() => {\n if (this._store.getSubscriptionDisplayModeState() === SubscriptionDisplayModeActionType.List) {\n this.channel = this._store.getChannelState();\n this.loadChannelItemsAsync();\n } \n });\n }\n\n @HostListener('window:resize', ['$event'])\n getScreenSize(event?) {\n this.adjustComponentSize();\n }\n\n ngOnChanges(changes: SimpleChanges) { \n for (let propName in changes) {\n if (propName === 'channel') { \n let change = changes[propName];\n\n if (this.isChannelChanged(change)) {\n if (this._onInitCalled)\n this.loadChannelItemsAsync();\n }\n } \n }\n }\n\n //ngOnInit is called only once after ngOnChanges\n ngOnInit() {\n super.ngOnInit();\n this.adjustComponentSize();\n this.loading = false;\n this.dataSource = []; \n this.defaultChannelImageUrl = environment.defaultChannelImageUrl;\n this.defaultChannelItemImageUrl = environment.defaultChannelItemImageUrl;\n this.itemSingleClicked = false; \n this.currentItem = null;\n this.channel = this._store.getChannelState();\n this.loadChannelItemsAsync();\n this._onInitCalled = true;\n\n //force triggering javascript event 'resize' to prevent the layout issue in the mat-drawer section.\n //the issue is that for some browsers, when a vertical scroll bar in side-channel-menu appears, it occupies small space in the mat-drawer area, resulting in\n //covering a portion of content in the mat-drawer \n window.dispatchEvent(new Event('resize'));\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this._channelStoreUnsubscription();\n }\n\n itemClick(itemId: number) { \n this.itemSingleClicked = true;\n setTimeout(() => {\n if (this.itemSingleClicked) {\n let channelItems: ChannelItem[] = this.dataSource;\n this.currentItem = channelItems.find(item => item.Id === itemId);\n }\n }, 250);\n }\n\n itemDoubleClick(itemId: number) {\n this.itemSingleClicked = false;\n let channelItems: ChannelItem[] = this.dataSource;\n let channelItem = channelItems.find(i => i.Id === itemId);\n window.open(channelItem.ItemUrl);\n }\n\n refreshChannelItems() {\n this.loadChannelItemsAsync();\n }\n\n openInNewTab() {\n if (this.currentItem !== null) {\n window.open(this.currentItem.ItemUrl);\n } \n }\n\n copyToClipboard() {\n if (this.currentItem !== null) { \n this._functionsService.copyToClipboard(this.currentItem.ItemUrl);\n this._snackBar.open('The item URL has been copied to Clipboard', 'OK', { duration: this._successMsgDuration });\n } \n }\n\n async addToFavorite() {\n if (this.currentItem !== null) {\n let items: ChannelItem[] = [];\n this.currentItem.Tags = this.channel.Title;\n items.push(this.currentItem);\n let coreRespMsg = await this._rssFeedService.addChannelItemsToFavoriteAsync(this.getLoggedinUser(), items);\n\n if (coreRespMsg.Status === CoreResponseStatus.OK) {\n this.onFavoriteItemAdded.emit(this.currentItem);\n this._snackBar.open('The subscription item bookmarked.', 'OK', { duration: this._successMsgDuration });\n } \n else {\n this._snackBar.open('Failed to add the subscription item: ' + coreRespMsg.Message, 'OK', { duration: this._failMsgDuration });\n }\n }\n }\n\n async removeFromFavorite() {\n if (this.currentItem !== null) {\n let coreRespMsg = await this._rssFeedService.removeChannelItemFromFavoriteAsync(this.getLoggedinUser(), this.currentItem);\n\n if (coreRespMsg.Status === CoreResponseStatus.OK) {\n let channelItems = this.dataSource.filter(x => x.Id !== this.currentItem.Id);\n this.dataSource = channelItems;\n this.onFavoriteItemRemoved.emit(this.currentItem);\n this._snackBar.open('The item has been removed.', 'OK', { duration: this._successMsgDuration });\n }\n else {\n this._snackBar.open('Failed to remove the channel item: ' + coreRespMsg.Message, 'OK', { duration: this._failMsgDuration });\n }\n }\n }\n\n isItemAvail(): boolean {\n return this.currentItem !== null;\n }\n\n isBookmarkItem(): boolean {\n if (this.currentItem !== null && this.titleToDisplay === \"Bookmarks\")\n return true;\n else\n return false;\n }\n \n private isChannelChanged(change: SimpleChange): boolean {\n let update: boolean = false;\n let prevChannel: Channel = change.previousValue;\n let currChannel: Channel = change.currentValue;\n \n if (currChannel !== undefined) {\n if (prevChannel === undefined)\n update = true;\n else if (prevChannel.Title !== currChannel.Title)\n update = true;\n }\n\n return update;\n }\n\n private async loadChannelItemsAsync() {\n this.loading = true;\n this.dataSource = [];\n this.currentItem = null;\n let channelItems: ChannelItem[]; \n let coreRespMsg: CoreResponseMessage; \n \n if (this.channel.Title === 'Favorite_Builtin') {\n this.titleToDisplay = \"Bookmarks\"\n coreRespMsg = await this._rssFeedService.getFavoriteItemsAsync(this.getLoggedinUser(), 0, 0, 'PublishDate', OrderBy.DESC.toString());\n }\n else {\n this.titleToDisplay = this.channel.Title;\n coreRespMsg = await this._rssFeedService.loadRssItemsAsync(this.getLoggedinUser(), this.channel);\n }\n\n if (coreRespMsg.Status === CoreResponseStatus.OK)\n channelItems = coreRespMsg.Result; \n else {\n channelItems = [];\n\n if (coreRespMsg.Status !== CoreResponseStatus.NoData) {\n this._snackBar.open('Failed to load feeds: ' + coreRespMsg.Message, 'OK', { duration: this._failMsgDuration });\n this.handleCoreResponseMessageError(coreRespMsg);\n } \n } \n \n this.dataSource = channelItems; \n this.loading = false;\n }\n\n private setChannelItems(coreRespMsg: CoreResponseMessage): ChannelItem[] {\n let channelItems: ChannelItem[] = coreRespMsg.Result;\n\n channelItems.forEach(x => {\n let rex = /]+src=\"([^\">]+)/g;\n let imageUrls = [];\n let m;\n\n while (m = rex.exec(x.Description)) {\n imageUrls.push(m[1]);\n }\n\n x.ImageUrl = imageUrls[0];\n });\n\n return channelItems;\n }\n\n private adjustComponentSize() {\n let screenHeight: number = window.innerHeight;\n let screenWidth: number = window.innerWidth;\n\n this.componentHeight = screenHeight - this._functionsService.getSubtractionForAppHeight(this.isUserAdmin()) + 'px';\n }\n}\n","module.exports = \".feed-title {\\n overflow-y: hidden;\\n height: 50px;\\n text-overflow: elipsis;\\n padding: 2px 0px 0px 0px;\\n} \\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90b2RheS1mZWVkLWl0ZW0vdG9kYXktZmVlZC1pdGVtLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLHNCQUFzQjtJQUN0Qix3QkFBd0I7QUFDNUIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3RvZGF5LWZlZWQtaXRlbS90b2RheS1mZWVkLWl0ZW0uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mZWVkLXRpdGxlIHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsaXBzaXM7XG4gICAgcGFkZGluZzogMnB4IDBweCAwcHggMHB4O1xufSAiXX0= */\"","import { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog, MatSnackBar } from '@angular/material';\nimport { ChannelItem } from 'src/app/models/channel_item';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { environment } from 'src/environments/environment';\nimport { RssFeedService } from 'src/app/managers/rssFeed.service';\nimport { CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\n\n@Component({\n selector: 'app-today-feed-item',\n templateUrl: './today-feed-item.component.html',\n styleUrls: ['./today-feed-item.component.css']\n})\nexport class TodayFeedItemComponent extends BaseComponent implements OnInit, OnDestroy {\n @Input() channelItem: ChannelItem;\n @Input() itemImageWidth: string;\n @Input() itemImageHeight: string;\n @Input() cardSizeWidth: string;\n @Input() cardSizeHeight: string;\n @Input() isFavoriteItem: boolean;\n @Output() onFavoriteItemAdded: EventEmitter;\n @Output() onFavoriteItemRemove: EventEmitter;\n defaultImageUrl: string;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _rssFeedService: RssFeedService,\n private _snackBar: MatSnackBar) { \n super(route, loginManager, clientConfig, dialog);\n\n this.onFavoriteItemAdded = new EventEmitter();\n this.onFavoriteItemRemove = new EventEmitter();;\n this.defaultImageUrl = environment.defaultChannelItemImageUrl;\n }\n\n ngOnInit() {\n this.dataSource = this.channelItem;\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n itemClick() {\n window.open(this.dataSource.ItemUrl);\n }\n\n async addToFavorite() {\n let items: ChannelItem[] = [];\n items.push(this.channelItem);\n let coreRespMsg = await this._rssFeedService.addChannelItemsToFavoriteAsync(this.getLoggedinUser(), items);\n\n if (coreRespMsg.Status === CoreResponseStatus.OK) {\n this.onFavoriteItemAdded.emit(this.channelItem);\n this._snackBar.open('The item bookmarked successfully.', 'OK', { duration: this._successMsgDuration });\n } \n else {\n this._snackBar.open('Failed to add the item: ' + coreRespMsg.Message, 'OK', { duration: this._failMsgDuration });\n }\n }\n\n removeFromFavorite() {\n this.onFavoriteItemRemove.emit(this.channelItem); \n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdG9kYXktZmVlZC1pdGVtcy90b2RheS1mZWVkLWl0ZW1zLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnChanges, OnInit, OnDestroy, Input, Output, EventEmitter, SimpleChanges, SimpleChange } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog, MatSnackBar } from '@angular/material';\nimport { LoginService } from 'src/app/managers/login.service';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { BaseComponent } from 'src/app/common/components/base/base.component';\nimport { CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { RssFeedService } from 'src/app/managers/rssFeed.service';\nimport { ChannelItem } from 'src/app/models/channel_item';\nimport { OrderBy } from 'src/app/repositories/base.repository';\nimport { Channel } from 'src/app/models/channel';\nimport { Store, UnsubscribeCallback } from 'src/app/store/store';\nimport { DisplayModeActionType, SubscriptionDisplayModeActionType } from 'src/app/store/reducers';\n\n@Component({\n selector: 'app-today-feed-items',\n templateUrl: './today-feed-items.component.html',\n styleUrls: ['./today-feed-items.component.css']\n})\nexport class TodayFeedItemsComponent extends BaseComponent implements OnChanges, OnInit, OnDestroy { \n private _channel: Channel;\n @Output() onFavoriteItemAdded: EventEmitter;\n @Output() onFavoriteItemRemoved: EventEmitter;\n displayMode: DisplayModeActionType;\n itemImageWidth: string;\n itemImageHeight: string;\n cardSizeWidth: string;\n cardSizeHeight: string;\n isLoading: boolean;\n loadingStr: string;\n private _onInitCalled: boolean;\n private _channelStoreUnsubscribe: UnsubscribeCallback;\n private _displayModeStoreUnsubscribe: UnsubscribeCallback;\n\n constructor(route: ActivatedRoute, loginManager: LoginService, clientConfig: ClientConfigService, dialog: MatDialog, private _feedManager: RssFeedService,\n private _snackBar: MatSnackBar, private _store: Store) { \n super(route, loginManager, clientConfig, dialog);\n this.isLoading = false;\n this._onInitCalled = false;\n\n this._channelStoreUnsubscribe = this._store.subscribeChannelState(() => {\n if (this._store.getSubscriptionDisplayModeState() === SubscriptionDisplayModeActionType.Grid) {\n this._channel = this._store.getChannelState();\n this.loadChannelItemsAsync();\n } \n });\n\n this._displayModeStoreUnsubscribe = this._store.subscribeDisplayModeState(() => {\n this.displayMode = this._store.getDisplayModeState();\n\n if (this.displayMode === DisplayModeActionType.Favorite)\n this.loadFavoriteItemsAsync();\n else if (this.displayMode === DisplayModeActionType.Today)\n this.loadTodayFeedItemsAsync();\n }); \n\n this.onFavoriteItemAdded = new EventEmitter();\n this.onFavoriteItemRemoved = new EventEmitter();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n /*\n for (let propName in changes) {\n if (propName === 'channel') {\n let change = changes[propName];\n\n if (this.isChannelChanged(change)) {\n if (this._onInitCalled) {\n if (this.displayMode === DisplayModeActionType.Subscription)\n this.loadChannelItemsAsync();\n }\n }\n }\n else if (propName === 'displayMode') {\n let change = changes[propName];\n\n if (this.isDisplayModeChanged(change)) {\n if (this._onInitCalled) {\n if (this.displayMode === 'today')\n this.loadTodayFeedItemsAsync();\n else if (this.displayMode === 'favorite')\n this.loadFavoriteItemsAsync();\n }\n }\n }\n }\n */\n }\n\n ngOnInit() {\n this._onInitCalled = true;\n this.itemImageWidth = \"280px\";\n this.itemImageHeight = \"220px\";\n this.cardSizeWidth = \"280px\";\n this.cardSizeHeight = \"320px\";\n this._channel = this._store.getChannelState();\n\n if (this._store.getDisplayModeState() === DisplayModeActionType.Favorite)\n this.loadFavoriteItemsAsync();\n else if (this._store.getDisplayModeState() === DisplayModeActionType.Today)\n this.loadTodayFeedItemsAsync();\n else if (this._store.getDisplayModeState() === DisplayModeActionType.Subscription && this._store.getSubscriptionDisplayModeState() === SubscriptionDisplayModeActionType.Grid)\n this.loadChannelItemsAsync();\n else \n this.loadTodayFeedItemsAsync();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this._channelStoreUnsubscribe();\n this._displayModeStoreUnsubscribe(); \n }\n\n favoriteItemAdded(channelItem) {\n this.onFavoriteItemAdded.emit(channelItem);\n }\n\n async removeFavoriteItem(channelItem) {\n let coreRespMsg = await this._feedManager.removeChannelItemFromFavoriteAsync(this.getLoggedinUser(), channelItem);\n\n if (coreRespMsg.Status === CoreResponseStatus.OK) {\n let remainedItems = this.dataSource.filter(x => x.Id !== channelItem.Id);\n this.dataSource = remainedItems;\n this.onFavoriteItemRemoved.emit(channelItem);\n this._snackBar.open('The item has been removed.', 'OK', { duration: this._successMsgDuration });\n }\n else {\n this._snackBar.open('Failed to remove the channel item: ' + coreRespMsg.Message, 'OK', { duration: this._failMsgDuration });\n }\n }\n\n isFavoriteDisplayMode(): boolean {\n return this.displayMode === DisplayModeActionType.Favorite;\n }\n\n private async loadTodayFeedItemsAsync() {\n this.loadingStr = \"Loading today's feeds...\";\n this.isLoading = true;\n let responseMsg = await this._feedManager.getTodayFeedItemsAsync(0, 0, 'Tags', 'ASC');\n this.isLoading = false;\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this.dataSource = responseMsg.Result;\n }\n else {\n if (responseMsg.Status !== CoreResponseStatus.NoData) {\n this._snackBar.open(\"Failed to load today's feeds: \" + responseMsg.Message, 'OK', { duration: this._failMsgDuration });\n this.handleCoreResponseMessageError(responseMsg);\n }\n\n this.dataSource = null;\n }\n }\n\n private async loadFavoriteItemsAsync() {\n this.loadingStr = 'Loading bookmark feeds...';\n this.isLoading = true;\n let responseMsg = await this._feedManager.getFavoriteItemsAsync(this.getLoggedinUser(), 0, 0, 'PublishDate', OrderBy.DESC.toString());\n this.isLoading = false;\n\n if (responseMsg.Status === CoreResponseStatus.OK)\n this.dataSource = responseMsg.Result; \n else {\n if (responseMsg.Status !== CoreResponseStatus.NoData) {\n this._snackBar.open('Failed to load feeds: ' + responseMsg.Message, 'OK', { duration: this._failMsgDuration });\n this.handleCoreResponseMessageError(responseMsg);\n }\n \n this.dataSource = null;\n } \n }\n\n private async loadChannelItemsAsync() {\n this.loadingStr = 'Loading feeds...';\n this.isLoading = true;\n let responseMsg = await this._feedManager.loadRssItemsAsync(this.getLoggedinUser(), this._channel);\n this.isLoading = false;\n\n if (responseMsg.Status === CoreResponseStatus.OK) {\n this.dataSource = responseMsg.Result;\n\n this.dataSource.map(item => {\n item.Tags = this._channel.Title;\n });\n }\n else {\n if (responseMsg.Status !== CoreResponseStatus.NoData) {\n this._snackBar.open('Failed to retrieve subscription items: ' + responseMsg.Message, 'OK', { duration: this._failMsgDuration });\n this.handleCoreResponseMessageError(responseMsg);\n }\n\n this.dataSource = null;\n }\n }\n\n private isChannelChanged(change: SimpleChange): boolean {\n let update: boolean = false;\n let prevChannel: Channel = change.previousValue;\n let currChannel: Channel = change.currentValue;\n \n if (currChannel !== undefined) {\n if (prevChannel === undefined)\n update = true;\n else if (prevChannel.Title !== currChannel.Title)\n update = true;\n }\n\n return update;\n }\n\n private isDisplayModeChanged(change: SimpleChange): boolean {\n let update: boolean = false;\n let prevValue: string = change.previousValue;\n let currValue: string = change.currentValue;\n\n if (!this.undefinedOrNull(currValue)) {\n if(this.undefinedOrNull(prevValue))\n update = true;\n else if (prevValue !== currValue)\n update = true;\n }\n\n return update;\n }\n}\n","export enum CoreResponseStatus {\r\n OK,\r\n Failed,\r\n Forbidden,\r\n NonAuthoritativeInformation,\r\n Error,\r\n NoData\r\n}\r\n\r\nexport class CoreResponseMessage { \r\n Status: CoreResponseStatus;\r\n Message: string;\r\n TotalDataCount: number; \r\n Result: any; \r\n}","import { UserRepository, SortBy } from 'src/app/repositories/user.repository';\r\nimport { User } from 'src/app/models/user';\r\nimport { FunctionsService } from 'src/app/common/services/functions.service';\r\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\r\nimport { OrderBy } from '../repositories/base.repository';\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpHeaders } from '@angular/common/http';\r\n\r\nexport class LoginService { \r\n //sortBy: '' | 'Email'\r\n\r\n constructor(private _userRepo: UserRepository, private _functionsService: FunctionsService) {}\r\n\r\n async loginAsync(email: string, password: string): Promise { \r\n let responseMsg: CoreResponseMessage;\r\n let clientIp = await this._functionsService.getClientIpAsync();\r\n\r\n if (clientIp.ip !== '') { \r\n responseMsg = await this._userRepo.loginAsync(email, password, clientIp.ip); \r\n \r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let user: User = responseMsg.Result;\r\n user.IsAdmin = user.Role === 'REGULAR' ? false : true; \r\n this._userRepo.setLoggedinUser(user); \r\n }\r\n else\r\n this._userRepo.setDefaultLoggedinUser();\r\n }\r\n else\r\n responseMsg = { Status: CoreResponseStatus.Failed, Message: 'Failed to get client IP address!', TotalDataCount: 0, Result: null }; \r\n\r\n return responseMsg;\r\n }\r\n\r\n async signupAsync(email: string, password: string): Promise {\r\n let responseMsg = await this._userRepo.signupAsync(email, password);\r\n \r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let user: User = responseMsg.Result;\r\n user.IsAdmin = user.Role === 'REGULAR' ? false : true;\r\n this._userRepo.setLoggedinUser(user);\r\n }\r\n else\r\n this._userRepo.setDefaultLoggedinUser();\r\n\r\n return responseMsg;\r\n }\r\n \r\n getLoggedinUser(): User {\r\n return this._userRepo.getLoggedinUser();\r\n }\r\n\r\n setLoggedinUser(user: User) {\r\n this._userRepo.setLoggedinUser(user);\r\n }\r\n\r\n async logoutAsync(): Promise {\r\n let responseMsg: CoreResponseMessage = await this._userRepo.getHeadersAsync(this.getLoggedinUser().Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._userRepo.signout(headers);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK)\r\n this._userRepo.setDefaultLoggedinUser();\r\n } \r\n \r\n return responseMsg;\r\n }\r\n \r\n async updateUserAsync(userToUpdate: User): Promise {\r\n let responseMsg: CoreResponseMessage = await this._userRepo.getHeadersAsync(this.getLoggedinUser().Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._userRepo.updateAsync(headers, userToUpdate); \r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async updateSelfAsync(email: string, password: string): Promise {\r\n let responseMsg = await this._userRepo.getHeadersAsync(this.getLoggedinUser().Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n \r\n let user = this.getLoggedinUser();\r\n user.Email = email;\r\n user.Password = password;\r\n\r\n responseMsg = await this._userRepo.updateSelfAsync(headers, user);\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async getAllSync(requestor: User, pageIndex: number, pageSize: number, sortByStr: string, orderByStr: string): Promise {\r\n let responseMsg: CoreResponseMessage = await this._userRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n let sortBy: SortBy = SortBy[sortByStr];\r\n let orderBy: OrderBy = OrderBy[orderByStr]; \r\n responseMsg = await this._userRepo.getAllAsync(headers, pageIndex, pageSize, sortBy, orderBy);\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async removeUserAsync(requestor: User, ids: number[]): Promise {\r\n let responseMsg: CoreResponseMessage = await this._userRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._userRepo.removeAsync(headers, ids);\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n clearUser(): User {\r\n return this._userRepo.setDefaultLoggedinUser(); \r\n }\r\n\r\n async addUsersAsync(requestor: User, usersToAdd: User[]): Promise {\r\n let responseMsg: CoreResponseMessage = await this._userRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._userRepo.addAsync(headers, usersToAdd); \r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async sendEmailPasswordAsync(email: string): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n let clientIp = await this._functionsService.getClientIpAsync();\r\n\r\n if (clientIp.ip.length > 0) {\r\n const headers = new HttpHeaders().set('IpAddress', clientIp.ip)\r\n .set('Email', email)\r\n .set('Content-Type', 'application/json');\r\n responseMsg = await this._userRepo.forgotPasswordAsync(headers);\r\n }\r\n\r\n return responseMsg;\r\n }\r\n}","import { CategoryRepository, CategorySortBy } from 'src/app/repositories/category.repository';\r\nimport { FunctionsService } from 'src/app/common/services/functions.service';\r\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\r\nimport { OrderBy } from 'src/app/repositories/base.repository';\r\nimport { User } from '../models/user';\r\nimport { Channel } from 'src/app/models/channel';\r\nimport { ChannelItem } from 'src/app/models/channel_item';\r\nimport { Category } from 'src/app/models/category';\r\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\r\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ChannelItemRepository, ChannelItemSortBy } from '../repositories/channelItem.repository';\r\nimport { ChannelRepository } from 'src/app/repositories/channel.repository';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class RssFeedService {\r\n //categorySortBy: '' | 'Name'\r\n\r\n constructor(private _categoryRepo: CategoryRepository, private _channelItemRepo: ChannelItemRepository, private _channelRepo: ChannelRepository, \r\n private _clientConfigService: ClientConfigService, private _http: HttpClient)\r\n {\r\n }\r\n\r\n async getCategoriesAllAsync(requestor: User, pageIndex: number, pageSize: number, sortByStr: string, orderByStr: string): Promise {\r\n let responseMsg: CoreResponseMessage = await this._categoryRepo.getHeadersAsync(requestor.Email === '' ? environment.defaultEmail : requestor.Email);\r\n \r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = requestor.Email === '' ? responseMsg.Result.set('ExemptValidation', 'true') : responseMsg.Result;\r\n let sortBy: CategorySortBy = CategorySortBy[sortByStr];\r\n let orderBy: OrderBy = OrderBy[orderByStr];\r\n responseMsg = await this._categoryRepo.getAllAsync(headers, pageIndex, pageSize, sortBy, orderBy); \r\n }\r\n\r\n // let sortBy: SortBy = SortBy[sortByStr]; \r\n // let orderBy: OrderBy = OrderBy[orderByStr];\r\n // responseMsg = await this._categoryRepo.getAllAsync(null, pageIndex, pageSize, sortBy, orderBy);\r\n // responseMsg.Status = CoreResponseStatus.OK;\r\n\r\n return responseMsg;\r\n }\r\n\r\n async removeCategoryAsync(requestor: User, category: Category): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n if (requestor.Email !== '') {\r\n responseMsg = await this._categoryRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n category.Active = false;\r\n responseMsg = await this._categoryRepo.removeAsync(headers, [category.Id]);\r\n }\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async updateCategoryAsync(requestor: User, category: Category): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n if (requestor.Email !== '') {\r\n responseMsg = await this._categoryRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._categoryRepo.updateAsync(headers, category);\r\n }\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async addCategoryAsync(requestor: User, category: Category) {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n if (requestor.Email !== '') {\r\n responseMsg = await this._categoryRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n category.UserId = requestor.Id;\r\n category.Active = true;\r\n responseMsg = await this._categoryRepo.addAsync(headers, [category]);\r\n }\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async addChannelAsync(requestor: User, channel: Channel): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n if (requestor.Email !== '') {\r\n responseMsg = await this._channelRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n channel.UserId = requestor.Id;\r\n channel.Active = true;\r\n channel.Show = true;\r\n responseMsg = await this._channelRepo.addAsync(headers, [channel]);\r\n }\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async updateChannelAsync(requestor: User, channel: Channel): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n if (requestor.Email !== '') {\r\n responseMsg = await this._channelRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._channelRepo.updateAsync(headers, channel);\r\n }\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async removeChannelAsync(requestor: User, channel: Channel): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n if (requestor.Email !== '') {\r\n responseMsg = await this._channelRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n channel.Active = false;\r\n responseMsg = await this._channelRepo.updateAsync(headers, channel);\r\n }\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async loadRssItemsAsync(requestor: User, channel: Channel): Promise { \r\n let responseMsg: CoreResponseMessage;\r\n \r\n responseMsg = await this._categoryRepo.getHeadersAsync(requestor.Email === '' ? environment.defaultEmail : requestor.Email);\r\n \r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._channelRepo.parseChannelOnServerAsync(headers, channel);\r\n }\r\n\r\n //responseMsg = await this._channelRepo.parseChannelOnClientAsync(channel);\r\n \r\n return responseMsg;\r\n }\r\n\r\n async addChannelItemsToFavoriteAsync(requestor: User, channelItems: ChannelItem[]): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n if (requestor.Email !== '') {\r\n responseMsg = await this._channelItemRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._channelItemRepo.addToFavoriteAsync(headers, channelItems);\r\n }\r\n }\r\n \r\n return responseMsg;\r\n }\r\n\r\n async removeChannelItemFromFavoriteAsync(requestor: User, channelItem: ChannelItem): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n if (requestor.Email !== '') {\r\n responseMsg = await this._channelItemRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._channelItemRepo.removeFromFavoriteAsync(headers, channelItem);\r\n }\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async getFavoriteItemsAsync(requestor: User, pageIndex: number, pageSize: number, sortByStr: string, orderByStr: string): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n if (requestor.Email !== '') {\r\n responseMsg = await this._channelItemRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n let sortBy: ChannelItemSortBy = ChannelItemSortBy[sortByStr];\r\n let orderBy: OrderBy = OrderBy[orderByStr]; \r\n responseMsg = await this._channelItemRepo.getFavoriteItems(headers, pageIndex, pageSize, sortBy, orderBy);\r\n }\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async countFavoriteItemAsync(requestor: User): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n if (requestor.Email !== '') {\r\n responseMsg = await this._channelItemRepo.getHeadersAsync(requestor.Email);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._channelItemRepo.countFavoriteChannelItems(headers);\r\n }\r\n }\r\n\r\n return responseMsg;\r\n }\r\n\r\n async getTodayFeedItemsAsync(pageIndex: number, pageSize: number, sortByStr: string, orderByStr: string): Promise {\r\n let sortBy: ChannelItemSortBy = ChannelItemSortBy[sortByStr];\r\n let orderBy: OrderBy = OrderBy[orderByStr];\r\n\r\n return await this._channelItemRepo.getTodayFeedItemsAsync(pageIndex, pageSize, sortBy, orderBy);\r\n }\r\n\r\n async refreshTodayFeedsAsync(): Promise {\r\n let responseMsg = await this._channelItemRepo.getHeadersAsync(environment.defaultEmail);\r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let headers = responseMsg.Result;\r\n responseMsg = await this._channelItemRepo.refreshTodayFeedsAsync(headers);\r\n }\r\n\r\n return responseMsg;\r\n }\r\n}","import { Channel } from './channel';\r\n\r\nexport class Category {\r\n Id: number;\r\n UserId: number;\r\n Name: string;\r\n Channels: Channel[];\r\n Description: string; \r\n Active: boolean;\r\n ModifiedDate: Date;\r\n CreatedDate: Date; \r\n}","import { Category } from 'src/app/models/category';\r\n\r\nexport class Channel {\r\n Id: number;\r\n UserId: number;\r\n ChannelUrl: string;\r\n Title: string;\r\n Categories: Category[];\r\n PublishDate: Date;\r\n ImageUrl: string;\r\n Active: boolean;\r\n Show: boolean;\r\n ModifiedDate: Date;\r\n CreatedDate: Date;\r\n}","export class User {\r\n Id: number;\r\n Email: string; \r\n Password: string;\r\n Active: boolean;\r\n Role: string;\r\n IsLoggedIn: boolean;\r\n LastActivityTime: Date;\r\n CreatedDate: Date;\r\n ApplicationId: number; \r\n ApplicationName: string;\r\n ApplicationKey: string;\r\n IsAdmin: boolean; \r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\r\nimport { FunctionsService } from 'src/app/common/services/functions.service';\r\nimport { AuthTokenResponseMessage } from 'src/app/contracts/responseMessage/authTokenResponseMessage';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\r\n\r\nexport enum OrderBy {\r\n ASC, \r\n DESC\r\n}\r\n\r\nexport class BaseRepository {\r\n baseApiUrl: string;\r\n private _userBaseApiUrl: string;\r\n\r\n constructor(public http:HttpClient, public functionsService: FunctionsService, public clientConfig: ClientConfigService, apiControllerName: string) { \r\n if (apiControllerName.toLowerCase() === 'user')\r\n this.baseApiUrl = this.clientConfig.Configuration.baseAppCoreApi + apiControllerName + '/';\r\n else\r\n this.baseApiUrl = this.clientConfig.Configuration.baseAppCoreApi + environment.additionalApiNamespace + '/' + apiControllerName + '/';\r\n\r\n this._userBaseApiUrl = this.clientConfig.Configuration.baseAppCoreApi + 'User/';\r\n } \r\n \r\n async getHeadersAsync(requestorEmail: string): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n let clientIp = await this.functionsService.getClientIpAsync();\r\n\r\n if (clientIp.ip.length > 0) {\r\n /*\r\n application key need to come from configuration file because value will be vary depending on client.\r\n */\r\n responseMsg = await this.getAuthTokenAsync(requestorEmail, environment.applicationKey); \r\n\r\n if (responseMsg.Status === CoreResponseStatus.OK) {\r\n let authTokenMsg: AuthTokenResponseMessage = responseMsg.Result;\r\n const headers = new HttpHeaders().set('IpAddress', clientIp.ip)\r\n .set('Content-Type', 'application/json')\r\n .set('AuthToken', authTokenMsg.AuthToken);\r\n responseMsg = {Status: CoreResponseStatus.OK, Message: 'Success to create headers', TotalDataCount: 0, Result: headers}; \r\n } \r\n }\r\n else\r\n responseMsg = {Status: CoreResponseStatus.Failed, Message: 'Failed to get client IP address!', TotalDataCount: 0, Result: null};\r\n\r\n return responseMsg;\r\n }\r\n\r\n private async getAuthTokenAsync(email: string, applicationKey: string): Promise { \r\n const headers = new HttpHeaders().set('EmailAddress', email)\r\n .set('ApplicationKey', applicationKey); \r\n let coreResponseMsg: CoreResponseMessage; \r\n await this.http.get(this._userBaseApiUrl + 'GetAuthToken', { headers }).toPromise().then(resp => {\r\n coreResponseMsg = resp;\r\n }).catch(err => {\r\n coreResponseMsg = err.error;\r\n });\r\n \r\n return coreResponseMsg;\r\n }\r\n\r\n protected getEncryptedAuthToken(applicationName: string, authToken: string): string {\r\n let key: string = this.clientConfig.AppEncryptConfig[applicationName];\r\n let encryptedAuthToken: string = key; \r\n \r\n return encryptedAuthToken;\r\n }\r\n}","import { Category } from 'src/app/models/category';\r\nimport { IRepository } from 'src/app/repositories/interface.repository';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { CoreResponseMessage } from 'src/app/contracts/responseMessage/coreResponseMessage';\r\nimport { BaseRepository, OrderBy } from 'src/app/repositories/base.repository';\r\nimport { FunctionsService } from 'src/app/common/services/functions.service';\r\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { Injectable } from \"@angular/core\";\r\n\r\nexport enum CategorySortBy {\r\n Name\r\n}\r\n\r\n@Injectable()\nexport class CategoryRepository extends BaseRepository implements IRepository {\r\n \r\n constructor(public http: HttpClient, public functionService: FunctionsService, public clientConfig: ClientConfigService) {\r\n super(http, functionService, clientConfig, 'Category');\r\n }\r\n\r\n async getAsync(headers: HttpHeaders, ids: number[]): Promise {\r\n let categories: Category[] = [];\r\n return new CoreResponseMessage();\r\n }\r\n\r\n async addAsync(headers: HttpHeaders, addCategories: Category[]): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n await this.http.post(this.baseApiUrl + 'Add', JSON.stringify(addCategories), {headers}).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n });\r\n\r\n return responseMsg;\r\n }\r\n\r\n async updateAsync(headers: HttpHeaders, updateCategory: Category): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n await this.http.post(this.baseApiUrl + 'Update', updateCategory, {headers}).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n });\r\n\r\n return responseMsg;\r\n }\r\n\r\n async removeAsync(headers: HttpHeaders, categoryId: number[]): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n await this.http.post(this.baseApiUrl + 'Remove', JSON.stringify(categoryId), {headers}).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n });\r\n\r\n return responseMsg;\r\n }\r\n\r\n async getAllAsync(headers: HttpHeaders, pageIndex: number, pageSize: number, sortBy: CategorySortBy, orderBy: OrderBy): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n //responseMsg = this.createCategories();\r\n const params = new HttpParams().set('pageIndex', pageIndex.toString())\r\n .set('pageSize', pageSize.toString())\r\n .set('sortBy', sortBy.toString())\r\n .set('orderBy', orderBy.toString());\r\n await this.http.get(this.baseApiUrl + 'GetAll', {headers, params}).toPromise().then(resp => {\r\n responseMsg = resp; \r\n }).catch(err => {\r\n responseMsg = err.error; \r\n });\r\n\r\n return responseMsg;\r\n }\r\n\r\n private createCategories(): CoreResponseMessage { \r\n let categories: Category[] = [];\r\n let coreRespMsg: CoreResponseMessage;\r\n\r\n categories.push({\r\n Id: 1,\r\n UserId: 1, \r\n Name: 'News',\r\n Channels: [\r\n {\r\n Id: 1,\r\n UserId: 1,\r\n ChannelUrl: 'http://feeds.bbci.co.uk/news/rss.xml?edition=uk',\r\n Title: 'BBC',\r\n PublishDate: null,\r\n ImageUrl: 'http://localhost:4200/assets/ultrarss.png',\r\n Active: true,\r\n Show: true,\r\n ModifiedDate: null,\r\n CreatedDate: null,\r\n Categories: null\r\n },\r\n {\r\n Id: 1,\r\n UserId: 1,\r\n ChannelUrl: 'https://www.engadget.com/rss.xml',\r\n Title: 'Engadget',\r\n PublishDate: null, \r\n ImageUrl: 'https://icdn3.digitaltrends.com/image/digitaltrends/dt-symbol-black-190621-2-32x32.jpg',\r\n Active: true,\r\n Show: true,\r\n ModifiedDate: null,\r\n CreatedDate: null,\r\n Categories: null\r\n },\r\n {\r\n Id: 1,\r\n UserId: 1,\r\n ChannelUrl: 'http://www.phonearena.com/feed',\r\n Title: 'Phone Arena',\r\n PublishDate: null,\r\n ImageUrl: 'https://www.phonearena.com/img/logo-en.gif',\r\n Active: true,\r\n Show: true,\r\n ModifiedDate: null,\r\n CreatedDate: null,\r\n Categories: null\r\n }\r\n ],\r\n Description: 'News description',\r\n Active: true,\r\n ModifiedDate: null,\r\n CreatedDate: null \r\n });\r\n\r\n categories.push({\r\n Id: 1,\r\n UserId: 1, \r\n Name: 'Technology',\r\n Channels: null,\r\n Description: 'Technology description',\r\n Active: true,\r\n ModifiedDate: null,\r\n CreatedDate: null \r\n });\r\n\r\n categories.push({\r\n Id: 1,\r\n UserId: 1, \r\n Name: 'Automobile',\r\n Channels: null,\r\n Description: 'Automobile description',\r\n Active: true,\r\n ModifiedDate: null,\r\n CreatedDate: null \r\n });\r\n\r\n categories.push({\r\n Id: 1,\r\n UserId: 1, \r\n Name: 'Miscallaneous',\r\n Channels: null,\r\n Description: 'Miscellaneous description',\r\n Active: true,\r\n ModifiedDate: null,\r\n CreatedDate: null \r\n });\r\n\r\n coreRespMsg.Result = categories;\r\n coreRespMsg.TotalDataCount = 4;\r\n\r\n return coreRespMsg;\r\n }\r\n}","import { Channel } from 'src/app/models/channel';\nimport { IRepository } from 'src/app/repositories/interface.repository';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { CoreResponseMessage, CoreResponseStatus } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { BaseRepository, OrderBy } from 'src/app/repositories/base.repository';\nimport { FunctionsService } from 'src/app/common/services/functions.service';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { Injectable } from '@angular/core';\nimport { NgxXml2jsonService } from 'ngx-xml2json';\nimport { ChannelItem } from '../models/channel_item';\n\nexport enum ChannelSortBy {\n Title,\n PublishDate\n}\n\n@Injectable()\nexport class ChannelRepository extends BaseRepository implements IRepository {\n\n constructor(public http: HttpClient, public functionsService: FunctionsService, public clientConfig: ClientConfigService, private _xmlParser: NgxXml2jsonService) {\n super(http, functionsService, clientConfig, 'Channel');\n }\n\n async getAsync(headers: HttpHeaders, ids: number[]): Promise {\n let responseMessage: CoreResponseMessage;\n return responseMessage;\n }\n\n async getAllAsync(headers: HttpHeaders, pageIndex: number, pageSize: number, sortBy: ChannelSortBy, orderBy: OrderBy): Promise {\n let responseMessage: CoreResponseMessage;\n return responseMessage;\n }\n\n async addAsync(headers: HttpHeaders, addChannels: Channel[]): Promise {\n let responseMsg: CoreResponseMessage;\n\n await this.http.post(this.baseApiUrl + 'Add', JSON.stringify(addChannels), {headers}).toPromise().then(resp => {\n responseMsg = resp;\n }).catch(err => {\n responseMsg = err.error;\n });\n return responseMsg;\n }\n\n async updateAsync(headers: HttpHeaders, updateChannel: Channel): Promise {\n let responseMsg: CoreResponseMessage;\n\n await this.http.post(this.baseApiUrl + 'Update', updateChannel, {headers}).toPromise().then(resp => {\n responseMsg = resp;\n }).catch(err => {\n responseMsg = err.error;\n });\n\n return responseMsg;\n }\n\n async removeAsync(headers: HttpHeaders, ids: number[]): Promise {\n let responseMsg: CoreResponseMessage;\n return responseMsg;\n }\n\n async parseChannelOnServerAsync(headers: HttpHeaders, channel: Channel): Promise {\n let responseMsg: CoreResponseMessage;\n const params = new HttpParams().set('channelId', '0')\n .set('rssUrl', channel.ChannelUrl);\n\n await this.http.get(this.baseApiUrl + 'ParseRss', { headers, params}).toPromise().then(resp => {\n responseMsg = resp;\n }).catch(err => {\n responseMsg = err.error;\n });\n\n return responseMsg;\n }\n\n async parseChannelOnClientAsync(channel: Channel): Promise {\n let responseMsg: CoreResponseMessage;\n const params = new HttpParams().set('url', channel.ChannelUrl);\n\n await this.http.get(this.baseApiUrl + 'GetWebPageContent', { params }).toPromise().then(resp => {\n responseMsg = resp;\n\n if (responseMsg.Status === CoreResponseStatus.NoData) {\n let xml: string = responseMsg.Message;\n\n responseMsg.Status = CoreResponseStatus.OK;\n responseMsg.Result = this.parseRssXml(xml);\n }\n }).catch(err => {\n responseMsg = err.error;\n })\n\n return responseMsg;\n }\n\n private parseRssXml(xml: string): ChannelItem[] {\n let channelItems: ChannelItem[];\n\n // parse rss xml to create channel item array\n \n return channelItems;\n }\n}","import { ChannelItem } from 'src/app/models/channel_item';\nimport { IRepository } from 'src/app/repositories/interface.repository';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { CoreResponseMessage } from 'src/app/contracts/responseMessage/coreResponseMessage';\nimport { BaseRepository, OrderBy } from 'src/app/repositories/base.repository';\nimport { FunctionsService } from 'src/app/common/services/functions.service';\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\nimport { Injectable } from \"@angular/core\";\n\nexport enum ChannelItemSortBy {\n Title,\n PublishDate,\n Tags\n}\n\n@Injectable()\nexport class ChannelItemRepository extends BaseRepository implements IRepository {\n constructor(public http: HttpClient, public functionService: FunctionsService, public clientConfig: ClientConfigService) {\n super(http, functionService, clientConfig, 'ChannelItem');\n }\n\n async getAsync(headers: HttpHeaders, ids: number[]): Promise {\n let channelItems: ChannelItem[] = [];\n return new CoreResponseMessage();\n }\n\n async getAllAsync(headers: HttpHeaders, pageIndex: number, pageSize: number, sortBy: ChannelItemSortBy, orderBy: OrderBy): Promise {\n let responseMessage: CoreResponseMessage;\n return responseMessage;\n }\n\n async addAsync(headers: HttpHeaders, channelItems: ChannelItem[]): Promise {\n let responseMessage: CoreResponseMessage;\n return responseMessage;\n }\n\n async updateAsync(headers: HttpHeaders, channelItem: ChannelItem): Promise {\n let responseMessage: CoreResponseMessage;\n return responseMessage;\n }\n\n async removeAsync(headers: HttpHeaders, ids: number[]): Promise {\n let responseMessage: CoreResponseMessage;\n return responseMessage;\n }\n\n async addToFavoriteAsync(headers: HttpHeaders, channelItems: ChannelItem[]): Promise {\n let responseMessage: CoreResponseMessage;\n\n await this.http.post(this.baseApiUrl + 'AddToFavorite', JSON.stringify(channelItems), { headers }).toPromise().then(resp => {\n responseMessage = resp;\n }).catch(err => {\n responseMessage = err.error;\n });\n\n return responseMessage;\n }\n\n async getFavoriteItems(headers: HttpHeaders, pageIndex: number, pageSize: number, sortBy: ChannelItemSortBy, orderBy: OrderBy): Promise {\n let responseMessage: CoreResponseMessage;\n const params = new HttpParams().set('pageIndex', pageIndex.toString())\n .set('pageSize', pageSize.toString())\n .set('sortBy', sortBy.toString())\n .set('orderBy', orderBy.toString());\n\n await this.http.get(this.baseApiUrl + 'GetFavoriteItems', { headers, params }).toPromise().then(resp => {\n responseMessage = resp;\n }).catch(err => {\n responseMessage = err.error;\n });\n\n return responseMessage;\n }\n\n async removeFromFavoriteAsync(headers: HttpHeaders, channelItem: ChannelItem): Promise {\n let responseMessage: CoreResponseMessage;\n\n await this.http.post(this.baseApiUrl + 'RemoveFromFavorite', JSON.stringify(channelItem), { headers }).toPromise().then(resp => {\n responseMessage = resp;\n }).catch(err => {\n responseMessage = err.error;\n });\n\n return responseMessage;\n }\n\n async countFavoriteChannelItems(headers: HttpHeaders): Promise {\n let responseMessage: CoreResponseMessage;\n\n await this.http.get(this.baseApiUrl + 'CountFavoriteChannelItems', { headers }).toPromise().then(resp => {\n responseMessage = resp;\n }).catch(err => {\n responseMessage = err.error;\n });\n\n return responseMessage;\n }\n\n async getTodayFeedItemsAsync(pageIndex: number, pageSize: number, sortBy: ChannelItemSortBy, orderBy: OrderBy): Promise {\n let responseMessage: CoreResponseMessage;\n const params = new HttpParams().set('pageIndex', pageIndex.toString())\n .set('pageSize', pageSize.toString())\n .set('sortBy', sortBy.toString())\n .set('orderBy', orderBy.toString());\n\n await this.http.get(this.baseApiUrl + 'GetTodayFeedItems', { params }).toPromise().then(resp => {\n responseMessage = resp;\n }).catch(err => {\n responseMessage = err.error;\n });\n\n return responseMessage;\n }\n\n async refreshTodayFeedsAsync(headers: HttpHeaders): Promise {\n let responseMessage: CoreResponseMessage;\n\n await this.http.post(this.baseApiUrl + 'RefreshTodayFeeds', null, { headers }).toPromise().then(resp => {\n responseMessage = resp;\n }).catch(err => {\n responseMessage = err.error;\n })\n\n return responseMessage;\n }\n}\n","import { User } from 'src/app/models/user';\r\nimport { IRepository } from 'src/app/repositories/interface.repository';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { CoreResponseMessage } from 'src/app/contracts/responseMessage/coreResponseMessage';\r\nimport { BaseRepository, OrderBy } from 'src/app/repositories/base.repository';\r\nimport { SessionService } from 'src/app/common/services/session.service';\r\nimport { FunctionsService } from 'src/app/common/services/functions.service';\r\nimport { ClientConfigService } from 'src/app/common/services/client-config.service';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\nexport enum SortBy {\r\n Email,\r\n Role\r\n}\r\n\r\n@Injectable()\r\nexport class UserRepository extends BaseRepository implements IRepository { \r\n private _sessionLoggedinUser: string = 'loggedinUser';\r\n\r\n constructor(public http: HttpClient, public functionsService: FunctionsService, public clientConfig: ClientConfigService, private _sessionService:SessionService) {\r\n super(http, functionsService, clientConfig, 'User'); \r\n }\r\n\r\n async getAsync(headers: HttpHeaders, ids: number[]): Promise {\r\n let users: User[] = []; \r\n return new CoreResponseMessage();\r\n }\r\n\r\n async addAsync(headers: HttpHeaders, addUsers: User[]): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n await this.http.post(this.baseApiUrl + 'Add', JSON.stringify(addUsers), { headers }).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n });\r\n\r\n return responseMsg;\r\n }\r\n\r\n async updateAsync(headers: HttpHeaders, updateUser: User): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n await this.http.post(this.baseApiUrl + 'Update', JSON.stringify(updateUser), { headers }).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n });\r\n \r\n return responseMsg;\r\n }\r\n\r\n async updateSelfAsync(headers: HttpHeaders, updateUser: User): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n await this.http.post(this.baseApiUrl + 'UpdateUserSelf', JSON.stringify(updateUser), { headers }).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n });\r\n\r\n return responseMsg;\r\n }\r\n\r\n async signout(headers: HttpHeaders): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n await this.http.post(this.baseApiUrl + 'Signout', null, { headers }).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n });\r\n \r\n return responseMsg;\r\n }\r\n\r\n async removeAsync(headers: HttpHeaders, ids: number[]): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n await this.http.post(this.baseApiUrl + 'Delete', JSON.stringify(ids), { headers }).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n })\r\n\r\n return responseMsg;\r\n }\r\n \r\n getLoggedinUser(): User {\r\n let user: User = this._sessionService.get(this._sessionLoggedinUser, null); \r\n \r\n if (!user)\r\n user = this.setDefaultLoggedinUser();\r\n\r\n return user;\r\n }\r\n\r\n setLoggedinUser(user: User) {\r\n this._sessionService.set(this._sessionLoggedinUser, user); \r\n }\r\n\r\n setDefaultLoggedinUser(): User { \r\n let defaultUser: User = { Id: 0, Email: '', Password: '', Active: false, Role: '', IsLoggedIn: false, LastActivityTime: null, CreatedDate: null, ApplicationId: 0, \r\n ApplicationName: '', ApplicationKey: '', IsAdmin: false };\r\n this._sessionService.set(this._sessionLoggedinUser, defaultUser);\r\n return this._sessionService.get(this._sessionLoggedinUser, null);\r\n }\r\n\r\n async loginAsync(email: string, password: string, ipAddress: string): Promise { \r\n let responseMsg: CoreResponseMessage;\r\n const headers = new HttpHeaders().set('IpAddress', ipAddress)\r\n .set('Email', email)\r\n .set('Password', password); \r\n await this.http.get(this.baseApiUrl + 'Login', { headers }).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error\r\n });\r\n \r\n return responseMsg;\r\n }\r\n\r\n async signupAsync(email: string, password: string): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n let user = { Email: email, Password: password };\r\n const headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n\r\n await this.http.post(this.baseApiUrl + 'Signup', JSON.stringify(user), { headers }).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n })\r\n\r\n return responseMsg;\r\n }\r\n \r\n async getAllAsync(headers: HttpHeaders, pageIndex: number, pageSize: number, sortBy: SortBy, orderBy: OrderBy): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n const params = new HttpParams().set('pageIndex', pageIndex.toString())\r\n .set('pageSize', pageSize.toString())\r\n .set('sortBy', sortBy.toString())\r\n .set('orderBy', orderBy.toString()); \r\n await this.http.get(this.baseApiUrl + 'GetAllUsers', { headers, params }).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n });\r\n\r\n return responseMsg;\r\n }\r\n\r\n async forgotPasswordAsync(headers: HttpHeaders): Promise {\r\n let responseMsg: CoreResponseMessage;\r\n\r\n await this.http.get(this.baseApiUrl + 'ForgotPassword', { headers }).toPromise().then(resp => {\r\n responseMsg = resp;\r\n }).catch(err => {\r\n responseMsg = err.error;\r\n });\r\n\r\n return responseMsg;\r\n }\r\n}","import { Channel } from 'src/app/models/channel';\r\n\r\nexport interface IReducer {\r\n (state: T, action: IAction): T;\r\n}\r\n\r\nexport interface IAction {\r\n type: string;\r\n payload?: any;\r\n}\r\n\r\n/* channel state */\r\nexport enum ChannelActionType {\r\n ChannelSelected = 'ChannelSelected'\r\n}\r\n\r\nexport const channelReducer: IReducer = (state: Channel, action: IAction) => {\r\n switch (action.type) { \r\n case ChannelActionType.ChannelSelected: \r\n return action.payload;\r\n\r\n default:\r\n // return previous state since no action defined\r\n return state;\r\n } \r\n}\r\n/* end of channel state */\r\n\r\n/* display mode state */\r\nexport enum DisplayModeActionType {\r\n //SubscriptionList = 'SubscriptionList',\r\n Subscription = 'Subscription',\r\n Favorite = 'Favorite',\r\n Today = 'Today'\r\n}\r\n\r\nexport const displayModeReducer: IReducer = (state: DisplayModeActionType, action: IAction) => {\r\n return DisplayModeActionType[action.type];\r\n}\r\n/* end of display mode state */\r\n\r\n/* subscription display mode state */\r\nexport enum SubscriptionDisplayModeActionType {\r\n Grid = 'Grid',\r\n List = 'List'\r\n}\r\n\r\nexport const subscriptionDisplayModeReducer: IReducer = (state: SubscriptionDisplayModeActionType, action: IAction) => {\r\n return SubscriptionDisplayModeActionType[action.type];\r\n}\r\n/* end of subscription display mode state */","import { IReducer, IAction, ChannelActionType, DisplayModeActionType, SubscriptionDisplayModeActionType } from 'src/app/store/reducers';\r\nimport { Channel } from 'src/app/models/channel';\r\n\r\nexport interface ListenerCallback {\r\n (): void;\r\n}\r\n\r\nexport interface UnsubscribeCallback {\r\n (): void;\r\n}\r\n\r\nexport class Store {\r\n constructor() {\r\n this._displayModeState = DisplayModeActionType.Today;\r\n this._subscriptionDisplayModeState = SubscriptionDisplayModeActionType.Grid;\r\n }\r\n\r\n /* channel state */\r\n private _channelState: any;\r\n private _channelListeners: ListenerCallback[] = [];\r\n\r\n initiateChannelState(channelState: Channel) { \r\n this._channelState = channelState;\r\n }\r\n\r\n getChannelState(): Channel {\r\n return this._channelState;\r\n }\r\n\r\n subscribeChannelState(listener: ListenerCallback): UnsubscribeCallback { \r\n this._channelListeners.push(listener); \r\n\r\n return () => {\r\n this._channelListeners = this._channelListeners.filter(l => l !== listener);\r\n };\r\n }\r\n\r\n private isChannelStateChanged(newState: Channel): boolean {\r\n let update: boolean = false;\r\n \r\n if (newState) {\r\n if (!this._channelState)\r\n update = true;\r\n else if (this._channelState.Title !== newState.Title)\r\n update = true;\r\n }\r\n \r\n if (update) this._displayModeState = DisplayModeActionType.Subscription;\r\n\r\n return update;\r\n }\r\n /* end of channel state */\r\n\r\n /* display mode state */\r\n private _displayModeState: any;\r\n private _displayModeListeners: ListenerCallback[] = [];\r\n\r\n initiateDisplayModeState(displayMode: DisplayModeActionType) {\r\n this._displayModeState = displayMode;\r\n }\r\n\r\n getDisplayModeState(): DisplayModeActionType {\r\n return this._displayModeState;\r\n }\r\n\r\n subscribeDisplayModeState(listener: ListenerCallback): UnsubscribeCallback {\r\n this._displayModeListeners.push(listener);\r\n\r\n return () => {\r\n this._displayModeListeners = this._displayModeListeners.filter(l => l !== listener);\r\n };\r\n }\r\n\r\n private isDisplayModeStateChanged(newState: DisplayModeActionType) {\r\n let update: boolean = false;\r\n\r\n if (newState) {\r\n if (!this._displayModeState)\r\n update = true;\r\n else if (this._displayModeState !== newState)\r\n update = true;\r\n }\r\n\r\n if (update) this._channelState = null;\r\n \r\n return update;\r\n }\r\n /* end of display mode state */\r\n\r\n /* subscription display mode state */\r\n private _subscriptionDisplayModeState: any;\r\n private _subscriptionDisplayModeListeners: ListenerCallback[] = [];\r\n\r\n initiateSubscriptionDisplayModeState(subDisplayMode: SubscriptionDisplayModeActionType) {\r\n this._subscriptionDisplayModeState = subDisplayMode;\r\n }\r\n\r\n getSubscriptionDisplayModeState(): SubscriptionDisplayModeActionType {\r\n return this._subscriptionDisplayModeState;\r\n }\r\n\r\n subscribeSubscriptionDisplayModeState(listener: ListenerCallback): UnsubscribeCallback {\r\n this._subscriptionDisplayModeListeners.push(listener);\r\n\r\n return () => {\r\n this._subscriptionDisplayModeListeners = this._subscriptionDisplayModeListeners.filter(l => l !== listener);\r\n };\r\n }\r\n\r\n private isSubscriptionDisplayModeStateChanged(newState: SubscriptionDisplayModeActionType) {\r\n let update: boolean = false;\r\n\r\n if (newState) {\r\n if (!this._subscriptionDisplayModeState)\r\n update = true;\r\n else if (this._subscriptionDisplayModeState !== newState)\r\n update = true;\r\n }\r\n\r\n return update;\r\n }\r\n /* end of subscription display mode state */\r\n\r\n /*\r\n dispatch takes current state and action then, process and return a resulting state\r\n */\r\n dispatch(reducer: IReducer, action: IAction): void;\r\n dispatch(reducer: IReducer, action: IAction): void;\r\n dispatch(reducer: IReducer, action: IAction): void;\r\n dispatch(reducer: any, action: IAction): void { \r\n if (action.type in ChannelActionType) { \r\n let newState: any = reducer(this._channelState, action);\r\n\r\n if (this.isChannelStateChanged(newState)) {\r\n this._channelState = newState;\r\n this._channelListeners.forEach((listener: ListenerCallback) => listener());\r\n }\r\n }\r\n else if (action.type in DisplayModeActionType) {\r\n let newState: any = reducer(this._displayModeState, action);\r\n\r\n if (this.isDisplayModeStateChanged(newState)) {\r\n this._displayModeState = newState;\r\n this._displayModeListeners.forEach((listener: ListenerCallback) => listener());\r\n } \r\n }\r\n else if (action.type in SubscriptionDisplayModeActionType) {\r\n let newState: any = reducer(this._subscriptionDisplayModeState, action);\r\n\r\n if (this.isSubscriptionDisplayModeStateChanged(newState)) {\r\n this._subscriptionDisplayModeState = newState;\r\n this._subscriptionDisplayModeListeners.forEach((listener: ListenerCallback) => listener());\r\n }\r\n }\r\n } \r\n}","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nimport { TestBed } from '@angular/core/testing';\n\nexport const environment = {\n production: false,\n\n platformName: 'AppCore',\n platformVersion: '1.0', \n additionalApiNamespace: 'UltraRSS',\n titleToDisplay: 'UltraRSS',\n applicationKey: '78F1621A-1738-4F40-98CA-E172EF2EF1A9',\n defaultEmail: 'eunae@ultrarss.com',\n defaultChannelImageUrl: 'http://ultrarss.com/assets/ultrarss.png',\n defaultChannelItemImageUrl: 'http://ultrarss.com/assets/no-image-icon.png'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import 'hammerjs';\nimport { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { AppModule } from 'src/app/app.module';\nimport { environment } from 'src/environments/environment';\n\nif (environment.production) {\n enableProdMode(); \n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":""}