{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/app-header/app-header.component.ts","./src/app/components/app-header/app-header.component.html","./src/app/components/edit-form/edit-form.component.ts","./src/app/components/edit-form/edit-form.component.html","./src/app/components/link-table/link-table.component.ts","./src/app/components/link-table/link-table.component.html","./src/app/components/message-dialog/message-dialog.component.ts","./src/app/components/message-dialog/message-dialog.component.html","./src/app/components/shared-compoenents.module.ts","./src/app/services/api.service.ts","./src/app/services/dialog.service.ts","./src/app/store/index.ts","./src/app/store/links/index.ts","./src/app/store/links/links-store.module.ts","./src/app/store/links/links.actions.ts","./src/app/store/links/links.effects.ts","./src/app/store/links/links.reducers.ts","./src/app/store/links/links.selectors.ts","./src/app/store/lookup-data/index.ts","./src/app/store/lookup-data/lookup-data-store.module.ts","./src/app/store/lookup-data/lookup-data.actions.ts","./src/app/store/lookup-data/lookup-data.effects.ts","./src/app/store/lookup-data/lookup-data.reducer.ts","./src/app/store/lookup-data/lookup-data.selectors.ts","./src/app/store/store.module.ts","./src/app/store/user/index.ts","./src/app/store/user/user-store.module.ts","./src/app/store/user/user.actions.ts","./src/app/store/user/user.effects.ts","./src/app/store/user/user.reducers.ts","./src/app/store/user/user.selectors.ts","./src/main.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nconst routes: Routes = [\n {\n path: '',\n loadChildren: () =>\n import('./public/public.module').then((m) => m.PublicModule),\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable, Subscription } from 'rxjs';\nimport { IAppState, selectError, selectIsLoading } from './store';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { DialogService } from './services/dialog.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit, OnDestroy {\n isLoading$!: Observable;\n error$!: Observable;\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private readonly store: Store,\n private spinnerService: NgxSpinnerService,\n private dialogService: DialogService\n ) {}\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((x) => x.unsubscribe);\n }\n\n ngOnInit(): void {\n this.isLoading$ = this.store.select(selectIsLoading);\n this.error$ = this.store.select(selectError);\n this.subscriptions.push(\n this.isLoading$.subscribe((result) =>\n result ? this.spinnerService.show() : this.spinnerService.hide()\n )\n );\n this.subscriptions.push(\n this.error$.subscribe((err) => {\n if (err) {\n console.log(err);\n this.dialogService.showErrorDialog(err.name, err.message, 400);\n }\n })\n );\n }\n}\n","\n
\n \n \n
\n","import { NgModule, isDevMode } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { SharedComponentModule } from './components/shared-compoenents.module';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ActionReducer, MetaReducer, StoreModule } from '@ngrx/store';\nimport { IAppState, reducers } from './store';\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\nimport { EffectsModule } from '@ngrx/effects';\nimport { localStorageSync } from 'ngrx-store-localstorage';\nimport { NgxSpinnerModule } from 'ngx-spinner';\nimport { AppStoreModule } from './store/store.module';\nimport { HttpClientModule } from '@angular/common/http';\n\nfunction localStorageSyncReducer(\n reducer: ActionReducer\n): ActionReducer {\n return localStorageSync({\n keys: [\n { user: ['currentUser'] },\n { links: ['selectedLink'] },\n {\n lookupData: ['categories'],\n },\n ],\n rehydrate: true,\n removeOnUndefined: true,\n storage: sessionStorage,\n })(reducer);\n}\n\nconst metaReducers: Array> = [\n localStorageSyncReducer,\n];\n\n@NgModule({\n declarations: [AppComponent],\n imports: [\n BrowserModule,\n AppRoutingModule,\n HttpClientModule,\n SharedComponentModule,\n BrowserAnimationsModule,\n StoreDevtoolsModule.instrument(),\n StoreModule.forRoot(reducers, { metaReducers }),\n EffectsModule.forRoot(),\n AppStoreModule,\n NgxSpinnerModule.forRoot(),\n StoreDevtoolsModule.instrument({ maxAge: 25, logOnly: !isDevMode() }),\n ],\n providers: [],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable, Subscription } from 'rxjs';\nimport { IUserState, UserDetails } from 'src/app/store/user/user.store';\nimport * as fromUser from '../../store/user/index';\nimport { Route, Router } from '@angular/router';\n\n@Component({\n selector: 'app-header',\n templateUrl: './app-header.component.html',\n styleUrls: ['./app-header.component.scss'],\n})\nexport class AppHeaderComponent implements OnInit, OnDestroy {\n currentUser$: Observable | null = null;\n private subscriptions: Subscription[] = [];\n constructor(\n private readonly store: Store,\n private readonly router: Router\n ) {}\n\n ngOnInit(): void {\n this.currentUser$ = this.store.select(fromUser.selectCurrentUser);\n }\n ngOnDestroy(): void {\n this.subscriptions.forEach((x) => x.unsubscribe());\n }\n onLogoutButtonClick() {\n this.store.dispatch(fromUser.logout());\n }\n onLoginButtonClick() {\n window.location.href = '/secure';\n }\n}\n","\n\n \n Home\n \n
\n \n person Welcome {{ user.firstName }}!\n \n \n \n \n
\n
\n
\n
\n\n \n loginLogin\n \n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { IAppState } from 'src/app/store';\r\nimport { Link } from 'src/app/store/links/links.store';\r\nimport * as fromLink from 'src/app/store/links/index';\r\nimport * as fromLookup from 'src/app/store/lookup-data/index';\r\nimport { LnkCategory } from 'src/app/store/lookup-data/lookup-data.store';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { DialogService } from 'src/app/services/dialog.service';\r\nimport { Actions, ofType } from '@ngrx/effects';\r\n@Component({\r\n selector: 'app-edit-form',\r\n templateUrl: './edit-form.component.html',\r\n styleUrls: ['./edit-form.component.scss'],\r\n})\r\nexport class EditFormComponent implements OnInit, OnDestroy {\r\n selectedLink$: Observable | null = null;\r\n categories$: Observable | null = null;\r\n saveResult$: Observable | null = null;\r\n\r\n subscriptions: Subscription[] = [];\r\n\r\n linkForm = new FormGroup({\r\n refNo: new FormControl(0),\r\n linkCatagoryId: new FormControl(null),\r\n linkName: new FormControl('', [Validators.required]),\r\n linkUrl: new FormControl('', [Validators.required]),\r\n });\r\n\r\n private editedLink!: Link;\r\n private destroyed$ = new Subject();\r\n\r\n constructor(\r\n private readonly store: Store,\r\n private readonly dialogRef: MatDialogRef,\r\n private readonly dialogService: DialogService,\r\n private action$: Actions\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((x) => x.unsubscribe());\r\n }\r\n\r\n ngOnInit(): void {\r\n this.selectedLink$ = this.store.select(fromLink.selectSelectedLink);\r\n this.categories$ = this.store.select(fromLookup.selectCategories);\r\n\r\n this.loadLookupData();\r\n this.initForm();\r\n this.actionSubscriptions();\r\n }\r\n\r\n submit(): void {\r\n this.editedLink = {\r\n ...this.editedLink,\r\n linkCatagoryId: this.linkForm.value.linkCatagoryId ?? null,\r\n linkName: this.linkForm.value.linkName as string,\r\n linkUrl: this.linkForm.value.linkUrl as string,\r\n linkId: 0,\r\n category: null,\r\n };\r\n this.store.dispatch(fromLink.saveLink(this.editedLink));\r\n }\r\n\r\n onDeleteButtonClicked(refNo: number) {\r\n const dialogResult = this.dialogService.showConfirmDialog(\r\n `Deleting ${this.editedLink.linkName}`,\r\n 'Are you sure you want to delete this link?'\r\n );\r\n\r\n this.subscriptions.push(\r\n dialogResult.subscribe((result) => {\r\n if (result) {\r\n this.store.dispatch(fromLink.deleteLink({ refNo }));\r\n }\r\n })\r\n );\r\n }\r\n\r\n private loadLookupData() {\r\n this.store.dispatch(fromLookup.getCategories());\r\n }\r\n\r\n private initForm() {\r\n if (this.selectedLink$) {\r\n this.subscriptions.push(\r\n this.selectedLink$.subscribe((link) => {\r\n if (link) {\r\n this.editedLink = link;\r\n this.linkForm.patchValue({ ...link });\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n private actionSubscriptions() {\r\n this.subscriptions.push(\r\n this.action$\r\n .pipe(ofType(fromLink.saveLinkSuccess.type), takeUntil(this.destroyed$))\r\n .subscribe(() => this.showDialogAndClose('Success', 'Save Successful.'))\r\n );\r\n\r\n this.subscriptions.push(\r\n this.action$\r\n .pipe(\r\n ofType(fromLink.deleteLinkSuccess.type),\r\n takeUntil(this.destroyed$)\r\n )\r\n .subscribe(() =>\r\n this.showDialogAndClose('Success', 'Delete Successful')\r\n )\r\n );\r\n }\r\n\r\n private showDialogAndClose(title: string, message: string) {\r\n this.subscriptions.push(\r\n this.dialogService\r\n .showSuccessDialog(title, message)\r\n .subscribe(() => this.dialogRef.close(this.editedLink))\r\n );\r\n }\r\n}\r\n","\n

Edit Link

\n
\n \n Link name\n \n \n \n Url\n \n \n \n Category\n \n {{ category.categoryName }}\n \n \n
\n \n \n Delete\n \n \n Save and Close\n \n \n \n\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Link, SearchLinkRequest } from 'src/app/store/links/links.store';\nimport {\n Observable,\n Subject,\n Subscription,\n debounceTime,\n distinctUntilChanged,\n of,\n} from 'rxjs';\nimport { UserDetails } from 'src/app/store/user/user.store';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from 'src/app/store';\nimport * as fromUsers from 'src/app/store/user/index';\nimport * as fromLinks from 'src/app/store/links/index';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatDialog } from '@angular/material/dialog';\nimport { EditFormComponent } from '../edit-form/edit-form.component';\n\n@Component({\n selector: 'link-table',\n templateUrl: './link-table.component.html',\n styleUrls: ['./link-table.component.scss'],\n})\nexport class LinkTableComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() data!: Link[];\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild('searchInput') searchInput!: ElementRef;\n @Output() onSearchRequestChanged: EventEmitter =\n new EventEmitter();\n\n currentUser$: Observable | null = null;\n dataSource: MatTableDataSource = new MatTableDataSource();\n displayColumns = ['linkName', 'linkUrl', 'category'];\n searchRequest$!: Observable;\n resultCount$!: Observable;\n resultCount = 0;\n canEdit: boolean = false;\n searchRequest: SearchLinkRequest = {\n asc: true,\n pageNo: 1,\n orderBy: 'linkName',\n pageSize: 25,\n searchText: '',\n };\n\n searchTextUpdate = new Subject();\n\n private readonly appRoleName = 'LinksManager_Users';\n private readonly redirectEndPoint = 'public/redirect.aspx?linkId';\n private subscriptions: Subscription[] = [];\n\n constructor(\n private readonly store: Store,\n private readonly dialog: MatDialog,\n private readonly toastr: ToastrService\n ) {\n this.getSearchRequest();\n this.getCurrentUser();\n this.getResultCount();\n this.applyFilter();\n this.getSearchRequest();\n }\n ngOnDestroy(): void {\n this.subscriptions.forEach((x) => x.unsubscribe());\n }\n\n ngAfterViewInit(): void {\n this.searchInput.nativeElement.focus();\n }\n\n ngOnInit(): void {\n this.dataSource.data = this.data;\n }\n\n sortData(sort: Sort) {\n this.searchRequest = {\n ...this.searchRequest,\n orderBy: sort.active,\n asc: sort.direction !== 'desc',\n };\n\n this.sort.active = sort.active;\n this.sort.direction = sort.direction;\n\n this.onSearchRequestChanged.emit(this.searchRequest);\n }\n\n onPageChange(event: PageEvent) {\n this.searchRequest = {\n ...this.searchRequest,\n pageNo: event.pageIndex + 1,\n pageSize: event.pageSize,\n };\n\n this.onSearchRequestChanged.emit(this.searchRequest);\n }\n\n applyFilter() {\n this.subscriptions.push(\n this.searchTextUpdate\n .pipe(debounceTime(500), distinctUntilChanged())\n .subscribe((event) => {\n const searchInput = event.target as HTMLInputElement;\n const filterValue = searchInput.value;\n if (filterValue !== this.searchRequest.searchText) {\n this.searchRequest = {\n ...this.searchRequest,\n searchText: filterValue,\n pageNo: 1,\n };\n this.onSearchRequestChanged.emit(this.searchRequest);\n }\n })\n );\n }\n\n getResultCount() {\n this.resultCount$ = this.store.select(fromLinks.selectRecordCount);\n\n this.subscriptions.push(\n this.resultCount$.subscribe((result) => (this.resultCount = result))\n );\n }\n\n getCurrentUser() {\n this.currentUser$ = this.store.select(fromUsers.selectCurrentUser);\n\n this.subscriptions.push(\n this.currentUser$.subscribe((result) => {\n if (result) {\n this.canEdit = result.operations?.includes(\n this.appRoleName\n ) as boolean;\n } else this.canEdit = false;\n })\n );\n }\n\n getSearchRequest() {\n this.searchRequest$ = this.store.select(fromLinks.selectSearchRequest);\n\n this.subscriptions.push(\n this.searchRequest$.subscribe((result) => {\n if (result) {\n this.searchRequest = result;\n }\n })\n );\n }\n\n clearSearch() {\n this.searchRequest = { ...this.searchRequest, searchText: '' };\n this.onSearchRequestChanged.emit(this.searchRequest);\n }\n\n copyUrlToClipboard(refNo: number) {\n const url = `${window.location.href}${this.redirectEndPoint}=${refNo}`;\n\n navigator.clipboard.writeText(url);\n this.toastr.success('Url copied.');\n }\n\n openLinkNewTab(refNo: number) {\n const url = `${window.location.href}${this.redirectEndPoint}=${refNo}`;\n window.open(url);\n }\n\n openEditDialog(refNo: number) {\n if (refNo === 0) this.store.dispatch(fromLinks.createNewLink());\n else this.store.dispatch(fromLinks.getSelectedLink({ refNo: refNo }));\n\n const dialog = this.dialog.open(EditFormComponent, {\n width: '500px',\n });\n\n dialog.afterClosed().subscribe((result: Link | null) => {\n if (result) {\n this.searchRequest = { ...this.searchRequest, searchText: '' };\n this.onSearchRequestChanged.emit(this.searchRequest);\n this.store.dispatch(fromLinks.getLinks(this.searchRequest));\n }\n });\n }\n}\n","
\r\n \r\n Search\r\n \r\n 0\r\n \"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearSearch()\"\r\n >\r\n close\r\n \r\n \r\n\r\n \r\n Insert Link\r\n \r\n
\r\n\r\n \r\n \r\n Link Name\r\n \r\n \r\n
\r\n {{ row.linkName }}\r\n \r\n \r\n \r\n content_copy\r\n Copy Link\r\n \r\n \r\n open_in_browser\r\n Test Link\r\n \r\n \r\n edit\r\n Edit Link\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Link Url\r\n \r\n \r\n {{ row.linkUrl }}\r\n \r\n \r\n \r\n \r\n Category\r\n \r\n \r\n {{ row.category?.categoryName }}\r\n \r\n \r\n \r\n Link Attr\r\n \r\n {{ row.linkAttribs }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n content_copy\r\n \r\n \r\n edit\r\n \r\n \r\n open_in_browser\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n No links found\r\n \r\n\r\n\r\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-confirm-dialog',\n templateUrl: './message-dialog.component.html',\n styleUrls: ['./message-dialog.component.scss'],\n})\nexport class MessageDialogComponent {\n title: string;\n message: string;\n type: DialogType;\n\n DialogType = DialogType;\n\n constructor(\n private readonly dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) data: ConfirmDialogModel\n ) {\n this.title = data.title;\n this.message = data.message;\n this.type = data.type;\n }\n\n onConfirm() {\n this.dialogRef.close(true);\n }\n\n onDismiss() {\n this.dialogRef.close(false);\n }\n\n getDialogIcon() {\n switch (this.type) {\n case DialogType.Confirm:\n return 'help';\n case DialogType.Error:\n return 'error';\n case DialogType.Success:\n return 'check';\n case DialogType.Info:\n return 'report';\n }\n }\n}\n\nexport class ConfirmDialogModel {\n constructor(\n public title: string,\n public message: string,\n public type: DialogType\n ) {}\n}\n\nexport enum DialogType {\n Confirm,\n Error,\n Success,\n Info,\n}\n","
\n

\n {{ title }}\n

\n \n {{ getDialogIcon() }}\n \n
\n
\n

{{ message }}

\n
\n\n
\n \n No\n \n \n
\n","import { NgModule } from '@angular/core';\r\nimport { AppHeaderComponent } from './app-header/app-header.component';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { LinkTableComponent } from './link-table/link-table.component';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { EditFormComponent } from './edit-form/edit-form.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MessageDialogComponent } from './message-dialog/message-dialog.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppHeaderComponent,\r\n LinkTableComponent,\r\n EditFormComponent,\r\n MessageDialogComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatPaginatorModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n RouterModule,\r\n MatDialogModule,\r\n ToastrModule.forRoot(),\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ],\r\n exports: [AppHeaderComponent, LinkTableComponent, MessageDialogComponent],\r\n})\r\nexport class SharedComponentModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, tap, map } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ApiService {\r\n constructor(private httpClient: HttpClient) {}\r\n public get(url: string, options?: any): Observable {\r\n // @ts-ignore\r\n return this.httpClient.get(url, options);\r\n }\r\n public post(url: string, data: any, options?: any): Observable {\r\n // @ts-ignore\r\n return this.httpClient.post(url, data, options);\r\n }\r\n public put(url: string, data: any, options?: any): Observable {\r\n // @ts-ignore\r\n return this.httpClient.put(url, data, options);\r\n }\r\n public delete(url: string, options?: any): Observable {\r\n // @ts-ignore\r\n return this.httpClient.delete(url, options);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport {\r\n ConfirmDialogModel,\r\n DialogType,\r\n MessageDialogComponent,\r\n} from '../components/message-dialog/message-dialog.component';\r\nimport { Observable, switchMap, of } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DialogService {\r\n constructor(private readonly dialog: MatDialog) {}\r\n public showErrorDialog(\r\n title: string,\r\n errorMessage: string,\r\n maxWidth?: number\r\n ): Observable {\r\n const dialogData = new ConfirmDialogModel(\r\n title,\r\n errorMessage,\r\n DialogType.Error\r\n );\r\n\r\n const dialogRef = this.dialog.open(MessageDialogComponent, {\r\n maxWidth: maxWidth ?? 500,\r\n data: dialogData,\r\n });\r\n\r\n return dialogRef.afterClosed().pipe(switchMap((result) => of(result)));\r\n }\r\n\r\n public showSuccessDialog(\r\n title: string,\r\n message: string,\r\n maxWidth?: number\r\n ): Observable {\r\n const dialogData = new ConfirmDialogModel(\r\n title,\r\n message,\r\n DialogType.Success\r\n );\r\n\r\n const dialogRef = this.dialog.open(MessageDialogComponent, {\r\n maxWidth: maxWidth ?? 500,\r\n data: dialogData,\r\n });\r\n\r\n return dialogRef.afterClosed().pipe(switchMap((result) => of(result)));\r\n }\r\n\r\n public showInfoDialog(\r\n title: string,\r\n message: string,\r\n maxWidth?: number\r\n ): Observable {\r\n const dialogData = new ConfirmDialogModel(title, message, DialogType.Info);\r\n\r\n const dialogRef = this.dialog.open(MessageDialogComponent, {\r\n maxWidth: maxWidth ?? 500,\r\n data: dialogData,\r\n });\r\n\r\n return dialogRef.afterClosed().pipe(switchMap((result) => of(result)));\r\n }\r\n\r\n public showConfirmDialog(\r\n title: string,\r\n message: string,\r\n maxWidth?: number\r\n ): Observable {\r\n const dialogData = new ConfirmDialogModel(\r\n title,\r\n message,\r\n DialogType.Confirm\r\n );\r\n\r\n const dialogRef = this.dialog.open(MessageDialogComponent, {\r\n maxWidth: maxWidth ?? 500,\r\n data: dialogData,\r\n });\r\n\r\n return dialogRef.afterClosed().pipe(switchMap((result) => of(result)));\r\n }\r\n}\r\n","import { ActionReducerMap, createSelector } from '@ngrx/store';\r\nimport { IUserState } from './user/user.store';\r\nimport { userReducer } from './user/user.reducers';\r\nimport { UserEffects } from './user/user.effects';\r\nimport { ILinkState } from './links/links.store';\r\nimport { linkReducer } from './links/links.reducers';\r\nimport { LinksEffects } from './links/links.effects';\r\nimport { ILookupDataState } from './lookup-data/lookup-data.store';\r\nimport { lookupDataReducer } from './lookup-data/lookup-data.reducer';\r\nimport { LookupDataEffects } from './lookup-data/lookup-data.effects';\r\n\r\nexport interface IAppState {\r\n user: IUserState;\r\n links: ILinkState;\r\n lookupData: ILookupDataState;\r\n}\r\n\r\nexport const reducers: ActionReducerMap = {\r\n user: userReducer,\r\n links: linkReducer,\r\n lookupData: lookupDataReducer,\r\n};\r\n\r\nexport const effects = [UserEffects, LinksEffects, LookupDataEffects];\r\n\r\nexport const selectState = (state: IAppState) => state;\r\nexport const selectIsLoading = createSelector(\r\n selectState,\r\n (state: IAppState) => state.links.isLoading\r\n);\r\nexport const selectError = createSelector(\r\n selectState,\r\n (state: IAppState) => state.links.error ?? state.lookupData.error\r\n);\r\n","export * from './links.selectors';\r\nexport * from './links.actions';\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { LinksEffects } from './links.effects';\r\nimport { linkReducer } from './links.reducers';\r\n\r\n@NgModule({\r\n imports: [\r\n StoreModule.forFeature('links', linkReducer),\r\n EffectsModule.forFeature([LinksEffects]),\r\n ],\r\n})\r\nexport class LinksStoreModule {}\r\n","import { createAction, emptyProps, props } from '@ngrx/store';\r\nimport { Link, SearchLinkRequest, SearchLinkResponse } from './links.store';\r\n\r\nconst prefix = '[Links]';\r\n\r\nexport const getLinks = createAction(\r\n `${prefix} Get all`,\r\n props()\r\n);\r\nexport const getSelectedLink = createAction(\r\n `${prefix} Get link`,\r\n props<{ refNo: number }>()\r\n);\r\nexport const createNewLink = createAction(`${prefix} Create link`, emptyProps);\r\nexport const saveLink = createAction(`${prefix} Update Link`, props());\r\nexport const getLinksSuccess = createAction(\r\n `${prefix} Get all success`,\r\n props()\r\n);\r\nexport const getSelectedLinkSuccess = createAction(\r\n `${prefix} Get link success`,\r\n props<{ result: Link }>()\r\n);\r\nexport const saveLinkSuccess = createAction(\r\n `${prefix} Save link success`,\r\n emptyProps\r\n);\r\nexport const deleteLink = createAction(\r\n `${prefix} Delete Link`,\r\n props<{ refNo: number }>()\r\n);\r\nexport const deleteLinkSuccess = createAction(\r\n `${prefix} Delete link success`,\r\n emptyProps\r\n);\r\nexport const apiCallFailed = createAction(\r\n `${prefix} Api return error`,\r\n props<{ err: Error }>()\r\n);\r\n","import { Injectable } from '@angular/core';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { ApiService } from 'src/app/services/api.service';\r\nimport { ILinkState, Link, SearchLinkResponse } from './links.store';\r\nimport { Store } from '@ngrx/store';\r\nimport * as fromLinks from './index';\r\nimport { catchError, switchMap, map, of, tap, withLatestFrom } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class LinksEffects {\r\n private linkEndPoint: string = '/api/links';\r\n\r\n constructor(\r\n private readonly action$: Actions,\r\n private readonly apiService: ApiService,\r\n private readonly store: Store\r\n ) {}\r\n\r\n getLinks = createEffect(() =>\r\n this.action$.pipe(\r\n ofType(fromLinks.getLinks.type),\r\n withLatestFrom(this.store.select(fromLinks.selectSearchRequest)),\r\n switchMap(([never, searchRequest]) =>\r\n this.apiService.post(\r\n `${this.linkEndPoint}/search`,\r\n searchRequest\r\n )\r\n ),\r\n map((result: SearchLinkResponse) => fromLinks.getLinksSuccess(result)),\r\n catchError((error: any, caught) => {\r\n this.store.dispatch(\r\n fromLinks.apiCallFailed({\r\n err: {\r\n message: error.error,\r\n name: 'Failed when getting links',\r\n },\r\n })\r\n );\r\n throw caught;\r\n })\r\n )\r\n );\r\n\r\n getLink = createEffect(() =>\r\n this.action$.pipe(\r\n ofType(fromLinks.getSelectedLink.type),\r\n switchMap(({ refNo }) =>\r\n this.apiService.get(`${this.linkEndPoint}/${refNo}`)\r\n ),\r\n map((link) => fromLinks.getSelectedLinkSuccess({ result: link })),\r\n catchError((error: any, caught) => {\r\n this.store.dispatch(\r\n fromLinks.apiCallFailed({\r\n err: {\r\n message: error.error,\r\n name: 'Failed when getting link',\r\n },\r\n })\r\n );\r\n throw caught;\r\n })\r\n )\r\n );\r\n\r\n saveLink = createEffect(() =>\r\n this.action$.pipe(\r\n ofType(fromLinks.saveLink.type),\r\n switchMap((link: Link) =>\r\n link\r\n ? link.refNo === 0\r\n ? this.apiService.post(this.linkEndPoint, link)\r\n : this.apiService.put(\r\n `${this.linkEndPoint}/${link.refNo}`,\r\n link\r\n )\r\n : of(null)\r\n ),\r\n map(() => fromLinks.saveLinkSuccess()),\r\n catchError((error: any, caught) => {\r\n this.store.dispatch(\r\n fromLinks.apiCallFailed({\r\n err: {\r\n message: error.error,\r\n name: 'Failed when saving link',\r\n },\r\n })\r\n );\r\n throw caught;\r\n })\r\n )\r\n );\r\n\r\n deleteLink = createEffect(() =>\r\n this.action$.pipe(\r\n ofType(fromLinks.deleteLink.type),\r\n switchMap(({ refNo }) =>\r\n this.apiService.delete(`${this.linkEndPoint}/${refNo}`)\r\n ),\r\n map(() => fromLinks.deleteLinkSuccess()),\r\n catchError((error: any, caught) => {\r\n this.store.dispatch(\r\n fromLinks.apiCallFailed({\r\n err: {\r\n message: error.error,\r\n name: 'Failed when deleting link',\r\n },\r\n })\r\n );\r\n throw caught;\r\n })\r\n )\r\n );\r\n}\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\nimport { ILinkState, Link } from './links.store';\r\nimport * as featureActions from './index';\r\n\r\nconst initialState: ILinkState = {\r\n error: null,\r\n links: null,\r\n searchRequest: null,\r\n selectedLink: null,\r\n isLoading: false,\r\n resultCount: 0,\r\n};\r\n\r\nconst featureReducer = createReducer(\r\n initialState,\r\n on(featureActions.getLinks, (state, searchRequest) => ({\r\n ...state,\r\n links: null,\r\n error: null,\r\n searchRequest,\r\n isLoading: true,\r\n })),\r\n on(featureActions.getLinksSuccess, (state, searchResult) => ({\r\n ...state,\r\n error: null,\r\n isLoading: false,\r\n links: searchResult.searchResults,\r\n resultCount: searchResult.recordCount,\r\n })),\r\n on(featureActions.getSelectedLinkSuccess, (state, { result }) => ({\r\n ...state,\r\n error: null,\r\n selectedLink: result,\r\n })),\r\n on(featureActions.saveLink, (state) => ({\r\n ...state,\r\n error: null,\r\n isLoading: true,\r\n })),\r\n on(featureActions.saveLinkSuccess, (state) => ({\r\n ...state,\r\n error: null,\r\n isLoading: false,\r\n links: null,\r\n })),\r\n on(featureActions.apiCallFailed, (state, { err }) => ({\r\n ...state,\r\n error: err,\r\n isLoading: false,\r\n })),\r\n on(featureActions.createNewLink, (state) => ({\r\n ...state,\r\n selectedLink: {\r\n refNo: 0,\r\n linkName: null,\r\n linkUrl: null,\r\n linkCatagoryId: null,\r\n linkScope: null,\r\n linkAttribs: null,\r\n linkCreatedBy: null,\r\n linkCreatedOn: null,\r\n linkUpdatedBy: null,\r\n linkUpdatedOn: null,\r\n linkId: null,\r\n category: null,\r\n },\r\n })),\r\n on(featureActions.deleteLinkSuccess, (state) => ({\r\n ...state,\r\n error: null,\r\n isLoading: false,\r\n links: null,\r\n }))\r\n);\r\n\r\nexport function linkReducer(state = initialState, action: Action) {\r\n return featureReducer(state, action);\r\n}\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { ILinkState } from './links.store';\r\n\r\nexport const selectLinkState = createFeatureSelector('links');\r\nexport const selectIsLoading = createSelector(\r\n selectLinkState,\r\n (state) => state.isLoading\r\n);\r\nexport const selectLinks = createSelector(\r\n selectLinkState,\r\n (state) => state.links\r\n);\r\nexport const selectSelectedLink = createSelector(\r\n selectLinkState,\r\n (state) => state.selectedLink\r\n);\r\nexport const selectSearchRequest = createSelector(\r\n selectLinkState,\r\n (state) => state.searchRequest\r\n);\r\nexport const selectRecordCount = createSelector(\r\n selectLinkState,\r\n (state) => state.resultCount\r\n);\r\n","export * from './lookup-data.actions';\r\nexport * from './lookup-data.selectors';\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EffectsModule } from '@ngrx/effects';\nimport { LookupDataEffects } from './lookup-data.effects';\nimport { lookupDataReducer } from './lookup-data.reducer';\nimport { StoreModule } from '@ngrx/store';\n\n@NgModule({\n declarations: [],\n imports: [\n StoreModule.forFeature('lookupData', lookupDataReducer),\n EffectsModule.forFeature([LookupDataEffects]),\n ],\n})\nexport class LookupDataStoreModule {}\n","import { createAction, emptyProps, props } from '@ngrx/store';\nimport { LnkCategory } from './lookup-data.store';\n\nconst prefix = '[LookupData]';\n\nexport const getCategories = createAction(\n `${prefix} Get Link Categories`,\n emptyProps\n);\nexport const getCategoriesSuccess = createAction(\n `${prefix} Get Link Categories Success`,\n props<{ result: Array }>()\n);\nexport const getCategoriesFailed = createAction(\n `${prefix} Get Link Categories Failed`,\n props<{ err: Error }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport * as fromLookupData from './index';\nimport { catchError, map, switchMap } from 'rxjs';\nimport { ApiService } from 'src/app/services/api.service';\nimport { ILookupDataState, LnkCategory } from './lookup-data.store';\nimport { Store } from '@ngrx/store';\n\n@Injectable()\nexport class LookupDataEffects {\n private lookupDateEndPoint: string = '/api/lookupData/categories';\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private store: Store\n ) {}\n\n getCategories = createEffect(() =>\n this.actions$.pipe(\n ofType(fromLookupData.getCategories.type),\n switchMap(() =>\n this.apiService.get>(this.lookupDateEndPoint)\n ),\n map((categories: Array) =>\n fromLookupData.getCategoriesSuccess({ result: categories })\n ),\n catchError((error: any, caught) => {\n this.store.dispatch(\n fromLookupData.getCategoriesFailed({\n err: {\n message: error.error,\n name: 'Failed when getting categories',\n },\n })\n );\n throw caught;\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { ILookupDataState } from './lookup-data.store';\nimport * as featureActions from './index';\nimport { state } from '@angular/animations';\nimport { result } from 'lodash';\n\nexport const initialState: ILookupDataState = {\n categories: null,\n isLoading: false,\n error: undefined,\n};\n\nexport const lookupDataReducer = createReducer(\n initialState,\n on(featureActions.getCategories, (state) => ({ ...state, isLoading: true })),\n on(featureActions.getCategoriesSuccess, (state, { result }) => ({\n ...state,\n isLoading: false,\n categories: result,\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { ILookupDataState } from './lookup-data.store';\r\n\r\nexport const selectLookupDataState =\r\n createFeatureSelector('lookupData');\r\n\r\nexport const selectCategories = createSelector(\r\n selectLookupDataState,\r\n (state) => state.categories\r\n);\r\n\r\nexport const selectIsLoading = createSelector(\r\n selectLookupDataState,\r\n (state) => state.isLoading\r\n);\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserStoreModule } from './user/user-store.module';\nimport { LinksStoreModule } from './links/links-store.module';\nimport { LookupDataStoreModule } from './lookup-data/lookup-data-store.module';\n\n@NgModule({\n declarations: [],\n imports: [UserStoreModule, LinksStoreModule, LookupDataStoreModule],\n})\nexport class AppStoreModule {}\n","export * from './user.actions';\r\nexport * from './user.selectors';\r\n","import { NgModule } from '@angular/core';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { UserEffects } from './user.effects';\nimport { userReducer } from './user.reducers';\n\n@NgModule({\n imports: [\n StoreModule.forFeature('user', userReducer),\n EffectsModule.forFeature([UserEffects]),\n ],\n})\nexport class UserStoreModule {}\n","import { createAction, emptyProps, props } from '@ngrx/store';\r\nimport { UserDetails } from './user.store';\r\n\r\nconst prefix = '[User]';\r\n\r\nexport const getUser = createAction(`${prefix} Get User from API`, emptyProps);\r\nexport const getUserSuccess = createAction(\r\n `${prefix} Get User Success`,\r\n props<{ user: UserDetails }>()\r\n);\r\nexport const getUserFailed = createAction(\r\n `${prefix} Get User Failed`,\r\n props<{ error: Error }>()\r\n);\r\nexport const logout = createAction(`${prefix} Logout current user`, emptyProps);\r\nexport const logoutSuccess = createAction(\r\n `${prefix} Logout success`,\r\n emptyProps\r\n);\r\nexport const logoutFailed = createAction(`${prefix} Logout failed`, emptyProps);\r\n","import { Injectable } from '@angular/core';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport * as fromUser from './index';\r\nimport { map, switchMap, catchError, of } from 'rxjs';\r\nimport { ApiService } from 'src/app/services/api.service';\r\nimport { IUserState, UserDetails } from './user.store';\r\nimport { Store } from '@ngrx/store';\r\n\r\n@Injectable()\r\nexport class UserEffects {\r\n private authEndPoint: string = '/api/auth';\r\n private logoutPath: string = '/signout-oidc';\r\n constructor(\r\n private readonly actions$: Actions,\r\n private readonly apiService: ApiService,\r\n private readonly store: Store\r\n ) {}\r\n\r\n getUser = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(fromUser.getUser.type),\r\n switchMap(() => this.apiService.get(this.authEndPoint)),\r\n map((user: UserDetails) => fromUser.getUserSuccess({ user })),\r\n catchError((error, caught) => {\r\n this.store.dispatch(\r\n fromUser.getUserFailed({\r\n error: {\r\n message: error.error,\r\n name: 'Failed when getting user information',\r\n },\r\n })\r\n );\r\n return this.apiService.get(this.logoutPath);\r\n })\r\n )\r\n );\r\n\r\n logOut = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(fromUser.logout.type),\r\n switchMap(() => this.apiService.get(this.logoutPath)),\r\n map(() => fromUser.logoutSuccess()),\r\n catchError((error, caught) => {\r\n this.store.dispatch(fromUser.logoutFailed());\r\n return of();\r\n })\r\n )\r\n );\r\n}\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\nimport { IUserState } from './user.store';\r\nimport * as featureActions from './index';\r\n\r\nconst initialState: IUserState = {\r\n currentUser: null,\r\n error: null,\r\n isLoading: false,\r\n};\r\n\r\nconst featureReducer = createReducer(\r\n initialState,\r\n on(featureActions.getUser, (state) => ({ ...state, isLoading: true })),\r\n on(featureActions.getUserFailed, (state, { error }) => ({\r\n ...state,\r\n currentUser: null,\r\n isLoading: false,\r\n error,\r\n })),\r\n on(featureActions.getUserSuccess, (state, { user }) => ({\r\n ...state,\r\n currentUser: user,\r\n isLoading: false,\r\n error: null,\r\n })),\r\n on(featureActions.logoutSuccess, (state) => ({\r\n ...state,\r\n currentUser: null,\r\n })),\r\n on(featureActions.logoutFailed, (state) => ({ ...state, currentUser: null }))\r\n);\r\n\r\nexport function userReducer(state = initialState, action: Action) {\r\n return featureReducer(state, action);\r\n}\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { IUserState } from './user.store';\r\n\r\nexport const selectUserState = createFeatureSelector('user');\r\nexport const selectIsLoading = createSelector(\r\n selectUserState,\r\n (state) => state.isLoading\r\n);\r\nexport const selectCurrentUser = createSelector(\r\n selectUserState,\r\n (state) => state.currentUser\r\n);\r\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\n\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":["RouterModule","routes","path","loadChildren","then","m","PublicModule","AppRoutingModule","forRoot","imports","i1","exports","selectError","selectIsLoading","AppComponent","constructor","store","spinnerService","dialogService","subscriptions","ngOnDestroy","forEach","x","unsubscribe","ngOnInit","isLoading$","select","error$","push","subscribe","result","show","hide","err","console","log","showErrorDialog","name","message","i0","ɵɵdirectiveInject","Store","i2","NgxSpinnerService","i3","DialogService","selectors","decls","vars","consts","template","AppComponent_Template","rf","ctx","ɵɵelement","ɵɵelementStart","ɵɵelementEnd","isDevMode","BrowserModule","SharedComponentModule","BrowserAnimationsModule","StoreModule","reducers","StoreDevtoolsModule","EffectsModule","localStorageSync","NgxSpinnerModule","AppStoreModule","HttpClientModule","localStorageSyncReducer","reducer","keys","user","links","lookupData","rehydrate","removeOnUndefined","storage","sessionStorage","metaReducers","AppModule","bootstrap","instrument","maxAge","logOnly","declarations","StoreRootModule","EffectsRootModule","i4","fromUser","ɵɵtext","ɵɵproperty","_r5","ɵɵadvance","ɵɵtextInterpolate1","user_r3","firstName","ɵɵtemplate","AppHeaderComponent_div_8_button_1_Template","ɵɵlistener","AppHeaderComponent_div_8_Template_button_click_4_listener","ɵɵrestoreView","_r8","ctx_r7","ɵɵnextContext","ɵɵresetView","onLogoutButtonClick","AppHeaderComponent_ng_template_11_Template_button_click_0_listener","_r10","ctx_r9","onLoginButtonClick","AppHeaderComponent","router","currentUser$","selectCurrentUser","dispatch","logout","window","location","href","Router","AppHeaderComponent_Template","AppHeaderComponent_div_8_Template","AppHeaderComponent_ng_template_11_Template","ɵɵtemplateRefExtractor","ɵɵpipeBind1","_r1","Subject","takeUntil","fromLink","fromLookup","FormControl","FormGroup","Validators","ofType","category_r4","categoryId","ɵɵtextInterpolate","categoryName","EditFormComponent_form_0_button_19_Template_button_click_0_listener","_r7","link_r1","ngIf","ctx_r5","onDeleteButtonClicked","refNo","EditFormComponent_form_0_Template_form_submit_0_listener","_r9","ctx_r8","submit","EditFormComponent_form_0_mat_option_16_Template","EditFormComponent_form_0_button_19_Template","ctx_r0","linkForm","categories$","valid","EditFormComponent","dialogRef","action$","selectedLink$","saveResult$","linkCatagoryId","linkName","required","linkUrl","destroyed$","selectSelectedLink","selectCategories","loadLookupData","initForm","actionSubscriptions","editedLink","value","linkId","category","saveLink","dialogResult","showConfirmDialog","deleteLink","getCategories","link","patchValue","pipe","saveLinkSuccess","type","showDialogAndClose","deleteLinkSuccess","title","showSuccessDialog","close","MatDialogRef","Actions","EditFormComponent_Template","EditFormComponent_form_0_Template","EventEmitter","MatPaginator","MatSort","MatTableDataSource","debounceTime","distinctUntilChanged","fromUsers","fromLinks","LinkTableComponent_button_6_Template_button_click_0_listener","_r17","ctx_r16","clearSearch","LinkTableComponent_button_7_Template_button_click_0_listener","_r19","ctx_r18","openEditDialog","LinkTableComponent_td_11_button_16_Template_button_click_0_listener","_r25","row_r20","$implicit","ctx_r23","LinkTableComponent_td_11_Template_button_click_8_listener","restoredCtx","_r27","ctx_r26","copyUrlToClipboard","LinkTableComponent_td_11_Template_button_click_12_listener","ctx_r28","openLinkNewTab","LinkTableComponent_td_11_button_16_Template","_r21","ctx_r4","canEdit","row_r29","row_r30","row_r31","linkAttribs","LinkTableComponent_td_23_button_5_Template_button_click_0_listener","_r36","row_r32","ctx_r34","LinkTableComponent_td_23_Template_button_click_2_listener","_r38","ctx_r37","LinkTableComponent_td_23_button_5_Template","LinkTableComponent_td_23_Template_button_click_6_listener","ctx_r39","ctx_r12","LinkTableComponent","dialog","toastr","onSearchRequestChanged","dataSource","displayColumns","resultCount","searchRequest","asc","pageNo","orderBy","pageSize","searchText","searchTextUpdate","appRoleName","redirectEndPoint","getSearchRequest","getCurrentUser","getResultCount","applyFilter","ngAfterViewInit","searchInput","nativeElement","focus","data","sortData","sort","active","direction","emit","onPageChange","event","pageIndex","target","filterValue","resultCount$","selectRecordCount","operations","includes","searchRequest$","selectSearchRequest","url","navigator","clipboard","writeText","success","open","createNewLink","getSelectedLink","width","afterClosed","getLinks","MatDialog","ToastrService","viewQuery","LinkTableComponent_Query","LinkTableComponent_Template_input_keyup_4_listener","$event","next","LinkTableComponent_button_6_Template","LinkTableComponent_button_7_Template","LinkTableComponent_Template_table_matSortChange_8_listener","ɵɵelementContainerStart","LinkTableComponent_th_10_Template","LinkTableComponent_td_11_Template","ɵɵelementContainerEnd","LinkTableComponent_th_13_Template","LinkTableComponent_td_14_Template","LinkTableComponent_th_16_Template","LinkTableComponent_td_17_Template","LinkTableComponent_th_19_Template","LinkTableComponent_td_20_Template","LinkTableComponent_th_22_Template","LinkTableComponent_td_23_Template","LinkTableComponent_tr_24_Template","LinkTableComponent_tr_25_Template","LinkTableComponent_tr_26_Template","LinkTableComponent_Template_mat_paginator_page_28_listener","length","ɵɵpureFunction0","_c1","MAT_DIALOG_DATA","MessageDialogComponent_button_9_Template_button_click_0_listener","_r2","ctx_r1","onDismiss","MessageDialogComponent","DialogType","onConfirm","getDialogIcon","Confirm","Error","Success","Info","MessageDialogComponent_Template","MessageDialogComponent_button_9_Template","MessageDialogComponent_Template_button_click_10_listener","ConfirmDialogModel","MatToolbarModule","MatButtonModule","MatTableModule","MatSortModule","MatIconModule","MatPaginatorModule","MatMenuModule","MatInputModule","MatFormFieldModule","CommonModule","ToastrModule","MatDialogModule","FormsModule","ReactiveFormsModule","MatSelectModule","ApiService","httpClient","get","options","post","put","delete","ɵɵinject","HttpClient","factory","ɵfac","providedIn","switchMap","of","errorMessage","maxWidth","dialogData","showInfoDialog","createSelector","userReducer","UserEffects","linkReducer","LinksEffects","lookupDataReducer","LookupDataEffects","effects","selectState","state","isLoading","error","LinksStoreModule","forFeature","StoreFeatureModule","EffectsFeatureModule","createAction","emptyProps","props","prefix","getLinksSuccess","getSelectedLinkSuccess","apiCallFailed","createEffect","catchError","map","withLatestFrom","apiService","linkEndPoint","never","caught","getLink","createReducer","on","featureActions","initialState","selectedLink","featureReducer","searchResult","searchResults","recordCount","linkScope","linkCreatedBy","linkCreatedOn","linkUpdatedBy","linkUpdatedOn","action","createFeatureSelector","selectLinkState","selectLinks","LookupDataStoreModule","getCategoriesSuccess","getCategoriesFailed","fromLookupData","actions$","lookupDateEndPoint","categories","undefined","selectLookupDataState","UserStoreModule","getUser","getUserSuccess","getUserFailed","logoutSuccess","logoutFailed","authEndPoint","logoutPath","logOut","currentUser","selectUserState","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}