{"version":3,"file":"main.js","mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/app.settings.model.ts","./src/app/app.settings.ts","./src/app/pages/Administration/administration.component.ts","./src/app/pages/Administration/permissions/permissions-routing.module.ts","./src/app/pages/Administration/permissions/permissions.component.ts","./src/app/pages/Administration/permissions/permissions.model.ts","./src/app/pages/Administration/permissions/permissions.module.ts","./src/app/pages/Administration/roles/roles.model.ts","./src/app/pages/Administration/roles/roles/roles-routing.module.ts","./src/app/pages/Administration/roles/roles/roles.component.ts","./src/app/pages/Administration/roles/roles/roles.module.ts","./src/app/pages/Administration/user-defined-fields/user-defined-fields.model.ts","./src/app/pages/Administration/user-defined-fields/user-defined-fields.service.ts","./src/app/pages/Administration/user-defined-fields/user-defined-fields/user-defined-fields-routing.module.ts","./src/app/pages/Administration/user-defined-fields/user-defined-fields/user-defined-fields.component.ts","./src/app/pages/Administration/user-defined-fields/user-defined-fields/user-defined-fields.module.ts","./src/app/pages/Administration/users/users-routing.module.ts","./src/app/pages/Administration/users/users.component.ts","./src/app/pages/Administration/users/users.model.ts","./src/app/pages/Administration/users/users.module.ts","./src/app/pages/calculation/calculation.component.ts","./src/app/pages/calculation/calculation.model.ts","./src/app/pages/calculation/calculation.service.ts","./src/app/pages/calculation/chart-modal/chart-modal.component.ts","./src/app/pages/calculation/journal-modal/journal-modal.component.ts","./src/app/pages/calculation/lock-unlock-records-update/lock-unlock-records-update-routing.module.ts","./src/app/pages/calculation/lock-unlock-records-update/lock-unlock-records-update.component.ts","./src/app/pages/calculation/lock-unlock-records-update/lock-unlock-records-update.module.ts","./src/app/pages/calculation/run-model/run-model.component.ts","./src/app/pages/calculation/scenario-mode-modal/scenario-mode-modal.component.ts","./src/app/pages/calculation/serch-filtermodal/serch-filtermodal.component.ts","./src/app/pages/fund-information/fund-information.model.ts","./src/app/pages/fund-information/fund-information.service.ts","./src/app/pages/fund-information/funds/funds.component.ts","./src/app/pages/fund-information/funds/funds.model.ts","./src/app/pages/fund-information/funds/funds.service.ts","./src/app/pages/fund-information/investors/investors.component.ts","./src/app/pages/fund-information/investors/investors.model.ts","./src/app/pages/fund-information/investors/investors.routing.ts","./src/app/pages/import-popups/import-popup.component.ts","./src/app/pages/import-popups/import-popup.service.ts","./src/app/pages/lock-unlock-records/lock-unlock-records/lock-unlock-records-routing.module.ts","./src/app/pages/lock-unlock-records/lock-unlock-records/lock-unlock-records.component.ts","./src/app/pages/lock-unlock-records/lock-unlock-records/lock-unlock-records.module.ts","./src/app/pages/login/login.component.ts","./src/app/pages/login/login.model.ts","./src/app/pages/login/login.service.ts","./src/app/pages/pages.component.ts","./src/app/pages/reset-filter-calc-rule/reset-filter-calc-rule.service.ts","./src/app/pages/reset-filter-calc-rule/reset-filter-calc-rule/reset-filter-calc-rule-routing.module.ts","./src/app/pages/reset-filter-calc-rule/reset-filter-calc-rule/reset-filter-calc-rule.component.ts","./src/app/pages/search-filter/search-filter/search-filter-routing.module.ts","./src/app/pages/search-filter/search-filter/search-filter.component.ts","./src/app/pages/search-filter/search-filter/search-filter.module.ts","./src/app/pages/transactions/tier-transactions/tier-transactions.service.ts","./src/app/pages/transactions/transactions.model.ts","./src/app/shared/common/constant.ts","./src/app/shared/common/enum.ts","./src/app/shared/common/my-date-formats.ts","./src/app/shared/component/actions/icon.module.ts","./src/app/shared/component/actions/icons.component.ts","./src/app/shared/component/actions/icons.service.ts","./src/app/shared/component/ag-grid/ag-grid.component.ts","./src/app/shared/component/ag-grid/ag-grid.interface.ts","./src/app/shared/component/ag-grid/ag-grid.service.ts","./src/app/shared/component/cell-editor-transaction/cell-editor-transaction.component.ts","./src/app/shared/component/cell-editor/cell-editor.component.ts","./src/app/shared/component/checkbox-renderer/checkbox-renderer.component.ts","./src/app/shared/component/custom-input-control/custom-input-control.component.ts","./src/app/shared/component/custom-tooltip/custom-tooltip.component.ts","./src/app/shared/component/custome-filter/custome-filter.component.ts","./src/app/shared/component/custome-header/custome-header.component.ts","./src/app/shared/component/custome-header/custome-header.service.ts","./src/app/shared/component/datepicker-editor/datepicker-editor.component.ts","./src/app/shared/component/datepicker/datepicker.component.ts","./src/app/shared/component/dropdown/dropdown.component.ts","./src/app/shared/component/filter/filter.service.ts","./src/app/shared/component/filter/filter/filter.component.ts","./src/app/shared/component/multiselect-dropdown/multiselect-dropdown.component.ts","./src/app/shared/component/multiselect-dropdown/multiselect-dropdown.module.ts","./src/app/shared/component/multiselect-dropdown/ng-multiselect-dropdown/click-outside.directive.ts","./src/app/shared/component/multiselect-dropdown/ng-multiselect-dropdown/list-filter.pipe.ts","./src/app/shared/component/multiselect-dropdown/ng-multiselect-dropdown/multi-select/multi-select.component.ts","./src/app/shared/component/multiselect-dropdown/ng-multiselect-dropdown/multiselect.model.ts","./src/app/shared/component/multiselect-dropdown/ng-multiselect-dropdown/ng-multiselect-dropdown.module.ts","./src/app/shared/component/numeric-value-editor/numeric-value-editor.component.ts","./src/app/shared/component/numericeditor/numericeditor.component.ts","./src/app/shared/component/page-header-import-form/page-header-import-form.component.ts","./src/app/shared/component/page-header-import-form/page-header-import-form.model.ts","./src/app/shared/component/page-header/page-header.component.ts","./src/app/shared/component/page-header/page-header.model.ts","./src/app/shared/component/run/run.component.ts","./src/app/shared/component/sort/sort.component.ts","./src/app/shared/component/sort/sort.model.ts","./src/app/shared/component/sort/sort.service.ts","./src/app/shared/component/spinner/spinner-routing.module.ts","./src/app/shared/component/spinner/spinner.component.ts","./src/app/shared/component/spinner/spinner.module.ts","./src/app/shared/component/table-header-buttons/table-header-buttons.component.ts","./src/app/shared/component/table-header-buttons/table-header-buttons.model.ts","./src/app/shared/component/table-header-buttons/table-header-buttons.module.ts","./src/app/shared/directives/autofocus.directive.ts","./src/app/shared/directives/entercell.directive.ts","./src/app/shared/directives/only-numbers.directive.ts","./src/app/shared/guard/auth.guard.ts","./src/app/shared/guard/direty-check.guard.ts","./src/app/shared/interceptors/error-handler.interceptor.ts","./src/app/shared/model/common.model.ts","./src/app/shared/model/filter.model.ts","./src/app/shared/model/pagination.model.ts","./src/app/shared/model/response.model.ts","./src/app/shared/pipes/mydate.pipe.ts","./src/app/shared/services/common-tab.service.ts","./src/app/shared/services/common.service.ts","./src/app/shared/services/data.service.ts","./src/app/shared/services/export.service.ts","./src/app/shared/services/global.service.ts","./src/app/shared/services/header-title.service.ts","./src/app/shared/services/notification.service.ts","./src/app/shared/services/security.service.ts","./src/app/shared/services/storage.service.ts","./src/app/shared/shared.module.ts","./src/app/theme/components/applications/applications.component.ts","./src/app/theme/components/breadcrumb/breadcrumb.component.ts","./src/app/theme/components/flags-menu/flags-menu.component.ts","./src/app/theme/components/fullscreen/fullscreen.component.ts","./src/app/theme/components/menu/horizontal-menu/horizontal-menu.component.ts","./src/app/theme/components/menu/menu.model.ts","./src/app/theme/components/menu/menu.service.ts","./src/app/theme/components/menu/menu.ts","./src/app/theme/components/menu/vertical-menu/vertical-menu.component.ts","./src/app/theme/components/messages/messages.component.ts","./src/app/theme/components/messages/messages.service.ts","./src/app/theme/components/sidenav/sidenav.component.ts","./src/app/theme/components/user-menu/user-menu.component.ts","./src/app/theme/pipes/pagination/pagination.pipe.ts","./src/app/theme/pipes/pipes.module.ts","./src/app/theme/pipes/profilePicture/profilePicture.pipe.ts","./src/app/theme/pipes/search/chat-person-search.pipe.ts","./src/app/theme/pipes/search/mail-search.pipe.ts","./src/app/theme/pipes/search/user-search.pipe.ts","./src/app/theme/pipes/truncate/truncate.pipe.ts","./src/app/theme/utils/custom-overlay-container.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$"],"sourcesContent":["import { Component, HostListener, OnDestroy } from '@angular/core';\r\nimport { Subscription, interval } from 'rxjs';\r\nimport { AppSettings } from './app.settings';\r\nimport { Settings } from './app.settings.model';\r\nimport { UDFModel } from './pages/transactions/tier-transactions/tier-transactions.model';\r\nimport { TierTransactionService } from './pages/transactions/tier-transactions/tier-transactions.service';\r\nimport { CommonTabService } from './shared/services/common-tab.service';\r\nimport { StorageService } from './shared/services/storage.service';\r\nimport { StorageName } from './shared/common/enum';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { LoginService } from './pages/login/login.service';\r\nimport { startWith } from 'rxjs/operators';\r\n\r\n// //const counter = timer(0, 1000);\r\n// const counter = interval(2000).pipe(\r\n// startWith(0)\r\n// );\r\n \r\n@Component\r\n (\r\n {\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n }\r\n )\r\n\r\nexport class AppComponent implements OnDestroy {\r\n\r\n public settings: Settings;\r\n UDFList: UDFModel[];\r\n public isRefresh = false;\r\n private _getExtraColumnSubscription!: Subscription;\r\n\r\n constructor(\r\n public appSettings: AppSettings,\r\n private tierTransactionsService: TierTransactionService,\r\n private commonTabService: CommonTabService,\r\n public storageService: StorageService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private loginService:LoginService\r\n ) {\r\n this.settings = this.appSettings.settings;\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"app component loaded\");\r\n\r\n // counter.subscribe(() => {\r\n // this.time();\r\n // });\r\n\r\n \r\n\r\n this._getExtraColumnSubscription = this.tierTransactionsService.getExtraColumn().subscribe(data => {\r\n this.storageService.store(\"UDFLIST\", data.response);\r\n })\r\n }\r\n\r\n time() {\r\n // let date = new Date();\r\n\r\n // if (this.storageService.retrieve(StorageName.TIMER) != undefined) {\r\n // if ((date.getTime() - new Date(this.storageService.retrieve(StorageName.TIMER)).getTime()) / 1600 > 10) { \r\n // this.loginService.logout();\r\n // }\r\n // }\r\n \r\n // this.storageService.store(StorageName.TIMER, date);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._getExtraColumnSubscription) {\r\n this._getExtraColumnSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n\r\n","import { BrowserModule } from \"@angular/platform-browser\";\r\nimport { NgModule,Injector } from \"@angular/core\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\r\nimport { CustomOverlayContainer } from \"./theme/utils/custom-overlay-container\";\r\nimport { AgmCoreModule } from \"@agm/core\";\r\nimport { PerfectScrollbarModule } from \"ngx-perfect-scrollbar\";\r\nimport { PERFECT_SCROLLBAR_CONFIG } from \"ngx-perfect-scrollbar\";\r\nimport { PerfectScrollbarConfigInterface } from \"ngx-perfect-scrollbar\";\r\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\r\n wheelPropagation: true,\r\n suppressScrollX: true,\r\n};\r\nimport { CalendarModule, DateAdapter } from \"angular-calendar\";\r\nimport { adapterFactory } from \"angular-calendar/date-adapters/date-fns\";\r\nimport { SharedModule } from \"./shared/shared.module\";\r\nimport { PipesModule } from \"./theme/pipes/pipes.module\";\r\nimport { AppRoutingModule } from \"./app.routing\";\r\nimport { AppComponent } from \"./app.component\";\r\nimport { PagesComponent } from \"./pages/pages.component\";\r\nimport { AppSettings } from \"./app.settings\";\r\nimport { SidenavComponent } from \"./theme/components/sidenav/sidenav.component\";\r\nimport { VerticalMenuComponent } from \"./theme/components/menu/vertical-menu/vertical-menu.component\";\r\nimport { HorizontalMenuComponent } from \"./theme/components/menu/horizontal-menu/horizontal-menu.component\";\r\nimport { BreadcrumbComponent } from \"./theme/components/breadcrumb/breadcrumb.component\";\r\nimport { FlagsMenuComponent } from \"./theme/components/flags-menu/flags-menu.component\";\r\nimport { FullScreenComponent } from \"./theme/components/fullscreen/fullscreen.component\";\r\nimport { ApplicationsComponent } from \"./theme/components/applications/applications.component\";\r\nimport { MessagesComponent } from \"./theme/components/messages/messages.component\";\r\nimport { UserMenuComponent } from \"./theme/components/user-menu/user-menu.component\";\r\nimport { CalculationComponent } from \"./pages/calculation/calculation.component\";\r\nimport { NgxDatatableModule } from \"@swimlane/ngx-datatable\";\r\nimport { AdministrationComponent } from \"./pages/Administration/administration.component\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatSelectModule } from \"@angular/material/select\";\r\nimport { NgxMatSelectSearchModule } from \"ngx-mat-select-search\";\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { NgxPaginationModule } from \"ngx-pagination\";\r\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\r\nimport { ResetFilterCalcRuleComponent } from \"./pages/reset-filter-calc-rule/reset-filter-calc-rule/reset-filter-calc-rule.component\";\r\nimport { ToastrModule } from \"ngx-toastr\";\r\nimport { Select2Module } from \"ng-select2-component\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { ErrorHandlerInterceptor } from \"./shared/interceptors/error-handler.interceptor\";\r\nimport { PermissionsModule } from \"./pages/Administration/permissions/permissions.module\";\r\nimport { RolesModule } from \"./pages/Administration/roles/roles/roles.module\";\r\nimport { UsersModule } from \"./pages/Administration/users/users.module\";\r\nimport { UserDefinedFieldsModule } from \"./pages/Administration/user-defined-fields/user-defined-fields/user-defined-fields.module\";\r\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\r\nimport { ResetFilterCalcRuleRoutingModule } from \"./pages/reset-filter-calc-rule/reset-filter-calc-rule/reset-filter-calc-rule-routing.module\";\r\nimport { LockUnlockRecordsModule } from \"./pages/lock-unlock-records/lock-unlock-records/lock-unlock-records.module\";\r\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\r\nimport { SearchFilterModule } from './pages/search-filter/search-filter/search-filter.module';\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { SpinnerModule } from \"./shared/component/spinner/spinner.module\";\r\nimport { AgGridModule } from \"ag-grid-angular\";\r\nimport { LoginComponent } from \"./pages/login/login.component\";\r\nimport { ImportPopupComponent } from \"./pages/import-popups/import-popup.component\";\r\nimport { LockUnlockRecordsUpdateModule } from \"./pages/calculation/lock-unlock-records-update/lock-unlock-records-update.module\";\r\nexport let AppInjector: Injector;\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n Select2Module,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ToastrModule.forRoot(),\r\n AgmCoreModule.forRoot({\r\n apiKey: \"AIzaSyAO7Mg2Cs1qzo_3jkKkZAKY6jtwIlm41-I\",\r\n }),\r\n PerfectScrollbarModule,\r\n CalendarModule.forRoot({\r\n provide: DateAdapter,\r\n useFactory: adapterFactory,\r\n }),\r\n SharedModule,\r\n HttpClientModule,\r\n PipesModule,\r\n AppRoutingModule,\r\n NgxDatatableModule,\r\n NgxChartsModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatSelectModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n NgxMatSelectSearchModule,\r\n NgxPaginationModule,\r\n MatCheckboxModule,\r\n PermissionsModule,\r\n RolesModule,\r\n UsersModule,\r\n UserDefinedFieldsModule,\r\n ResetFilterCalcRuleRoutingModule,\r\n FlexLayoutModule,\r\n LockUnlockRecordsModule,\r\n LockUnlockRecordsUpdateModule,\r\n SearchFilterModule,\r\n MatInputModule,\r\n SpinnerModule,\r\n FormsModule,\r\n AgGridModule\r\n ],\r\n declarations: [\r\n AppComponent,\r\n PagesComponent,\r\n SidenavComponent,\r\n VerticalMenuComponent,\r\n HorizontalMenuComponent,\r\n BreadcrumbComponent, \r\n FlagsMenuComponent,\r\n FullScreenComponent,\r\n ApplicationsComponent,\r\n MessagesComponent,\r\n UserMenuComponent,\r\n CalculationComponent,\r\n AdministrationComponent,\r\n ResetFilterCalcRuleComponent,\r\n \r\n ImportPopupComponent,\r\n LoginComponent\r\n ],\r\n\r\n \r\n providers: [\r\n AppSettings,\r\n {\r\n provide: PERFECT_SCROLLBAR_CONFIG,\r\n useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG,\r\n },\r\n { provide: OverlayContainer, useClass: CustomOverlayContainer },\r\n { provide: LocationStrategy, useClass: HashLocationStrategy},\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ErrorHandlerInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {\r\n\r\n constructor(private injector: Injector)\r\n {\r\n AppInjector = this.injector;\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule, PreloadAllModules } from \"@angular/router\";\r\nimport { PagesComponent } from \"./pages/pages.component\";\r\nimport { AuthGuard } from \"./shared/guard/auth.guard\";\r\n\r\nexport const routes: Routes = [\r\n {\r\n path: \"login\",\r\n loadChildren: () => import(\"./pages/login/login.module\").then((m) => m.LoginModule),\r\n },\r\n {\r\n path: \"\",\r\n redirectTo: \"dashboard\",\r\n pathMatch: \"full\",\r\n },\r\n {\r\n path: \"\",\r\n component: PagesComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: () => import(\"./pages/pages.module\").then((m) => m.PagesModule),\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, {\r\n preloadingStrategy: PreloadAllModules, // <- comment this line for activate lazy load\r\n relativeLinkResolution: \"legacy\",\r\n // useHash: true\r\n }),\r\n ],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule { }\r\n","export class Settings \r\n{\r\n constructor(\r\n public name: string, \r\n public loadingSpinner: boolean,\r\n public fixedHeader:boolean,\r\n public allowSidenav: boolean,\r\n public sidenavIsOpened: boolean,\r\n public sidenavIsPinned: boolean,\r\n public sidenavUserBlock: boolean,\r\n public menu: string,\r\n public menuType: string,\r\n public theme: string,\r\n public rtl: boolean,\r\n public hasFooter: boolean\r\n ) \r\n { }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Settings } from './app.settings.model';\r\n\r\n@Injectable()\r\nexport class AppSettings \r\n{\r\n public settings = new Settings(\r\n 'NorthStar', //theme name\r\n true, //loadingSpinner\r\n false, //fixedHeader\r\n false, //allowSidenav\r\n true, //sidenavIsOpened\r\n true, //sidenavIsPinned \r\n true, //sidenavUserBlock \r\n 'horizontal', //horizontal , vertical\r\n 'default', //default, compact, mini\r\n 'indigo-light', //indigo-light, teal-light, red-light, blue-dark, green-dark, pink-dark\r\n false, // true = rtl, false = ltr\r\n true // true = has footer, false = no footer\r\n )\r\n}\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-administration',\r\n templateUrl: './administration.component.html',\r\n styleUrls: ['./administration.component.scss']\r\n})\r\nexport class AdministrationComponent implements OnInit {\r\n \r\n\r\n constructor(){ }\r\n ngOnInit() {\r\n \r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { DiretyCheckGuard } from 'src/app/shared/guard/direty-check.guard';\r\nimport { PermissionsComponent } from './permissions.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: PermissionsComponent, canDeactivate: [DiretyCheckGuard] }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class PermissionsRoutingModule { }\r\n","import { Component, HostListener, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { AppComponent } from \"src/app/app.component\";\r\nimport { ComponentCanDeactivate } from \"src/app/shared/guard/direty-check.guard\";\r\nimport { NotificationService } from \"src/app/shared/services/notification.service\";\r\nimport { CommonService } from \"src/app/shared/services/common.service\";\r\nimport { StorageService } from \"src/app/shared/services/storage.service\";\r\nimport { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridService } from \"src/app/shared/component/ag-grid/ag-grid.service\";\r\nimport { FilterService } from \"src/app/shared/component/filter/filter.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { DropdownListModel } from \"../../fund-information/fund-information.model\";\r\nimport { PageHeaderModel } from \"src/app/shared/component/page-header/page-header.model\";\r\nimport { FundInformationService } from \"../../fund-information/fund-information.service\";\r\nimport { agGridDataModelPermissionColumn, agGridDataModelPermissionForm, agGridDataModelPermissionFundGroup, FundGroupPermission, PermissionsModel } from './permissions.model';\r\nimport { CommonTabService } from 'src/app/shared/services/common-tab.service';\r\nimport { TableHeaderModel } from 'src/app/shared/component/table-header-buttons/table-header-buttons.model';\r\nimport { PageHeaderComponent } from 'src/app/shared/component/page-header/page-header.component';\r\n\r\n@Component({\r\n selector: 'app-permissions',\r\n templateUrl: './permissions.component.html',\r\n styleUrls: ['./permissions.component.scss'],\r\n providers: [AppComponent],\r\n})\r\nexport class PermissionsComponent extends CommonService implements OnInit, OnDestroy, ComponentCanDeactivate {\r\n //#region variable declarations\r\n @ViewChild(PageHeaderComponent) pageHeaderComponent: PageHeaderComponent;\r\n // top model which contains filter, save, undo, delete and filter name\r\n pageHeaderModel: PageHeaderModel;\r\n\r\n id: number;\r\n //fundgrouprows: agGridDataModelPermissionFundGroup[] = [];\r\n grouprows = new PermissionsModel();\r\n restedfundGroupRows = [];\r\n\r\n //current/selected tab\r\n tabID: number;\r\n\r\n // grid apis which sets on grid ready event from ag-grid\r\n fundGroupPermissionGridApi: any;\r\n formPermissionGridApi: any;\r\n columnPermissionGridApi: any;\r\n\r\n //for changed form data\r\n formModel = new PermissionsModel();\r\n\r\n //for original form data - will be used to reset/clear the form\r\n loadedFormModel = new PermissionsModel();\r\n\r\n // for loading all the dropdowns - form and grid every dropdown\r\n dropdownListModel = new DropdownListModel();\r\n\r\n //for storing original row data\r\n restedInvestorRows = [];\r\n\r\n overlay = true;\r\n // tab group list\r\n tabGroupList: any[] = [\r\n { dataModel: agGridDataModelPermissionForm, label: 'Form Level', tabIndex: 0 },\r\n { dataModel: agGridDataModelPermissionFundGroup, label: 'Domain Level', tabIndex: 1 },\r\n { dataModel: agGridDataModelPermissionColumn, label: 'Column Level', tabIndex: 2 },\r\n ];\r\n\r\n private _onSaveBeforeCloseSubscription!: Subscription;\r\n //#endregion variable declarations\r\n\r\n //#region ctor\r\n constructor(\r\n public renderer: Renderer2,\r\n public notificationService: NotificationService,\r\n public storageService: StorageService,\r\n public agGridService: AgGridService,\r\n public filterService: FilterService,\r\n public fundInformationService: FundInformationService,\r\n public toasterService: ToastrService,\r\n public commonService: CommonTabService,\r\n ) { super(renderer); }\r\n\r\n\r\n //#endregion\r\n\r\n //#region Save Confirmation\r\n @HostListener(\"window:beforeunload\")\r\n canDeactivate(): Observable | boolean {\r\n var fundGroup = this.storageService.retrieve(agGridDataModelPermissionFundGroup.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var form = this.storageService.retrieve(agGridDataModelPermissionForm.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var column = this.storageService.retrieve(agGridDataModelPermissionColumn.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n return (\r\n JSON.stringify(this.formModel.role) === JSON.stringify(this.loadedFormModel.role) &&\r\n fundGroup?.length == 0 &&\r\n form?.length == 0 &&\r\n column?.length == 0\r\n );\r\n }\r\n //#endregion\r\n\r\n //#region Init\r\n ngOnInit(): void {\r\n this.fillPageHeader();\r\n this._onSaveBeforeCloseSubscription = this.commonService.onSaveBeforeClose.subscribe((data) => this.onSave());\r\n }\r\n\r\n fillPageHeader() {\r\n this.pageHeaderModel = new PageHeaderModel();\r\n this.pageHeaderModel.controllerName = StorageName.PERMISSION_CONTROLLER;\r\n this.pageHeaderModel.IdStorageName = StorageName.PERMISSION_ROLEID;\r\n this.pageHeaderModel.filterOptionStorageName = StorageName.PERMISSION_DROPDOWN;\r\n this.pageHeaderModel.setVisibilityForForm(\"PermissionRole\");\r\n }\r\n\r\n fillTopDropdown() {\r\n this.dropdownListModel.permissionRoleDropdown = this.storageService.retrieve(StorageName.PERMISSION_DROPDOWN);\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Clear Complete Form\r\n clearFields(): void {\r\n this.formModel = new PermissionsModel();\r\n\r\n //fill the form with blank records\r\n this.fillForm(this.formModel);\r\n }\r\n //#endregion Clear Complete Form\r\n\r\n //#region page header events\r\n //calling post api to save/update records\r\n onSave() {\r\n // get filter dropdown value from child component and assign\r\n this.formModel.role.name = this.pageHeaderModel.name;\r\n this.formModel.role.id = this.pageHeaderModel.id.toString();\r\n\r\n //create new mode for form to use for posting updated entries\r\n var postData = new PermissionsModel();\r\n postData.role = this.formModel.role;\r\n\r\n var fundGroup = this.storageService.retrieve(agGridDataModelPermissionFundGroup.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var form = this.storageService.retrieve(agGridDataModelPermissionForm.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var column = this.storageService.retrieve(agGridDataModelPermissionColumn.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n\r\n postData.fundGroupPermissions = fundGroup;// this.fundGroupPermissionGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n postData.formPermissions =form;// this.formPermissionGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n postData.columnPermissions = column;// this.columnPermissionGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n\r\n var deletedRecordsfundGroupPermissions = postData.fundGroupPermissions?.filter((row) => row.isEdited == true && row.isDeleted == true);\r\n var deletedRecordsformPermissions = postData.formPermissions?.filter((row) => row.isEdited == true && row.isDeleted == true);\r\n var deletedRecordscolumnPermissions = postData.columnPermissions?.filter((row) => row.isEdited == true && row.isDeleted == true);\r\n\r\n this.pageHeaderComponent.post(postData, deletedRecordsfundGroupPermissions.length != 0 || deletedRecordsformPermissions.length != 0 || deletedRecordscolumnPermissions.length != 0);\r\n }\r\n //get the records by id again to reset/undo the changed records\r\n onUndo() {\r\n this.getById(this.formModel.role.id);\r\n }\r\n //#endregion\r\n\r\n //#region Tab Events\r\n\r\n onChangeTab(event) {\r\n this.tabID = event.index;\r\n this.loadTabData(this.tabID);\r\n }\r\n //load the tab records on click of tab\r\n loadTabData(index = 0) {\r\n this.tabID = index;\r\n switch (this.tabID) {\r\n case 0:\r\n agGridDataModelPermissionForm.masterIdStorageName = this.pageHeaderModel.IdStorageName,\r\n agGridDataModelPermissionForm.gridApi = this.formPermissionGridApi;\r\n this.pageHeaderModel.agGridI = agGridDataModelPermissionForm;\r\n this.pageHeaderModel.gridApi = this.formPermissionGridApi;\r\n this.formModel.formPermissions = this.agGridService.performFilter(agGridDataModelPermissionForm);\r\n break;\r\n case 1:\r\n agGridDataModelPermissionFundGroup.masterIdStorageName = this.pageHeaderModel.IdStorageName,\r\n agGridDataModelPermissionFundGroup.gridApi = this.fundGroupPermissionGridApi;\r\n this.pageHeaderModel.agGridI = agGridDataModelPermissionFundGroup;\r\n this.pageHeaderModel.gridApi = this.fundGroupPermissionGridApi;\r\n this.formModel.fundGroupPermissions = this.agGridService.performFilter(agGridDataModelPermissionFundGroup);\r\n break;\r\n case 2:\r\n agGridDataModelPermissionColumn.masterIdStorageName = this.pageHeaderModel.IdStorageName,\r\n agGridDataModelPermissionColumn.gridApi = this.columnPermissionGridApi;\r\n this.pageHeaderModel.agGridI = agGridDataModelPermissionColumn;\r\n this.pageHeaderModel.gridApi = this.columnPermissionGridApi;\r\n this.formModel.columnPermissions = this.agGridService.performFilter(agGridDataModelPermissionColumn);\r\n break;\r\n }\r\n // this.tableHeaderComponent.getTabData();\r\n }\r\n\r\n onCellChange(event) {\r\n switch (this.tabID) {\r\n case 0:\r\n this.formPermissionGridApi.api.setRowData(this.formModel.formPermissions);\r\n break;\r\n case 1:\r\n this.fundGroupPermissionGridApi.api.setRowData(this.formModel.fundGroupPermissions);\r\n break;\r\n case 2:\r\n this.columnPermissionGridApi.api.setRowData(this.formModel.columnPermissions);\r\n break;\r\n }\r\n }\r\n\r\n ongridReady(item, gridApi) {\r\n switch (item.tabIndex) {\r\n case 0: this.formPermissionGridApi = gridApi; break;\r\n case 1: this.fundGroupPermissionGridApi = gridApi; break;\r\n case 2: this.columnPermissionGridApi = gridApi; break;\r\n }\r\n }\r\n onPageSizeUpdated(pageSize){\r\n switch (this.tabID) {\r\n case 0: this.storageService.store(agGridDataModelPermissionForm.paginationStore,pageSize); break;\r\n case 1: this.storageService.store(agGridDataModelPermissionFundGroup.paginationStore,pageSize); break;\r\n case 2: this.storageService.store(agGridDataModelPermissionColumn.paginationStore,pageSize); break;\r\n }\r\n this.loadTabData(this.tabID);\r\n }\r\n //#endregion tab events\r\n\r\n getById(res: any) {\r\n this.storageService.store(StorageName.PERMISSION_ROLEID, parseInt(res.response.role.id));\r\n this.setForm(res.response);\r\n }\r\n\r\n setForm(formModel: PermissionsModel) {\r\n this.fillForm(formModel);\r\n this.loadTabData(this.tabID);\r\n }\r\n\r\n fillForm(formModel: PermissionsModel) {\r\n //#region Top Data\r\n this.formModel.role = formModel.role;\r\n this.loadedFormModel.role = { ...this.formModel.role };\r\n this.pageHeaderModel.id = parseInt(formModel.role.id);\r\n this.pageHeaderModel.name = formModel.role.name;\r\n //#region Set Grid Storage\r\n this.storageService.store(StorageName.PERMISSION_FUNDGROUP_INITIALROWS, formModel.fundGroupPermissions);\r\n this.storageService.store(StorageName.PERMISSION_FORM_INITIALROWS, formModel.formPermissions);\r\n this.storageService.store(StorageName.PERMISSION_COLUMN_INITIALROWS, formModel.columnPermissions);\r\n //#endregion\r\n }\r\n //#endregion get and fill form records\r\n\r\n ngOnDestroy(): void { \r\n if (this._onSaveBeforeCloseSubscription) {\r\n this._onSaveBeforeCloseSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n //#endregion Component End","import { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridI, colDefsPermissionColumn, colDefsPermissionForm, colDefsPermissionFundGroup } from \"src/app/shared/component/ag-grid/ag-grid.interface\";\r\nimport { DropdownModel } from \"src/app/shared/model/common.model\";\r\n\r\nexport class PermissionsModel\r\n{\r\n role : DropdownModel = new DropdownModel();\r\n fundGroupPermissions : FundGroupPermission[]=[];\r\n formPermissions : FormPermission[]=[];\r\n columnPermissions : ColumnPermission[]=[];\r\n}\r\n\r\nexport class ModificationColumns\r\n{\r\n isDeleted : boolean = false;\r\n isAdded : boolean = false;\r\n isEdited : boolean = false;\r\n}\r\n\r\nexport class FundGroupPermission extends ModificationColumns {\r\n roleId: number;\r\n fundGroupId: number;\r\n viewPermission: boolean;\r\n modifyPermission: boolean;\r\n deletePermission: boolean;\r\n}\r\n\r\nexport class FormPermission extends ModificationColumns {\r\n roleId: number;\r\n moduleId: number;\r\n formId: number;\r\n roleName: string;\r\n moduleName: string;\r\n formName: string;\r\n viewPermission: boolean;\r\n viewPermissionId: number;\r\n modifyPermission: boolean;\r\n modifyPermissionId: number;\r\n deletePermission: boolean;\r\n deletePermissionId: number;\r\n}\r\n\r\nexport class ColumnPermission extends ModificationColumns {\r\n roleId: number;\r\n moduleId: number;\r\n columnName: string;\r\n formName: string;\r\n permissions: boolean;\r\n}\r\n\r\nexport const agGridDataModelPermissionFundGroup: AgGridI = {\r\n colDefs: colDefsPermissionFundGroup,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.PERMISSION_FUNDGROUP_GRID,\r\n controllerName: StorageName.PERMISSION_FUNDGROUP_CONTROLLER,\r\n storageName: StorageName.PERMISSION_FUNDGROUP_COLUMNCHANGED,\r\n paginationStore: StorageName.PERMISSION_FUNDGROUP_PAGINATION,\r\n initialRows: StorageName.PERMISSION_FUNDGROUP_INITIALROWS,\r\n filterStorageName: StorageName.PERMISSION_FUNDGROUP_FILTER,\r\n showDeleteStatusStorageName : StorageName.PERMISSION_SHOW_DELETED,\r\n tabIndex: 0\r\n};\r\nexport const agGridDataModelPermissionForm: AgGridI = {\r\n colDefs: colDefsPermissionForm,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.PERMISSION_FORM_GRID,\r\n controllerName: StorageName.PERMISSION_FORM_CONTROLLER,\r\n storageName: StorageName.PERMISSION_FORM_COLUMNCHANGED,\r\n paginationStore: StorageName.PERMISSION_FORM_PAGINATION,\r\n initialRows: StorageName.PERMISSION_FORM_INITIALROWS,\r\n filterStorageName: StorageName.PERMISSION_FORM_FILTER,\r\n showDeleteStatusStorageName : StorageName.PERMISSION_SHOW_DELETED,\r\n tabIndex: 1\r\n};\r\nexport const agGridDataModelPermissionColumn: AgGridI = {\r\n colDefs: colDefsPermissionColumn,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.PERMISSION_COLUMN_GRID,\r\n controllerName: StorageName.PERMISSION_COLUMN_CONTROLLER,\r\n storageName: StorageName.PERMISSION_COLUMN_COLUMNCHANGED,\r\n paginationStore: StorageName.PERMISSION_COLUMN_PAGINATION,\r\n initialRows: StorageName.PERMISSION_COLUMN_INITIALROWS,\r\n filterStorageName: StorageName.PERMISSION_COLUMN_FILTER,\r\n showDeleteStatusStorageName : StorageName.PERMISSION_SHOW_DELETED,\r\n tabIndex: 2\r\n};\r\n ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PermissionsRoutingModule } from './permissions-routing.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { Select2Module } from 'ng-select2-component';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\nimport { PermissionsComponent } from './permissions.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PermissionsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n PermissionsRoutingModule,\r\n SharedModule,\r\n Select2Module,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxDatatableModule,\r\n MatSelectModule\r\n ]\r\n})\r\nexport class PermissionsModule { }\r\n","import { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridI, colDefsRole } from \"src/app/shared/component/ag-grid/ag-grid.interface\";\r\nimport { sort } from \"src/app/shared/component/sort/sort.model\";\r\nimport { DropdownModel } from \"src/app/shared/model/common.model\";\r\nimport { PaginationModelCommon } from \"src/app/shared/model/pagination.model\";\r\n\r\nexport class RolesModel\r\n{\r\n roles : Roles[]=[];\r\n}\r\n\r\nexport class Roles\r\n{\r\n id : number;\r\n name : string;\r\n description : string;\r\n createdAt : string;\r\n updatedAt : string;\r\n isDeleted : boolean = false;\r\n deletedAt : string;\r\n isEdited : boolean = false;\r\n isAdded : boolean = false;\r\n}\r\n\r\nexport const agGridDataModelRoles: AgGridI = {\r\n colDefs: colDefsRole,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName. ROLES_GRID,\r\n storageName: StorageName.ROLES_COLUMNCHANGED,\r\n paginationStore: StorageName.FROLES_PAGINATION,\r\n initialRows: StorageName.ROLES_INITIALROWS,\r\n filterStorageName: StorageName.ROLES_FILTER,\r\n controllerName : StorageName. ROLES_CONTROLLER,\r\n showDeleteStatusStorageName : StorageName.ROLES_SHOW_DELETED,\r\n tabIndex: 1,\r\n };\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { DiretyCheckGuard } from 'src/app/shared/guard/direty-check.guard';\r\nimport { RolesComponent } from './roles.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: RolesComponent, canDeactivate: [DiretyCheckGuard] }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class RolesRoutingModule { }\r\n","//#region Imports\r\nimport { Component, HostListener, OnDestroy, OnInit, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { AppComponent } from \"src/app/app.component\";\r\nimport { ComponentCanDeactivate } from \"src/app/shared/guard/direty-check.guard\";\r\nimport { CommonService } from \"src/app/shared/services/common.service\";\r\nimport { StorageService } from \"src/app/shared/services/storage.service\";\r\nimport { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridService } from \"src/app/shared/component/ag-grid/ag-grid.service\";\r\nimport { PageHeaderModel } from \"src/app/shared/component/page-header/page-header.model\";\r\nimport { TableHeaderModel } from \"src/app/shared/component/table-header-buttons/table-header-buttons.model\";\r\nimport { CommonTabService } from \"src/app/shared/services/common-tab.service\";\r\nimport { PageHeaderComponent } from \"src/app/shared/component/page-header/page-header.component\";\r\nimport { TableHeaderButtonsComponent } from \"src/app/shared/component/table-header-buttons/table-header-buttons.component\";\r\nimport { agGridDataModelRoles, RolesModel } from \"../roles.model\";\r\n//#endregion\r\n//#region Component start\r\n@Component({\r\n selector: \"app-roles\",\r\n templateUrl: \"./roles.component.html\",\r\n styleUrls: [\"./roles.component.scss\"],\r\n providers: [AppComponent],\r\n})\r\nexport class RolesComponent extends CommonService implements OnInit, OnDestroy, ComponentCanDeactivate {\r\n @ViewChild(PageHeaderComponent) pageHeaderComponent: PageHeaderComponent;\r\n // @ViewChild(TableHeaderButtonsComponent) tableHeaderComponent:TableHeaderButtonsComponent;\r\n //#region variable declarations\r\n // top model which contains filter, save, undo, delete and filter name\r\n pageHeaderModel: PageHeaderModel;\r\n\r\n //current/selected tab\r\n tabID: number;\r\n // grid apis which sets on grid ready event from ag-grid\r\n roleGridApi: any;\r\n\r\n //for changed form data\r\n formModel = new RolesModel();\r\n\r\n //for original form data - will be used to reset/clear the form\r\n loadedFormModel = new RolesModel();\r\n\r\n // tab group list\r\n tabGroupList: any[] = [\r\n { dataModel: agGridDataModelRoles, label: 'User', tabIndex: 0 },\r\n ];\r\n //#endregion variable declarations\r\n\r\n private _onSaveBeforeCloseSubscription!: Subscription;\r\n\r\n //#region ctor\r\n constructor(\r\n public renderer: Renderer2,\r\n public storageService: StorageService,\r\n public agGridService: AgGridService,\r\n public commonTabService: CommonTabService\r\n ) { super(renderer); }\r\n\r\n ngOnDestroy(): void {\r\n if (this._onSaveBeforeCloseSubscription) {\r\n this._onSaveBeforeCloseSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n //#endregion\r\n //#region Save Confirmation\r\n @HostListener(\"window:beforeunload\")\r\n canDeactivate(): Observable | boolean {\r\n var roles = this.storageService.retrieve(agGridDataModelRoles.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n return (\r\n roles?.length == 0)\r\n }\r\n //#endregion\r\n //#region Init\r\n ngOnInit(): void {\r\n this.fillPageHeader();\r\n //this.setTableHeader();\r\n this._onSaveBeforeCloseSubscription = this.commonTabService.onSaveBeforeClose.subscribe((data) => this.onSave());\r\n }\r\n\r\n fillPageHeader() {\r\n this.pageHeaderModel = new PageHeaderModel();\r\n this.pageHeaderModel.placeHolder = \"\";\r\n this.pageHeaderModel.controllerName = StorageName.ROLES_CONTROLLER;\r\n this.pageHeaderModel.showDeleted = false;\r\n this.pageHeaderModel.setVisibilityForForm(\"Role\");\r\n this.pageHeaderModel.filterOptionStorageName = StorageName.ROLE_DROPDOWN;\r\n }\r\n\r\n // setTableHeader()\r\n // {\r\n // this.tableHeaderModel = new TableHeaderModel();\r\n // this.tableHeaderModel.setVisibility({\r\n // isAddButtonVisible : false,\r\n // isExportButtonVisible : true,\r\n // isUndoButtonVisible : true,\r\n // isResetFilterButtonVisible : true,\r\n // isSoftDeleteButtonVisible : true,\r\n // isShowDeletedButtonVisible : !this.pageHeaderModel.showDeleted,\r\n // isHideDeletedButtonVisible : this.pageHeaderModel.showDeleted,\r\n // isPermanentDeleteButtonVisible : true,\r\n // isExpandButtonVisible : true,\r\n // });\r\n // }\r\n //#endregion\r\n //#region Clear Complete Form\r\n clearFields(): void {\r\n this.formModel = new RolesModel();\r\n\r\n //set enpty rows to all grid apis\r\n this.roleGridApi.api.setRowData([]);\r\n\r\n //fill the form with blank records\r\n this.fillForm(this.formModel);\r\n }\r\n //#endregion Clear Complete Form\r\n //#region page header events\r\n\r\n //calling post api to save/update records\r\n onSave(): any {\r\n //this.pageHeaderModel.showDeleted = !this.tableHeaderComponent.tableHeaderModel.isShowDeletedButtonVisible;\r\n //create new mode for form to use for posting updated entries\r\n var postData = new RolesModel();\r\n var roles = this.storageService.retrieve(agGridDataModelRoles.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n postData.roles = roles;// this.roleGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n var deletedRecordsInRoles = postData.roles?.filter((row) => row.isEdited == true && row.isDeleted == true);\r\n this.pageHeaderComponent.post(postData, deletedRecordsInRoles.length != 0, true);\r\n }\r\n //#endregion\r\n //#region Tab Events\r\n //\r\n onChangeTab(event) {\r\n // this.pageHeaderModel.showDeleted = !this.tableHeaderComponent.tableHeaderModel.isShowDeletedButtonVisible;\r\n this.tabID = event.index\r\n this.loadTabData(this.tabID);\r\n }\r\n\r\n //load the tab records on click of tab\r\n loadTabData(index = 0) {\r\n this.tabID = index;\r\n // this.tableHeaderModel.setVisibility({\r\n // isAddButtonVisible : true,\r\n // isSoftDeleteButtonVisible : true,\r\n // isShowDeletedButtonVisible : !this.pageHeaderModel.showDeleted,\r\n // isHideDeletedButtonVisible : this.pageHeaderModel.showDeleted,\r\n // isPermanentDeleteButtonVisible : true,\r\n // });\r\n switch (this.tabID) {\r\n\r\n case 0: {\r\n agGridDataModelRoles.gridApi = this.roleGridApi;\r\n this.formModel.roles = this.agGridService.performFilter(agGridDataModelRoles);\r\n this.pageHeaderModel.agGridI = agGridDataModelRoles;\r\n this.pageHeaderModel.gridApi = this.roleGridApi;\r\n break;\r\n }\r\n }\r\n // this.tableHeaderComponent.getTabData();\r\n }\r\n ongridReady(item, gridApi) { this.roleGridApi = gridApi; }\r\n onPageSizeUpdated(pageSize){ this.storageService.store(agGridDataModelRoles.paginationStore,pageSize); this.loadTabData(this.tabID);}\r\n //#endregion tab events\r\n //#region get and fill form records\r\n getById(res: any) {\r\n this.setForm(res.response);\r\n }\r\n setForm(formModel: RolesModel) {\r\n this.fillForm(formModel);\r\n this.loadTabData(this.tabID);\r\n }\r\n fillForm(formModel: RolesModel) {\r\n //#region Set Grid Storage\r\n this.storageService.store(StorageName.ROLES_INITIALROWS, formModel.roles);\r\n //#endregion\r\n }\r\n //#endregion get and fill form records\r\n}\r\n//#endregion Component End","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RolesRoutingModule } from './roles-routing.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { Select2Module } from 'ng-select2-component';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\nimport { RolesComponent } from './roles.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n RolesComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RolesRoutingModule,\r\n SharedModule,\r\n Select2Module,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxDatatableModule, \r\n MatSelectModule\r\n ]\r\n})\r\nexport class RolesModule { }\r\n","//import { PaginationModelCommon } from \"src/app/shared/model/pagination.model\";\r\n\r\nexport class UserDefinedFields {\r\n}\r\n\r\n// export class userPaginationModel extends PaginationModelCommon{\r\n// userId : number;\r\n// }\r\n\r\nexport class udfDataModel \r\n{\r\n id : number;\r\n nStarTable : string;\r\n nStarUDFName : string;\r\n udfFieldName : string;\r\n active : boolean;\r\n isDeleted : boolean = false;\r\n totalRecords : number;\r\n isEdited : boolean = false;\r\n isRowChecked : boolean = false;\r\n isPasteRow : boolean = false;\r\n isAdded : boolean = false;\r\n}\r\n\r\nexport class udfPostModel\r\n{\r\n isNew : boolean = true;\r\n uDFs : udf[]=[];\r\n}\r\n\r\nexport class udf \r\n{\r\n nStarTable : string;\r\n nStarUDFName : string;\r\n udfFieldName : string;\r\n active : boolean;\r\n id : number;\r\n createdAt : string;\r\n updatedAt : string;\r\n isDeleted : boolean = false;\r\n deletedAt : string;\r\n isEdited : boolean = false;\r\n isAdded : boolean = false;\r\n}\r\n\r\nexport class GetTotalRecordByID\r\n{\r\n // userId: number;\r\n udfDataModel : udfDataModel[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, tap } from 'rxjs';\r\nimport { Result } from 'src/app/shared/model/response.model';\r\nimport { DataService } from 'src/app/shared/services/data.service';\r\nimport { PaginationModelCommon } from 'src/app/shared/model/pagination.model';\r\nimport { udfPostModel } from './user-defined-fields.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserDefinedFieldsService {\r\n\r\n constructor(private service: DataService) { }\r\n\r\n public postUDFRecordByID(getRecordByID:PaginationModelCommon):Observable \r\n {\r\n let url='/UDF/getUDFRecordById';\r\n return this.service.post(url,getRecordByID,true).pipe(tap((response:any) => {\r\n return response;\r\n }));\r\n }\r\n\r\n public postUDFData(udfPostModel:udfPostModel):Observable \r\n {\r\n let url='/UDF/postUDFData'; \r\n var a = JSON.stringify(udfPostModel);\r\n console.log('the json is: ', a);\r\n \r\n return this.service.post(url,udfPostModel,true).pipe(tap((response:any) => {\r\n return response;\r\n }));\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { DiretyCheckGuard } from 'src/app/shared/guard/direty-check.guard';\r\nimport { UserDefinedFieldsComponent } from './user-defined-fields.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: UserDefinedFieldsComponent, canDeactivate: [DiretyCheckGuard] }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class UserDefinedFieldsRoutingModule { }\r\n","import { Component, HostListener, OnInit, Renderer2, OnDestroy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Select2Data, Select2UpdateEvent } from 'ng-select2-component';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { sort } from 'src/app/shared/component/sort/sort.model';\r\nimport { ComponentCanDeactivate } from 'src/app/shared/guard/direty-check.guard';\r\nimport { CommonService } from 'src/app/shared/services/common.service';\r\nimport {\r\n AgColDefsI,\r\n AgGridI,\r\n} from \"src/app/shared/component/ag-grid/ag-grid.interface\";\r\nimport { GetTotalRecordByID, udf, udfDataModel, udfPostModel } from '../user-defined-fields.model';\r\nimport { StorageName } from 'src/app/shared/common/enum';\r\nimport { UserDefinedFieldsService } from '../user-defined-fields.service';\r\nimport { StorageService } from \"src/app/shared/services/storage.service\";\r\nimport { GlobalService } from \"src/app/shared/services/global.service\";\r\nimport { SortService } from \"src/app/shared/component/sort/sort.service\";\r\nimport { IconsService } from \"src/app/shared/component/actions/icons.service\";\r\nimport { NotificationService } from \"src/app/shared/services/notification.service\";\r\nimport { ExportService } from \"src/app/shared/services/export.service\";\r\nimport { AgGridService } from \"src/app/shared/component/ag-grid/ag-grid.service\";\r\nimport { FilterService } from \"src/app/shared/component/filter/filter.service\";\r\nimport { PaginationModelCommon } from 'src/app/shared/model/pagination.model';\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { TierTransactionService } from 'src/app/pages/transactions/tier-transactions/tier-transactions.service';\r\nimport { CommonTabService } from 'src/app/shared/services/common-tab.service';\r\n\r\n@Component({\r\n selector: 'app-user-defined-fields',\r\n templateUrl: './user-defined-fields.component.html',\r\n styleUrls: ['./user-defined-fields.component.scss']\r\n})\r\nexport class UserDefinedFieldsComponent extends CommonService implements OnInit, ComponentCanDeactivate, OnDestroy {\r\n\r\n UDFRows: udfDataModel[] = [];\r\n restedUDFRows = [];\r\n\r\n // list decleartion\r\n collapse: boolean = true;\r\n mydata: Select2Data;\r\n overlay = true;\r\n ishidden: boolean = true;\r\n tabID: number;\r\n\r\n //UserFilterList : GetUserFilterList[];\r\n filteredUserOptions: Select2Data;\r\n TransactionFilterCriteria = [];\r\n flexibleHeight: string;\r\n // list decleartion\r\n\r\n agUserName = [];\r\n agUserId = [];\r\n\r\n agUserRoleName = [];\r\n agUserRoleId = [];\r\n //grid\r\n\r\n oldudfPostModel = new udfPostModel();\r\n udfPostModel = new udfPostModel();\r\n udfPaginationModel = new PaginationModelCommon();\r\n\r\n // user = new user();\r\n postudf = new udf();\r\n udfId: number;\r\n value2: number;\r\n value2updated: boolean = false;\r\n isAddRowVisible: boolean = false;\r\n isSaveBtnClicked: boolean = false;\r\n canModify: boolean = false;\r\n\r\n // UserN: GetUserFilterList[];\r\n // UName: string[];\r\n\r\n udfGridApi: any;\r\n\r\n colDefsUDFs: AgColDefsI[] = [\r\n // {\r\n // field: \"id\",\r\n // width: 40,\r\n // pinned: \"left\",\r\n // headerCheckboxSelection: true,\r\n // checkboxSelection: true,\r\n // lockPosition: true,\r\n // },\r\n {\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n sortable: true\r\n },\r\n {\r\n displayName: \"Actions\",\r\n field: \"actions\",\r\n width: 100,\r\n minWidth: 30,\r\n pinned: \"left\",\r\n cellType: \"icons\",\r\n editable: false,\r\n sortable: false,\r\n lockPinned: true,\r\n lockPosition: true,\r\n },\r\n {\r\n displayName: \"North Star Field\",\r\n field: \"nStarUDFName\",\r\n width: 150,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n floatingFilter: true,\r\n\r\n //isRequired: true,\r\n //floatingFilter: true,\r\n filterValueColumnName: \"nStarUDFName\",\r\n cellDisplayFormat: \"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n sortable: true\r\n },\r\n {\r\n displayName: \"Caption\",\r\n field: \"udfFieldName\",\r\n width: 180,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n // cellType: \"dropdown\",\r\n // cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n // cellEditor: {\r\n // cellEditorData: this.agvehicalData,\r\n // cellEditorId: this.agvehicalId,\r\n // },\r\n //isRequired: true,\r\n //isfilter: true,\r\n filterValueColumnName: \"udfFieldName\",\r\n cellDisplayFormat: \"textFilter\",\r\n editable: true,\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"active\",\r\n displayName: \"Active\",\r\n width: 130,\r\n minWidth: 110,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName: \"active\",\r\n cellDisplayFormat: \"textFilter\",\r\n\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n }\r\n ];\r\n\r\n agGridDataModelUDF: AgGridI = {\r\n colDefs: this.colDefsUDFs,\r\n rowSelection: \"multiple\",\r\n //formName: \"User\",\r\n gridName: StorageName.GRID_ADMINISTRATION_UDFS_UDF,\r\n storageName: StorageName.UDFS_UDFCOLUMNCHANGED,\r\n paginationStore: StorageName.UDFS_UDF_PAGINATION,\r\n initialRows: StorageName.ADMINISTRATION_UDFS_UDF_INITIALROWS,\r\n filterStorageName: StorageName.FILTER_ADMINISTRATION_UDFS_UDF_SELECTED,\r\n tabIndex: 0,\r\n };\r\n\r\n sortList: sort[] = [];\r\n private _sortListSubscription!: Subscription;\r\n private _entireDataSubscription!: Subscription;\r\n private _getExtraColumnSubscription!: Subscription;\r\n private _onSaveBeforeCloseSubscription!: Subscription;\r\n\r\n constructor(\r\n public udfService: UserDefinedFieldsService,\r\n public StorageService: StorageService,\r\n private globalService: GlobalService,\r\n public agGridService: AgGridService,\r\n public sortService: SortService,\r\n public iconsService: IconsService,\r\n public notificationService: NotificationService,\r\n public dialog: MatDialog,\r\n public renderer: Renderer2,\r\n public filterService: FilterService,\r\n public ExportService: ExportService,\r\n public toasterService: ToastrService,\r\n private tierTransactionsService: TierTransactionService,\r\n public commonService: CommonTabService\r\n ) {\r\n super(renderer);\r\n this.agGridService.clearRows();\r\n // for sorting\r\n this._sortListSubscription = this.sortService.sortList$.subscribe(\r\n (data) => {\r\n this.sortList = data;\r\n // this.StorageService.store(\"sortStoredList\",this.sortList);\r\n }\r\n );\r\n }\r\n\r\n @HostListener(\"window:beforeunload\")\r\n canDeactivate(): Observable | boolean {\r\n var UDF = this.StorageService.retrieve(this.agGridDataModelUDF.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n return (UDF?.length == 0);\r\n }\r\n\r\n ngOnInit(): void {\r\n //set from permission\r\n var formPermission = this.StorageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if (formPermission) {\r\n this.canModify = formPermission.modifyPermission;\r\n }\r\n this._onSaveBeforeCloseSubscription = this.commonService.onSaveBeforeClose.subscribe((data) => this.onSave());\r\n this.ishidden = true;\r\n this.tabID = 0;\r\n this.flexibleHeight = \"min-height: calc(94vh - 114px) !important;max-height: calc(94vh - 114px) !important;\";\r\n this.isAddRowVisible = true;\r\n this.allGetApis();\r\n this.onTabDataLoad(0);\r\n }\r\n\r\n allGetApis() {\r\n this.getAllRecordByID();\r\n }\r\n\r\n getAllRecordByID() {\r\n // if (this.userId == undefined || this.userId == null) return;\r\n // this.userPaginationModel.userId = this.userId;\r\n if (this.udfPostModel.isNew) {\r\n this.udfPaginationModel.getAll = false;\r\n } else {\r\n this.udfPaginationModel.getAll = true;\r\n }\r\n // this.userPaginationModel.getAll = this.fundId == 0;\r\n this._entireDataSubscription = this.udfService\r\n .postUDFRecordByID(this.udfPaginationModel)\r\n .subscribe((res) => {\r\n\r\n if (res.response) {\r\n this.globalService.deactivateLoader();\r\n }\r\n if (res.isSuccess) {\r\n this.getUDFRecord(res.response);\r\n //this.totalRecords = res.response?.fundInvestorTotalRecords;\r\n this.oldudfPostModel = res.response;\r\n //this.passResetGird = res.response;\r\n this.isSaveBtnClicked = false;\r\n //this.fundData = new fundDataModel();\r\n }\r\n });\r\n }\r\n\r\n getUDFRecord(getTotalRecordByID: GetTotalRecordByID) {\r\n\r\n this.UDFRows = [];\r\n this.UDFRows = getTotalRecordByID?.udfDataModel;\r\n this.restedUDFRows = getTotalRecordByID?.udfDataModel;\r\n this.StorageService.store(StorageName.ADMINISTRATION_UDFS_UDF_INITIALROWS, this.restedUDFRows)\r\n\r\n this.onTabDataLoad(this.tabID);\r\n }\r\n\r\n onTabDataLoad(index) {\r\n this.tabID = index;\r\n switch (this.tabID) {\r\n case 0: {\r\n this.agGridDataModelUDF.masterIdStorageName = \"\",\r\n this.agGridDataModelUDF.gridApi = this.udfGridApi;\r\n this.UDFRows = this.agGridService.performFilter(this.agGridDataModelUDF);\r\n this.isAddRowVisible = true;\r\n this.sortService.gridName.next({ gridName: StorageName.GRID_ADMINISTRATION_UDFS_UDF, rows: this.UDFRows });\r\n this.iconsService.tabName.next(\"udf_udf\");\r\n break;\r\n }\r\n }\r\n }\r\n\r\n getChangedDataUDF(event) {\r\n console.log('the data is changed...', event);\r\n\r\n if (this.tabID == 0) {\r\n this.UDFRows = event;\r\n this.restedUDFRows = event;\r\n }\r\n }\r\n\r\n addNewRow(event) {\r\n console.log(\"adding new row...: \", event);\r\n if (event.data?.isAdded) {\r\n event.data.isEdited = false;\r\n event.data.isDeleted = false;\r\n event.data.isAdded = true;\r\n }\r\n if (event?.data.isEdited) {\r\n console.log(\"on edited: \", event);\r\n }\r\n }\r\n\r\n ongridReady(item, event) {\r\n console.log(item.label);\r\n if (item == \"UDF\") {\r\n this.udfGridApi = event;\r\n }\r\n }\r\n\r\n exportAllItems(tabID) {\r\n tabID = this.tabID;\r\n var filename = \"\";\r\n var gridapi: any;\r\n switch (tabID) {\r\n case 0: {\r\n var fileName = \"UDF Export\";\r\n gridapi = this.udfGridApi;\r\n break;\r\n }\r\n // case 1: {\r\n // var fileName = \"UserRole Export\";\r\n // gridapi = this.userRoleGridApi;\r\n // break;\r\n // }\r\n }\r\n this.agGridService.exportAll(gridapi, fileName);\r\n }\r\n\r\n resetTableData() {\r\n this.globalService.activateLoader();\r\n //if (!this.udfPostModel.isNew) {\r\n this.getAllRecordByID();\r\n //}\r\n }\r\n\r\n onResetFilter(tabID) {\r\n\r\n switch (tabID) {\r\n case 0: {\r\n this.UDFRows = this.agGridService.\r\n resetAllFilters(StorageName.ADMINISTRATION_UDFS_UDF_INITIALROWS,\r\n StorageName.FILTER_ADMINISTRATION_UDFS_UDF_SELECTED,\r\n StorageName.GRID_ADMINISTRATION_UDFS_UDF, this.udfGridApi)\r\n break;\r\n }\r\n }\r\n }\r\n\r\n onSelectAll() {\r\n if (this.UDFRows != undefined && this.UDFRows?.length > 0) {\r\n var val = !this.UDFRows[0].active;\r\n this.UDFRows = this.UDFRows.map(obj => ({ ...obj, isEdited: true, active: val }));\r\n this.restedUDFRows = this.UDFRows;\r\n this.udfGridApi.api.setRowData(this.UDFRows);\r\n\r\n }\r\n }\r\n\r\n onSave() {\r\n switch (this.tabID) {\r\n case 0: {\r\n var postUDFRows = this.StorageService.retrieve(this.agGridDataModelUDF.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n // var postUDFRows = this.UDFRows?.filter(\r\n // (row) => row.isEdited == true || row.isAdded == true\r\n // );\r\n // console.log('the udfs: ', postUDFRows);\r\n\r\n break;\r\n }\r\n\r\n }\r\n\r\n this.udfPostModel = new udfPostModel();\r\n\r\n if (postUDFRows?.length != 0) {\r\n if (postUDFRows == undefined) {\r\n postUDFRows = [];\r\n }\r\n\r\n postUDFRows.forEach((data) => {\r\n this.postudf = new udf();\r\n this.postudf.nStarTable = data.nStarTable;\r\n this.postudf.nStarUDFName = data.nStarUDFName;\r\n this.postudf.udfFieldName = data.udfFieldName;\r\n this.postudf.active = data.active;\r\n this.postudf.id = data.id;\r\n this.postudf.isAdded = data.isAdded;\r\n this.postudf.isEdited = data.isEdited;\r\n this.postudf.isDeleted = data.isDeleted;\r\n\r\n this.udfPostModel.uDFs.push(this.postudf);\r\n });\r\n }\r\n\r\n var checkRequiredDataForUDF =\r\n this.udfPostModel.uDFs.find(\r\n (a) =>\r\n (a.nStarTable == undefined || a.nStarUDFName == undefined || a.udfFieldName == undefined) &&\r\n a.isDeleted == false\r\n );\r\n\r\n if (\r\n this.udfPostModel.uDFs.map((a) => a.isAdded == true) &&\r\n checkRequiredDataForUDF != undefined\r\n ) {\r\n //this.notificationService.warningpopup(\"Error\");\r\n return false;\r\n }\r\n\r\n\r\n {\r\n console.log('the post data.... ', this.udfPostModel);\r\n\r\n this.globalService.activateLoader();\r\n this._entireDataSubscription = this.udfService\r\n .postUDFData(this.udfPostModel)\r\n .subscribe((res) => {\r\n this.globalService.deactivateLoader();\r\n if (res.isSuccess) {\r\n this.commonService.checkRedirectUrlAfterSave();\r\n this.isSaveBtnClicked = true;\r\n if (res.message == \"Ptr Data is not Saved.\") {\r\n this.notificationService.warningpopup(res.message);\r\n } else {\r\n this.toasterService.success(res.message, \"\", {\r\n timeOut: 1000\r\n });\r\n }\r\n this.udfPostModel.isNew = false;\r\n this.udfId = res.response == null ? 0 : res.response.id;\r\n // this.value2 = this.fundId;\r\n //this.getFilteredOptions();\r\n this.getAllRecordByID();\r\n this.getUDFLIST();\r\n } else {\r\n this.commonService.setredirectUrlAfterSave(null);\r\n this.notificationService.warningpopup(res.message);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n getUDFLIST() {\r\n this._getExtraColumnSubscription = this.tierTransactionsService.getExtraColumn().subscribe(data => {\r\n this.StorageService.store(\"UDFLIST\", data.response);\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._entireDataSubscription) {\r\n this._entireDataSubscription.unsubscribe();\r\n }\r\n\r\n if (this._sortListSubscription) {\r\n this._sortListSubscription.unsubscribe();\r\n }\r\n\r\n if (this._getExtraColumnSubscription) {\r\n this._getExtraColumnSubscription.unsubscribe();\r\n }\r\n\r\n if (this._onSaveBeforeCloseSubscription) {\r\n this._onSaveBeforeCloseSubscription.unsubscribe();\r\n }\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { UserDefinedFieldsRoutingModule } from './user-defined-fields-routing.module';\r\nimport { UserDefinedFieldsComponent } from './user-defined-fields.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { Select2Module } from 'ng-select2-component';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\nimport { InvestorRoutingModule } from 'src/app/pages/fund-information/investors/investors.routing';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n UserDefinedFieldsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n UserDefinedFieldsRoutingModule,\r\n SharedModule,\r\n Select2Module,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxDatatableModule,\r\n MatSelectModule,\r\n InvestorRoutingModule,\r\n ]\r\n})\r\nexport class UserDefinedFieldsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { DiretyCheckGuard } from 'src/app/shared/guard/direty-check.guard';\r\nimport { UsersComponent } from './users.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: UsersComponent, canDeactivate: [DiretyCheckGuard] }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class UsersRoutingModule { }\r\n","//#region Imports\r\nimport { Component, HostListener, OnDestroy, OnInit, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { AppComponent } from \"src/app/app.component\";\r\nimport { ComponentCanDeactivate } from \"src/app/shared/guard/direty-check.guard\";\r\nimport { CommonService } from \"src/app/shared/services/common.service\";\r\nimport { StorageService } from \"src/app/shared/services/storage.service\";\r\nimport { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridService } from \"src/app/shared/component/ag-grid/ag-grid.service\";\r\nimport { PageHeaderModel } from \"src/app/shared/component/page-header/page-header.model\";\r\nimport { CommonTabService } from \"src/app/shared/services/common-tab.service\";\r\nimport { PageHeaderComponent } from \"src/app/shared/component/page-header/page-header.component\";\r\nimport { DropdownListModel } from \"../../fund-information/fund-information.model\";\r\nimport { agGridDataModelUser, agGridDataModelUserRole, UserModel } from \"./users.model\";\r\n//#endregion\r\n//#region Component start\r\n@Component({\r\n selector: \"app-users\",\r\n templateUrl: \"./users.component.html\",\r\n styleUrls: [\"./users.component.scss\"],\r\n providers: [AppComponent],\r\n})\r\nexport class UsersComponent extends CommonService implements OnInit, OnDestroy, ComponentCanDeactivate {\r\n @ViewChild(PageHeaderComponent) pageHeaderComponent: PageHeaderComponent;\r\n // @ViewChild(TableHeaderButtonsComponent) tableHeaderComponent:TableHeaderButtonsComponent;\r\n //#region variable declarations\r\n // top model which contains filter, save, undo, delete and filter name\r\n pageHeaderModel: PageHeaderModel;\r\n // // top model for the panel over grid which contains add row, export, reset filter, reset grid, undo , soft delete and permanent delete and view/show hidden records\r\n // tableHeaderModel : TableHeaderModel;\r\n\r\n //current/selected tab\r\n tabID: number;\r\n // grid apis which sets on grid ready event from ag-grid\r\n userGridApi: any;\r\n userRoleGridApi: any;\r\n\r\n\r\n //for changed form data\r\n formModel = new UserModel();\r\n //for original form data - will be used to reset/clear the form\r\n loadedFormModel = new UserModel();\r\n // for loading all the dropdowns - form and grid every dropdown\r\n dropdownListModel = new DropdownListModel();\r\n\r\n // tab group list\r\n tabGroupList: any[] = [\r\n { dataModel: agGridDataModelUser, label: 'User', tabIndex: 0 },\r\n { dataModel: agGridDataModelUserRole, label: 'User Role', tabIndex: 1 }\r\n ];\r\n\r\n private _onSaveBeforeCloseSubscription!: Subscription;\r\n\r\n //#endregion variable declarations\r\n //#region ctor\r\n constructor(\r\n public renderer: Renderer2,\r\n public storageService: StorageService,\r\n public agGridService: AgGridService,\r\n public commonTabService: CommonTabService\r\n ) { super(renderer); }\r\n\r\n //#endregion\r\n //#region Save Confirmation\r\n @HostListener(\"window:beforeunload\")\r\n canDeactivate(): Observable | boolean {\r\n var user = this.storageService.retrieve(agGridDataModelUser.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var userRole = this.storageService.retrieve(agGridDataModelUserRole.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n return (\r\n user?.length == 0 &&\r\n userRole?.length == 0);\r\n }\r\n //#endregion\r\n //#region Init\r\n ngOnInit(): void {\r\n this.fillPageHeader();\r\n\r\n //this.setTableHeader();\r\n this._onSaveBeforeCloseSubscription = this.commonTabService.onSaveBeforeClose.subscribe((data) => this.onSave());\r\n }\r\n fillPageHeader() {\r\n this.pageHeaderModel = new PageHeaderModel();\r\n this.pageHeaderModel.placeHolder = \"\";\r\n this.pageHeaderModel.controllerName = StorageName.USERS_CONTROLLER;\r\n this.pageHeaderModel.IdStorageName = StorageName.USERID;\r\n this.pageHeaderModel.filterOptionStorageName = StorageName.USER_DROPDOWN;\r\n this.pageHeaderModel.showDeleted = false;\r\n this.pageHeaderModel.setVisibilityForForm(\"User\");\r\n }\r\n \r\n fillTopDropdown() {\r\n this.dropdownListModel.fundDropdown = this.storageService.retrieve(StorageName.USER_DROPDOWN);\r\n }\r\n //#endregion\r\n //#region Clear Complete Form\r\n clearFields(): void {\r\n this.formModel = new UserModel();\r\n this.pageHeaderModel.id = 0;\r\n this.pageHeaderModel.name = \"\";\r\n\r\n //set enpty rows to all grid apis\r\n this.userGridApi.api.setRowData([]);\r\n this.userRoleGridApi.api.setRowData([]);\r\n\r\n //fill the form with blank records\r\n this.fillForm(this.formModel);\r\n }\r\n //#endregion Clear Complete Form\r\n //#region page header events\r\n onAddNewForm() {\r\n //clear form fields\r\n this.clearFields();\r\n //load first tab by default - 0\r\n this.loadTabData(0);\r\n }\r\n //calling post api to save/update records\r\n onSave(): any {\r\n //this.pageHeaderModel.showDeleted = !this.tableHeaderComponent.tableHeaderModel.isShowDeletedButtonVisible;\r\n // get filter dropdown value from child component and assign\r\n this.formModel.user.userName = this.pageHeaderModel.name;\r\n this.formModel.user.id = this.pageHeaderModel.id;\r\n //create new mode for form to use for posting updated entries\r\n var postData = new UserModel();\r\n var user = this.storageService.retrieve(agGridDataModelUser.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var userRole = this.storageService.retrieve(agGridDataModelUserRole.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n postData.user = this.formModel.user;\r\n postData.users = user;// this.userGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n postData.userRoles = userRole;// this.userRoleGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n var deletedRecordsInUsers = postData.users?.filter((row) => row.isEdited == true && row.isDeleted == true);\r\n var deletedRecordsInUserRoles = postData.userRoles?.filter((row) => row.isEdited == true && row.isDeleted == true);\r\n this.pageHeaderComponent.post(postData, deletedRecordsInUsers.length != 0 || deletedRecordsInUserRoles.length != 0, true);\r\n }\r\n //#endregion\r\n //#region Tab Events\r\n //\r\n onChangeTab(event) {\r\n // this.pageHeaderModel.showDeleted = !this.tableHeaderComponent.tableHeaderModel.isShowDeletedButtonVisible;\r\n this.tabID = event.index\r\n this.loadTabData(this.tabID);\r\n }\r\n //load the tab records on click of tab\r\n loadTabData(index = 0) {\r\n this.tabID = index;\r\n // this.tableHeaderModel.setVisibility({\r\n // isAddButtonVisible : true,\r\n // isSoftDeleteButtonVisible : true,\r\n // isShowDeletedButtonVisible : !this.pageHeaderModel.showDeleted,\r\n // isHideDeletedButtonVisible : this.pageHeaderModel.showDeleted,\r\n // isPermanentDeleteButtonVisible : true,\r\n // });\r\n switch (this.tabID) {\r\n case 0: {\r\n agGridDataModelUser.gridApi = this.userGridApi;\r\n this.formModel.users = this.agGridService.performFilter(agGridDataModelUser);\r\n this.pageHeaderModel.agGridI = agGridDataModelUser;\r\n this.pageHeaderModel.gridApi = this.userGridApi;\r\n break;\r\n }\r\n case 1: {\r\n agGridDataModelUserRole.gridApi = this.userRoleGridApi;\r\n this.formModel.userRoles = this.agGridService.performFilter(agGridDataModelUserRole);\r\n this.pageHeaderModel.agGridI = agGridDataModelUserRole;\r\n this.pageHeaderModel.gridApi = this.userRoleGridApi;\r\n break;\r\n }\r\n }\r\n // this.tableHeaderComponent.getTabData();\r\n }\r\n ongridReady(item, gridApi) {\r\n switch (item.tabIndex) {\r\n case 0: this.userGridApi = gridApi; break;\r\n case 1: this.userRoleGridApi = gridApi; break;\r\n }\r\n }\r\n onPageSizeUpdated(pageSize){\r\n switch (this.tabID) {\r\n case 0: this.storageService.store(agGridDataModelUser.paginationStore,pageSize); break;\r\n case 1: this.storageService.store(agGridDataModelUserRole.paginationStore,pageSize); break;\r\n }\r\n this.loadTabData(this.tabID);\r\n }\r\n //#endregion tab events\r\n //#region get and fill form records\r\n getById(res: any) {\r\n this.storageService.store(StorageName.USERID, parseInt(res.response.user.id));\r\n this.setForm(res.response);\r\n }\r\n setForm(formModel: UserModel) {\r\n this.fillForm(formModel);\r\n this.loadTabData(this.tabID);\r\n }\r\n fillForm(formModel: UserModel) {\r\n //#region Top Data\r\n this.formModel.user = formModel.user;\r\n this.loadedFormModel.user = { ...this.formModel.user };\r\n this.pageHeaderModel.id = formModel.user.id;\r\n this.pageHeaderModel.name = formModel.user.userName;\r\n \r\n //#endregion Top Data\r\n //#region Set Grid Storage\r\n this.storageService.store(StorageName.USERS_INITIALROWS, formModel.users);\r\n this.storageService.store(StorageName.USER_ROLES_INITIALROWS, formModel.userRoles);\r\n //#endregion\r\n }\r\n //#endregion get and fill form records\r\n\r\n ngOnDestroy(): void {\r\n if (this._onSaveBeforeCloseSubscription) {\r\n this._onSaveBeforeCloseSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n//#endregion Component End","import { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridI, colDefsUserRole, colDefsUsers } from \"src/app/shared/component/ag-grid/ag-grid.interface\";\r\nimport { DropdownModel } from \"src/app/shared/model/common.model\";\r\nimport { PaginationModelCommon } from \"src/app/shared/model/pagination.model\";\r\n\r\nexport class UserModel\r\n{\r\n user : User = new User();\r\n users : User[]=[];\r\n userRoles : userRole[]=[];\r\n isNew : boolean = true;\r\n}\r\n\r\nexport class User \r\n{\r\n userName : string;\r\n passwordHash : string;\r\n confirmPassword : string;\r\n email : string;\r\n id : number;\r\n createdAt : string;\r\n updatedAt : string;\r\n isDeleted : boolean = false;\r\n deletedAt : string;\r\n isEdited : boolean = false;\r\n isAdded : boolean = false;\r\n}\r\n\r\nexport class userRole \r\n{\r\n userId : number;\r\n roleId : number;\r\n userName : number;\r\n roleName : number;\r\n id : number;\r\n createdAt : string;\r\n updatedAt : string;\r\n isDeleted : boolean = false;\r\n deletedAt : string;\r\n isEdited : boolean = false;\r\n isAdded : boolean = false;\r\n}\r\n\r\nexport const agGridDataModelUser: AgGridI = {\r\n colDefs: colDefsUsers,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.USERS_GRID,\r\n storageName: StorageName.USERS_USERCOLUMNCHANGED,\r\n paginationStore: StorageName.USERS_PAGINATION,\r\n initialRows: StorageName.USERS_INITIALROWS,\r\n filterStorageName: StorageName.USERS_FILTER,\r\n controllerName : StorageName.USERS_CONTROLLER,\r\n showDeleteStatusStorageName: StorageName.USER_SHOW_DELETED,\r\n tabIndex: 0,\r\n };\r\n\r\n export const agGridDataModelUserRole: AgGridI = {\r\n colDefs: colDefsUserRole,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.USER_ROLES_GRID,\r\n storageName: StorageName.USER_ROLES_COLUMNCHANGED,\r\n paginationStore: StorageName.USER_ROLES_PAGINATION,\r\n initialRows: StorageName.USER_ROLES_INITIALROWS,\r\n filterStorageName: StorageName.USER_ROLES_FILTER,\r\n controllerName : StorageName.USER_ROLES_CONTROLLER,\r\n showDeleteStatusStorageName : StorageName.USER_SHOW_DELETED,\r\n tabIndex: 1,\r\n };\r\n\r\n //for userrole\r\n ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UsersRoutingModule } from './users-routing.module';\r\nimport { UsersComponent } from './users.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { Select2Module } from 'ng-select2-component';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\nimport { InvestorRoutingModule } from '../../fund-information/investors/investors.routing';\r\n\r\n@NgModule({\r\n declarations: [\r\n UsersComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n UsersRoutingModule,\r\n SharedModule,\r\n Select2Module,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxDatatableModule,\r\n MatSelectModule,\r\n InvestorRoutingModule,\r\n ]\r\n})\r\nexport class UsersModule { }\r\n","//#region Imports\r\nimport { Component, HostListener, OnDestroy, OnInit, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { AppComponent } from \"src/app/app.component\";\r\nimport { ComponentCanDeactivate } from \"src/app/shared/guard/direty-check.guard\";\r\nimport { CommonService } from \"src/app/shared/services/common.service\";\r\nimport { StorageService } from \"src/app/shared/services/storage.service\";\r\nimport { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridService } from \"src/app/shared/component/ag-grid/ag-grid.service\";\r\nimport { PageHeaderModel } from \"src/app/shared/component/page-header/page-header.model\";\r\nimport { TableHeaderModel } from \"src/app/shared/component/table-header-buttons/table-header-buttons.model\";\r\nimport { CommonTabService } from \"src/app/shared/services/common-tab.service\";\r\nimport { PageHeaderComponent } from \"src/app/shared/component/page-header/page-header.component\";\r\nimport { TableHeaderButtonsComponent } from \"src/app/shared/component/table-header-buttons/table-header-buttons.component\";\r\nimport { DropdownListModel } from \"../fund-information/fund-information.model\";\r\nimport { agGridDataModelAllocation, agGridDataModelAllocationSummary, agGridDataModelJournalEntries, agGridDataModelPrefRetCalc, agGridDataModelPrefRetCalcSummary, agGridDataModelTierCalc, agGridDataModelTierCalcSummary, CalcGraphModel, Calculation, CalculationModel } from \"./calculation.model\";\r\nimport { CalculationService } from \"./calculation.service\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { SerchFiltermodalComponent } from \"./serch-filtermodal/serch-filtermodal.component\";\r\nimport { JournalModalComponent } from \"./journal-modal/journal-modal.component\";\r\nimport { ChartModalComponent } from \"./chart-modal/chart-modal.component\";\r\nimport { ScenarioModeModalComponent } from \"./scenario-mode-modal/scenario-mode-modal.component\";\r\nimport { LockUnlockRecordsUpdateComponent } from \"./lock-unlock-records-update/lock-unlock-records-update.component\";\r\nimport { RunModelComponent } from \"./run-model/run-model.component\";\r\nimport { CustomeHeaderService } from \"src/app/shared/component/custome-header/custome-header.service\";\r\nimport { exportMultipleSheetsAsExcel } from 'ag-grid-enterprise';\r\nimport { NotificationService } from \"src/app/shared/services/notification.service\";\r\nimport { ExportService } from \"src/app/shared/services/export.service\";\r\n//#endregion\r\n//#region Component start\r\n\r\n@Component({\r\n selector: \"app-calculation\",\r\n templateUrl: \"./calculation.component.html\",\r\n styleUrls: [\"./calculation.component.scss\"],\r\n providers: [AppComponent],\r\n})\r\nexport class CalculationComponent extends CommonService implements OnInit, OnDestroy, ComponentCanDeactivate {\r\n @ViewChild(PageHeaderComponent) pageHeaderComponent: PageHeaderComponent;\r\n @ViewChild(TableHeaderButtonsComponent) tableHeaderComponent: TableHeaderButtonsComponent;\r\n //#region variable declarations\r\n // top model which contains filter, save, undo, delete and filter name\r\n pageHeaderModel: PageHeaderModel;\r\n // top model for the panel over grid which contains add row, export, reset filter, reset grid, undo , soft delete and permanent delete and view/show hidden records\r\n tableHeaderModel: TableHeaderModel;\r\n\r\n //current/selected tab\r\n tabID: string;\r\n // grid apis which sets on grid ready event from ag-grid\r\n prefRetCalcGridApi: any;\r\n prefRetCalcSummaryGridApi: any;\r\n tierCalcGridApi: any;\r\n tierCalcSummaryGridApi: any;\r\n allocationsGridApi: any;\r\n allocationsSummaryGridApi: any;\r\n journalEntriesGridApi: any;\r\n //for changed form data\r\n formModel = new CalculationModel();\r\n //for original form data - will be used to reset/clear the form\r\n loadedFormModel = new CalculationModel();\r\n // for loading all the dropdowns - form and grid every dropdown\r\n dropdownListModel = new DropdownListModel();\r\n\r\n public single: any[];\r\n public multi: any[];\r\n public showXAxis = true;\r\n public showYAxis = true;\r\n public gradient = false;\r\n public showLegend = true;\r\n public showXAxisLabel = true;\r\n public xAxisLabel = 'Country';\r\n public showYAxisLabel = true;\r\n public yAxisLabel = 'Population';\r\n public colorScheme = {\r\n domain: ['#2F3E9E', '#D22E2E', '#378D3B', '#0096A6', '#F47B00', '#606060']\r\n }; \r\n showChart: boolean = false;\r\n\r\n // tab group list\r\n allTabGroupList: any[] = [\r\n { dataModel: agGridDataModelPrefRetCalc, label: 'Pref Ret Calc', tabIndex: 0 , tabType : \"details\" , visible : false },\r\n { dataModel: agGridDataModelPrefRetCalcSummary, label: 'Pref Ret Calc Summary', tabIndex: 1 , tabType : \"summary\", visible : false},\r\n { dataModel: agGridDataModelTierCalc, label: 'Tier Calc', tabIndex: 2 , tabType : \"details\", visible : false},\r\n { dataModel: agGridDataModelTierCalcSummary, label: 'Tier Calc Summary', tabIndex: 3 , tabType : \"summary\", visible : false},\r\n { dataModel: agGridDataModelAllocation, label: 'Allocations', tabIndex: 4 , tabType : \"details\", visible : false},\r\n { dataModel: agGridDataModelAllocationSummary, label: 'Allocations Summary', tabIndex: 5 , tabType : \"summary\", visible : false},\r\n { dataModel: agGridDataModelJournalEntries, label: 'Journal Entries', tabIndex: 6 , tabType : \"details\", visible : false}\r\n ];\r\n\r\n tabGroupList : any[];\r\n //#endregion variable declarations\r\n\r\n\r\n private _onSaveBeforeCloseSubscription!: Subscription;\r\n \r\n \r\n //#region ctor\r\n constructor(\r\n public renderer: Renderer2,\r\n public storageService: StorageService,\r\n public agGridService: AgGridService,\r\n public commonTabService: CommonTabService,\r\n public calculationService : CalculationService,\r\n public customeHeaderService : CustomeHeaderService,\r\n private notificationService: NotificationService,\r\n public exportService : ExportService,\r\n public dialog: MatDialog\r\n ) { super(renderer); \r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n if (this._onSaveBeforeCloseSubscription) {\r\n this._onSaveBeforeCloseSubscription.unsubscribe();\r\n }\r\n }\r\n //#endregion\r\n //#region Save Confirmation\r\n @HostListener(\"window:beforeunload\")\r\n canDeactivate(): Observable | boolean {\r\n return this.dataNotChanged()\r\n }\r\n \r\n //#endregion\r\n //#region Init\r\n ngOnInit(): void {\r\n this.fillPageHeader();\r\n this.setTableHeader();\r\n this._onSaveBeforeCloseSubscription = this.commonTabService.onSaveBeforeClose.subscribe((data) => this.onSave());\r\n this.customeHeaderService.columnCheckboxChecked.subscribe((res) => {\r\n this.showChart = true;\r\n this.getGraphData()\r\n });\r\n }\r\n\r\n fillPageHeader() {\r\n this.pageHeaderModel = new PageHeaderModel();\r\n this.pageHeaderModel.placeHolder = \"Enter New Calculation Name\";\r\n this.pageHeaderModel.controllerName = StorageName.CALCULATION_CONTROLLER;\r\n this.pageHeaderModel.IdStorageName = StorageName.CALCULATION_ID;\r\n this.pageHeaderModel.fundIdStorageName = StorageName.CALCULATION_FUNDID;\r\n this.pageHeaderModel.filterOptionStorageName = StorageName.CALCULATION_DROPDOWN;\r\n this.pageHeaderModel.setVisibilityForForm(\"Calculation\");\r\n\r\n }\r\n setTableHeader() {\r\n this.tableHeaderModel = new TableHeaderModel();\r\n this.tableHeaderModel.setVisibility({\r\n isAddButtonVisible: false,\r\n isExportButtonVisible: false,\r\n isUndoButtonVisible: false,\r\n isResetFilterButtonVisible: true,\r\n isSoftDeleteButtonVisible: false,\r\n isPermanentDeleteButtonVisible: false,\r\n isExpandButtonVisible: false,\r\n isCalculationForm : true\r\n }); \r\n this.setTabGroup();\r\n }\r\n fillTopDropdown() {\r\n this.dropdownListModel.fundDropdown = this.storageService.retrieve(StorageName.FUND_DROPDOWN);\r\n this.dropdownListModel.calculationRuleDropdown = this.storageService.retrieve(StorageName.CALCULATIONRULE_DROPDOWN);\r\n this.dropdownListModel.calcTypeDropdown = this.storageService.retrieve(StorageName.CALCULATION_TYPE_DROPDOWN);\r\n this.dropdownListModel.statusDropdown = this.storageService.retrieve(StorageName.STATUS_GRID_DROPDOWN);\r\n this.dropdownListModel.calculationStateDropdown = this.storageService.retrieve(StorageName.CALCULATION_STATE_DROPDOWN);\r\n this.dropdownListModel.subActDropdown = this.storageService.retrieve(StorageName.SUB_ACT_DROPDOWN);\r\n this.dropdownListModel.LockUnlockStatusDropdown = this.storageService.retrieve(StorageName.LOCK_UNLOCK_STATUS_DROPDOWN);\r\n this.dropdownListModel.calculationDropdown = this.storageService.retrieve(StorageName.CALCULATION_DROPDOWN);\r\n this.dropdownListModel.tierDropdown = this.storageService.retrieve(StorageName.TIER_DROPDOWN);\r\n this.dropdownListModel.calculationLevelDropdown = this.storageService.retrieve(StorageName.CALCULATION_LEVEL_DROPDOWN);\r\n }\r\n //#endregion\r\n //#region Clear Complete Form\r\n clearFields(): void {\r\n this.formModel = new CalculationModel();\r\n this.pageHeaderModel.id = 0;\r\n this.pageHeaderModel.name = \"\";\r\n\r\n\r\n //set enpty rows to all grid apis\r\n this.prefRetCalcGridApi.api.setRowData([]);\r\n this.prefRetCalcSummaryGridApi.api.setRowData([]);\r\n this.tierCalcGridApi.api.setRowData([]);\r\n this.tierCalcSummaryGridApi.api.setRowData([]);\r\n this.allocationsGridApi.api.setRowData([]);\r\n this.allocationsSummaryGridApi.api.setRowData([]);\r\n this.journalEntriesGridApi.api.setRowData([]);\r\n\r\n //fill the form with blank records\r\n this.fillForm(this.formModel);\r\n }\r\n //#endregion Clear Complete Form\r\n //#region page header events\r\n onAddNewForm() {\r\n //clear form fields\r\n this.clearFields();\r\n //focus on textbox to add new form name\r\n document.getElementById(\"AddNewForm\").focus();\r\n\r\n this.tableHeaderModel.isAddNew = true;\r\n\r\n //load first tab by default - 0\r\n this.loadTabData();\r\n }\r\n //calling post api to save/update records\r\n onSave(): any {\r\n // get filter dropdown value from child component and assign\r\n this.formModel.calculation.calcName = this.pageHeaderModel.name;\r\n this.formModel.calculation.id = this.pageHeaderModel.id;\r\n //create new mode for form to use for posting updated entries\r\n var postData = new CalculationModel();\r\n postData.calculation = this.formModel.calculation;\r\n this.pageHeaderComponent.post(postData, false);\r\n }\r\n //#endregion\r\n\r\n //#region Tab Events\r\n //\r\n\r\n onChangeTab(event) {\r\n this.tabID = event.index;\r\n this.loadTabData(event.tab.textLabel);\r\n }\r\n //load the tab records on click of tab\r\n loadTabData(tabName : string = \"Pref Ret Calc\") {\r\n this.tabID = tabName;\r\n this.tableHeaderModel.setVisibility({\r\n isExportButtonVisible : false,\r\n isAddButtonVisible: false,\r\n isSoftDeleteButtonVisible: false,\r\n isShowDeletedButtonVisible: false,\r\n isHideDeletedButtonVisible: false,\r\n isResetDeletedButtonVisible: false,\r\n isPermanentDeleteButtonVisible: false,\r\n isCalculationForm : true\r\n });\r\n this.tableHeaderModel.isGraohButtonVisible = false;\r\n\r\n agGridDataModelPrefRetCalc.gridApi = this.prefRetCalcGridApi;\r\n if(this.prefRetCalcGridApi != undefined)\r\n this.formModel.prefRetCalcs = this.agGridService.performFilter(agGridDataModelPrefRetCalc);\r\n agGridDataModelPrefRetCalcSummary.gridApi = this.prefRetCalcSummaryGridApi;\r\n if(this.prefRetCalcSummaryGridApi != undefined)\r\n this.formModel.prefRetCalcSummary = this.agGridService.performFilter(agGridDataModelPrefRetCalcSummary);\r\n agGridDataModelTierCalc.gridApi = this.tierCalcGridApi;\r\n if(this.tierCalcGridApi != undefined)\r\n this.formModel.tierCalcs = this.agGridService.performFilter(agGridDataModelTierCalc);\r\n agGridDataModelTierCalcSummary.gridApi = this.tierCalcSummaryGridApi;\r\n if(this.tierCalcSummaryGridApi != undefined)\r\n this.formModel.tierCalcSummary = this.agGridService.performFilter(agGridDataModelTierCalcSummary);\r\n agGridDataModelAllocation.gridApi = this.allocationsGridApi;\r\n if(this.allocationsGridApi != undefined)\r\n this.formModel.allocations = this.agGridService.performFilter(agGridDataModelAllocation);\r\n agGridDataModelAllocationSummary.gridApi = this.allocationsSummaryGridApi;\r\n if(this.allocationsSummaryGridApi != undefined)\r\n this.formModel.allocationsSummary = this.agGridService.performFilter(agGridDataModelAllocationSummary);\r\n agGridDataModelJournalEntries.gridApi = this.journalEntriesGridApi;\r\n if(this.journalEntriesGridApi != undefined)\r\n this.formModel.journalEntries = this.agGridService.performFilter(agGridDataModelJournalEntries);\r\n switch (this.tabID) {\r\n case \"Pref Ret Calc\": {\r\n // agGridDataModelPrefRetCalc.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n \r\n this.tableHeaderModel.agGridI = agGridDataModelPrefRetCalc;\r\n this.tableHeaderModel.gridApi = this.prefRetCalcGridApi;\r\n break;\r\n }\r\n case \"Pref Ret Calc Summary\": {\r\n // agGridDataModelPrefRetCalcSummary.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n \r\n this.tableHeaderModel.agGridI = agGridDataModelPrefRetCalcSummary;\r\n this.tableHeaderModel.gridApi = this.prefRetCalcSummaryGridApi;\r\n break;\r\n }\r\n case \"Tier Calc\": {\r\n // agGridDataModelTierCalc.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n \r\n this.tableHeaderModel.agGridI = agGridDataModelTierCalc;\r\n this.tableHeaderModel.gridApi = this.tierCalcGridApi;\r\n this.tableHeaderModel.isGraohButtonVisible = true;\r\n\r\n break;\r\n }\r\n case \"Tier Calc Summary\": {\r\n // agGridDataModelTierCalcSummary.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n \r\n this.tableHeaderModel.agGridI = agGridDataModelTierCalcSummary;\r\n this.tableHeaderModel.gridApi = this.tierCalcSummaryGridApi;\r\n break;\r\n }\r\n case \"Allocations\": {\r\n // agGridDataModelAllocation.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n \r\n this.tableHeaderModel.agGridI = agGridDataModelAllocation;\r\n this.tableHeaderModel.gridApi = this.allocationsGridApi;\r\n this.tableHeaderModel.isGraohButtonVisible = true;\r\n\r\n break;\r\n }\r\n case \"Allocations Summary\": {\r\n // agGridDataModelAllocationSummary.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n \r\n this.tableHeaderModel.agGridI = agGridDataModelAllocationSummary;\r\n this.tableHeaderModel.gridApi = this.allocationsSummaryGridApi;\r\n break;\r\n }\r\n case \"Journal Entries\": {\r\n // agGridDataModelPrefRetCalc.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n \r\n this.tableHeaderModel.agGridI = agGridDataModelJournalEntries;\r\n this.tableHeaderModel.gridApi = this.journalEntriesGridApi;\r\n break;\r\n }\r\n }\r\n\r\n var fromHomePageExport = this.storageService.retrieve(StorageName.IS_EXPORT_CALC_FROM_HOMEPAGE);\r\n var fromHomePageExportWithFormule = this.storageService.retrieve(StorageName.IS_EXPORT_WITH_FORMULA_CALC_FROM_HOMEPAGE);\r\n if(fromHomePageExport != undefined && fromHomePageExport == true)\r\n {\r\n this.storageService.removeItem(StorageName.IS_EXPORT_CALC_FROM_HOMEPAGE);\r\n this.storageService.removeItem(StorageName.IS_EXPORT_WITH_FORMULA_CALC_FROM_HOMEPAGE);\r\n if(fromHomePageExportWithFormule == true)\r\n this.onExcelExport(true);\r\n else\r\n this.onExcelExport(false);\r\n }\r\n }\r\n ongridReady(item, gridApi) {\r\n switch (item.tabIndex) {\r\n case 0: this.prefRetCalcGridApi = gridApi; break;\r\n case 1: this.prefRetCalcSummaryGridApi = gridApi; break;\r\n case 2: this.tierCalcGridApi = gridApi; break;\r\n case 3: this.tierCalcSummaryGridApi = gridApi; break;\r\n case 4: this.allocationsGridApi = gridApi; break;\r\n case 5: this.allocationsSummaryGridApi = gridApi; break;\r\n case 6: this.journalEntriesGridApi = gridApi; break;\r\n }\r\n }\r\n\r\n onPageSizeUpdated(pageSize){\r\n switch (this.tabID) {\r\n case \"Pref Ret Calc\": this.storageService.store(agGridDataModelPrefRetCalc.paginationStore,pageSize); break;\r\n case \"Pref Ret Calc Summary\": this.storageService.store(agGridDataModelPrefRetCalcSummary.paginationStore,pageSize); break;\r\n case \"Tier Calc\": this.storageService.store(agGridDataModelTierCalc.paginationStore,pageSize); break;\r\n case \"Tier Calc Summary\": this.storageService.store(agGridDataModelTierCalcSummary.paginationStore,pageSize); break;\r\n case \"Allocations\": this.storageService.store(agGridDataModelAllocation.paginationStore,pageSize); break;\r\n case \"Allocations Summary\": this.storageService.store(agGridDataModelAllocationSummary.paginationStore,pageSize); break;\r\n case \"Journal Entries\": this.storageService.store(agGridDataModelJournalEntries.paginationStore,pageSize); break;\r\n }\r\n this.loadTabData(this.tabID);\r\n }\r\n\r\n setGridsOnly(formModel: CalculationModel)\r\n {\r\n this.storageService.store(StorageName.CALCULATIONS_PREF_RET_CALC_INITIALROWS, formModel.prefRetCalcs);\r\n this.storageService.store(StorageName.CALCULATIONS_PREF_RET_CALC_SUMMARY_INITIALROWS, formModel.prefRetCalcSummary);\r\n this.storageService.store(StorageName.CALCULATIONS_TIER_CALC_INITIALROWS, formModel.tierCalcs);\r\n this.storageService.store(StorageName.CALCULATIONS_TIER_CALC_SUMMARY_INITIALROWS, formModel.tierCalcSummary);\r\n this.storageService.store(StorageName.CALCULATIONS_ALLOCATIONS_INITIALROWS, formModel.allocations);\r\n this.storageService.store(StorageName.CALCULATIONS_ALLOCATIONS_SUMMARY_INITIALROWS, formModel.allocationsSummary);\r\n this.storageService.store(StorageName.CALCULATIONS_JOURNAL_ENTRIES_INITIALROWS, formModel.journalEntries);\r\n this.loadTabData(this.tabID);\r\n }\r\n\r\n //#endregion tab events\r\n //#region get and fill form records\r\n getById(res: any) {\r\n // this.storageService.store(StorageName.CALCULATIONID, parseInt(res.response.calculation.calcId));\r\n this.setForm(res.response);\r\n }\r\n setForm(formModel: CalculationModel) {\r\n this.fillForm(formModel);\r\n this.loadTabData(this.tabID);\r\n }\r\n fillForm(formModel: CalculationModel) {\r\n //#region Top Data\r\n if(this.dropdownListModel.investmentDropdown == undefined)\r\n this.dropdownListModel.investmentDropdown = formModel.investmentDropdown;\r\n else if(JSON.stringify(this.dropdownListModel.investmentDropdown).replace(\"'\", \"\").replace(/\"/g, '') !== JSON.stringify(formModel.investmentDropdown).replace(\"'\", \"\").replace(/\"/g, ''))\r\n this.dropdownListModel.investmentDropdown = formModel.investmentDropdown;\r\n \r\n \r\n if(this.dropdownListModel.positionDropdown == undefined)\r\n this.dropdownListModel.positionDropdown = formModel.positionDropdown;\r\n else if(JSON.stringify(this.dropdownListModel.positionDropdown).replace(\"'\", \"\").replace(/\"/g, '') !== JSON.stringify(formModel.positionDropdown).replace(\"'\", \"\").replace(/\"/g, ''))\r\n this.dropdownListModel.positionDropdown = formModel.positionDropdown;\r\n\r\n if(this.dropdownListModel.investorGroupDropdown == undefined)\r\n this.dropdownListModel.investorGroupDropdown = formModel.investorGroupDropdown;\r\n else if(JSON.stringify(this.dropdownListModel.investorGroupDropdown).replace(\"'\", \"\").replace(/\"/g, '') !== JSON.stringify(formModel.investorGroupDropdown).replace(\"'\", \"\").replace(/\"/g, ''))\r\n this.dropdownListModel.investorGroupDropdown = formModel.investorGroupDropdown;\r\n\r\n this.formModel.calculation = formModel.calculation;\r\n this.formModel.calculation.proceeds = (formModel.calculation.proceeds=='')? undefined : this.agGridService.currencyFormatter(formModel.calculation.proceeds,\"\",2);\r\n this.loadedFormModel.calculation = { ...this.formModel.calculation };\r\n this.pageHeaderModel.id = formModel.calculation.id;\r\n this.pageHeaderModel.name = formModel.calculation.calcName;\r\n this.pageHeaderModel.isCalcLocked = formModel.calculation.isCalcLocked;\r\n this.pageHeaderModel.fundId = (formModel.calculation.fundId != undefined && formModel.calculation.fundId != null && formModel.calculation.fundId != \"\") ? 0 : parseInt(formModel.calculation.fundId) ;\r\n this.tableHeaderModel.isAddNew = false;\r\n if(this.formModel.calculation.isHypothetical == true)\r\n this.pageHeaderComponent.pageHeaderModel.isHypotheticalLabelVisible = true;\r\n else\r\n this.pageHeaderComponent.pageHeaderModel.isHypotheticalLabelVisible = false;\r\n\r\n if(this.formModel.calculation.isScenarioModeApplied == true)\r\n this.pageHeaderComponent.pageHeaderModel.isScenarioModeAppliedLabelVisible = true;\r\n else\r\n this.pageHeaderComponent.pageHeaderModel.isScenarioModeAppliedLabelVisible = false;\r\n if(this.formModel.calculation.investmentId != null && this.formModel.calculation.investmentId != undefined)\r\n this.formModel.calculation.investmentId = this.formModel.calculation.investmentId.toString();\r\n if(this.formModel.calculation.positionId != null && this.formModel.calculation.positionId != undefined)\r\n this.formModel.calculation.positionId = this.formModel.calculation.positionId.toString(); \r\n if(this.formModel.calculation.investorGroupId != null && this.formModel.calculation.investorGroupId != undefined)\r\n this.formModel.calculation.investorGroupId = this.formModel.calculation.investorGroupId.toString(); \r\n\r\n // if(this.formModel.calculation.fundId != undefined || this.formModel.calculation.fundId != null)\r\n // this.fundDropdownChange(this.formModel.calculation.fundId);\r\n //#endregion Top Data\r\n //#region Set Grid Storage\r\n this.storageService.store(StorageName.CALCULATIONS_PREF_RET_CALC_INITIALROWS, formModel.prefRetCalcs);\r\n this.storageService.store(StorageName.CALCULATIONS_PREF_RET_CALC_SUMMARY_INITIALROWS, formModel.prefRetCalcSummary);\r\n this.storageService.store(StorageName.CALCULATIONS_TIER_CALC_INITIALROWS, formModel.tierCalcs);\r\n this.storageService.store(StorageName.CALCULATIONS_TIER_CALC_SUMMARY_INITIALROWS, formModel.tierCalcSummary);\r\n this.storageService.store(StorageName.CALCULATIONS_ALLOCATIONS_INITIALROWS, formModel.allocations);\r\n this.storageService.store(StorageName.CALCULATIONS_ALLOCATIONS_SUMMARY_INITIALROWS, formModel.allocationsSummary);\r\n this.storageService.store(StorageName.CALCULATIONS_JOURNAL_ENTRIES_INITIALROWS, formModel.journalEntries);\r\n \r\n //#endregion\r\n }\r\n //#endregion get and fill form records\r\n\r\n onShowDetails(showDetails: boolean){\r\n this.tableHeaderModel.showDetails = showDetails;\r\n this.setTabGroup();\r\n }\r\n\r\n onShowSummary(showSummary : boolean){\r\n this.tableHeaderModel.showSummary = showSummary;\r\n this.setTabGroup();\r\n }\r\n\r\n onIncludeDraftStatus(showDetails){\r\n this.formModel.isDraftCalc = showDetails;\r\n this.onCalcListDropdownChange(this.pageHeaderModel.id);\r\n }\r\n\r\n setTabGroup(){\r\n this.tabGroupList = this.allTabGroupList.filter((obj) => {\r\n return (obj.tabType === 'details' && this.tableHeaderModel.showDetails== true) || (obj.tabType === 'summary' && this.tableHeaderModel.showSummary== true);\r\n });\r\n }\r\n\r\n fundDropdownChange(fundId : string){\r\n this.formModel.calculation.fundId=fundId;\r\n this.calculationService.getInvestmentDropDownDataByFundID(this.formModel.calculation.fundId ,this.formModel.calculation.investmentId )\r\n .subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.dropdownListModel.investmentDropdown = res.response;\r\n this.formModel.calculation.investmentId = (this.formModel.calculation.investmentId!= undefined && this.formModel.calculation.investmentId != null) ? this.formModel.calculation.investmentId.toString() : undefined;\r\n this.investmentDropdownChange(this.formModel.calculation.investmentId)\r\n }\r\n });\r\n }\r\n\r\n investmentDropdownChange(investmentId : string){\r\n this.formModel.calculation.investmentId=investmentId;\r\n this.calculationService.getPositionDropDownDataByFundID(this.formModel.calculation.fundId,this.formModel.calculation.investmentId , this.formModel.calculation.positionId )\r\n .subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.dropdownListModel.positionDropdown = res.response;\r\n // this.formModel.calculation.positionId = (this.formModel.calculation.positionId!= undefined && this.formModel.calculation.positionId != null) ? this.formModel.calculation.positionId.toString() : undefined;\r\n this.getInvestorGroupByFundId(this.formModel.calculation.fundId,this.formModel.calculation.investorGroupId)\r\n }\r\n });\r\n }\r\n getInvestorGroupByFundId(fundId : string, investorGroupId : string){\r\n this.formModel.calculation.fundId=fundId;\r\n this.formModel.calculation.investorGroupId=investorGroupId;\r\n this.calculationService.getInvestorGroupByFundId(this.formModel.calculation.fundId)\r\n .subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.dropdownListModel.investorGroupDropdown = res.response;\r\n // this.formModel.calculation.investorGroupId = (this.formModel.calculation.investorGroupId!= undefined && this.formModel.calculation.investorGroupId != null) ? this.formModel.calculation.investorGroupId.toString() : undefined;\r\n }\r\n });\r\n }\r\n\r\n \r\n\r\n\r\n\r\n\r\n onPostSuccess()\r\n {\r\n this.loadedFormModel.calculation = { ...this.formModel.calculation };\r\n // this.storageService.store(this.pageHeaderModel.IdStorageName,calcListId);\r\n //this.pageHeaderModel.id = calcListId;\r\n //this.getCalculationById();\r\n }\r\n\r\n onCalcListDropdownChange(calcListId){\r\n this.storageService.store(this.pageHeaderModel.IdStorageName,calcListId);\r\n //this.pageHeaderModel.id = calcListId;\r\n this.getCalculationById();\r\n }\r\n\r\n getCalculationById(onRun : boolean = false){\r\n this.pageHeaderModel.fundId= this.storageService.retrieve(this.pageHeaderModel.fundIdStorageName);\r\n this.calculationService.getCalcByFundIdCalcId(this.pageHeaderModel.fundId,this.pageHeaderModel.id , this.formModel.isDraftCalc)\r\n .subscribe((res) => {\r\n if (res.isSuccess)\r\n {\r\n this.getById(res);\r\n }\r\n });\r\n }\r\n\r\n onFundDropdownChange(fundId){\r\n this.storageService.store(this.pageHeaderModel.fundIdStorageName, fundId);\r\n this.getCalcFilterDropdown(new CalculationModel())\r\n }\r\n\r\n getCalcFilterDropdown(calculationModel : CalculationModel)\r\n {\r\n if(calculationModel == undefined)\r\n calculationModel = new CalculationModel();\r\n var searchListFromPopup = this.storageService.retrieve('searchCalcList');\r\n if(searchListFromPopup != undefined){\r\n calculationModel.statusDropdown = searchListFromPopup.statusDropdown;\r\n calculationModel.calculationStateDropdown = searchListFromPopup.calculationStateDropdown;\r\n calculationModel.calcTypeDropdown = searchListFromPopup.calcTypeDropdown;\r\n }\r\n calculationModel.fundId = this.storageService.retrieve(this.pageHeaderModel.fundIdStorageName);\r\n calculationModel.calcId = this.storageService.retrieve(this.pageHeaderModel.IdStorageName);\r\n this.calculationService.getCalcListFromSearch(calculationModel).subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.dropdownListModel.calculationDropdown = res.response;\r\n this.pageHeaderComponent.setCalcFilterDropdown(this.pageHeaderModel.id.toString(),res);\r\n if(res.response.length ==1 || res.response.length==0)\r\n this.pageHeaderModel.id = 0;\r\n this.calculationService.getCalcByFundIdCalcId(calculationModel.fundId,this.pageHeaderModel.id, this.formModel.isDraftCalc )\r\n .subscribe((res) => {\r\n if (res.isSuccess)\r\n this.getById(res);\r\n });\r\n }\r\n });\r\n }\r\n\r\n //#region popups\r\n private onOpenCalcFilterPopup(): void {\r\n let dialogRef = this.dialog.open(SerchFiltermodalComponent, {\r\n data: { calculation: this.formModel}, panelClass: 'my-dialog-container'});\r\n dialogRef.afterClosed().subscribe((loaddata) => {\r\n if (loaddata)\r\n this.getCalcFilterDropdown(loaddata.data);\r\n });\r\n }\r\n\r\n\r\n private onOpenJEPopup(): void {\r\n let dialogRef = this.dialog.open(JournalModalComponent, {\r\n data: { calculation: this.formModel , dropdownModel : this.dropdownListModel }, panelClass: 'my-dialog-container'});\r\n dialogRef.afterClosed().subscribe((loaddata) => {\r\n if (loaddata.data != undefined)\r\n this.onSave();\r\n });\r\n }\r\n\r\n private onOpenSMPopup(): void {\r\n let dialogRef = this.dialog.open(ScenarioModeModalComponent, {\r\n data: { calculation: this.formModel, tierDropdown : this.dropdownListModel.tierDropdown}, panelClass: 'my-dialog-container'});\r\n dialogRef.afterClosed().subscribe((loaddata) => {\r\n if (loaddata)\r\n console.log(\"loaded\")\r\n });\r\n }\r\n\r\n private onOpenLockPopup(): void {\r\n let dialogRef = this.dialog.open(LockUnlockRecordsUpdateComponent, {\r\n data: { calculation: this.formModel , dropdownModel : this.dropdownListModel}, panelClass: 'my-dialog-container'});\r\n dialogRef.afterClosed().subscribe((loaddata) => {\r\n if (loaddata)\r\n console.log(\"loaded\")\r\n });\r\n }\r\n\r\n private onOpenGraphPopup(): void {\r\n let dialogRef = this.dialog.open(ChartModalComponent, {\r\n data: { calculation: this.formModel}, panelClass: 'my-dialog-container'});\r\n dialogRef.afterClosed().subscribe((loaddata) => {\r\n if (loaddata)\r\n console.log(\"loaded\")\r\n });\r\n }\r\n openConfirmDialog() {\r\n this.notificationService.openConfirmDialog().subscribe((result) => {\r\n if (result.isDenied) {\r\n this.openRunCalcModel();\r\n }\r\n else if (result.isConfirmed) {\r\n this.onSave(); \r\n this.openRunCalcModel();\r\n }\r\n })\r\n return false;\r\n }\r\n private onRunCalc() : void{\r\n if(this.dataNotChanged()===false)\r\n {\r\n this.openConfirmDialog();\r\n }\r\n else\r\n this.openRunCalcModel();\r\n }\r\n\r\n openRunCalcModel()\r\n {\r\n let dialogRef = this.dialog.open(RunModelComponent, {\r\n data: { calculation: this.formModel, dropdownModel : this.dropdownListModel}, panelClass: 'my-dialog-container'});\r\n dialogRef.afterClosed().subscribe((loaddata) => {\r\n if (loaddata.data != undefined)\r\n {\r\n this.getCalculationById(true);\r\n if(loaddata.data.isExportedExcel)\r\n this.onExcelExport(loaddata.data.includeFormulasInExport);\r\n }\r\n });\r\n }\r\n\r\n getColumnsToInclude(gridApi) : any\r\n {\r\n // Get the column definitions\r\n const columnDefs = gridApi.api.getColumnDefs();\r\n // Get the column state\r\n const columnState = gridApi.columnApi.getColumnState();\r\n const columnsToInclude = columnState\r\n .filter(colState => !colState.hide) // Exclude hidden columns\r\n .map((colState) => {\r\n const columnDef = columnDefs.find(col => col.colId === colState.colId);\r\n const displayName = columnDef ? columnDef.headerName : colState.colId; // Use headerName if available\r\n return {\r\n ColumnName: displayName,\r\n ColumnOrder: colState.order\r\n };\r\n });\r\n return columnsToInclude;\r\n }\r\n\r\n onExcelExport(includeFormulasInExport : boolean) {\r\n if(includeFormulasInExport == true)\r\n {\r\n var postData = new CalculationModel();\r\n \r\n postData.calculation = this.formModel.calculation;\r\n postData.prefRetCalcs = this.storageService.retrieve(agGridDataModelPrefRetCalc.initialRows);\r\n postData.tierCalcs = this.storageService.retrieve(agGridDataModelTierCalc.initialRows);\r\n postData.allocations = this.storageService.retrieve(agGridDataModelAllocation.initialRows);\r\n postData.journalEntries = this.storageService.retrieve(agGridDataModelJournalEntries.initialRows);\r\n\r\n const columnKeysPrefRetCalc = this.prefRetCalcGridApi.columnApi.getColumnState();\r\n postData.columnKeysPrefRetCalc = columnKeysPrefRetCalc.map((colState, index) => ({\r\n ColumnName: colState.colId,\r\n ColumnOrder: index + 1\r\n }));\r\n postData.columnKeystierCalc = this.getColumnsToInclude(this.tierCalcGridApi);\r\n\r\n const arr: string[] = ['Customized Tier', 'Comparison Amt', 'Include in Calc Balance'];\r\n\r\n var customisedTierExist : boolean = false;\r\n var comparisonAmtExist : boolean = false;\r\n var includeInCalcBalanceExist : boolean = false;\r\n\r\n postData.columnKeystierCalc.forEach(item => \r\n {\r\n if(item.ColumnName == \"Customized Tier\")\r\n customisedTierExist = true;\r\n if(item.ColumnName == \"Comparison Amt\")\r\n comparisonAmtExist = true;\r\n if(item.ColumnName == \"Include in Calc Balance\")\r\n includeInCalcBalanceExist = true;\r\n }\r\n );\r\n if(customisedTierExist == false || comparisonAmtExist == false || includeInCalcBalanceExist == false )\r\n this.notificationService.warningpopup(\"Imported file may not run formula correctly due to missing columns ('Customized Tier', 'Comparison Amt', 'Include in Calc Balance')\")\r\n\r\n const columnKeysallocations = this.allocationsGridApi.columnApi.getColumnState();\r\n postData.columnKeysallocations = columnKeysallocations.map((colState, index) => ({\r\n ColumnName: colState.colId,\r\n ColumnOrder: index + 1\r\n }));\r\n const columnKeysjournalEntries = this.journalEntriesGridApi.columnApi.getColumnState();\r\n postData.columnKeysjournalEntries = columnKeysjournalEntries.map((colState, index) => ({\r\n ColumnName: colState.colId,\r\n ColumnOrder: index + 1\r\n }));\r\n // this.download();\r\n this.calculationService.ExportAfterRun(postData).subscribe(result => {\r\n if (result.isSuccess) this.exportService.export(result.response);\r\n else this.notificationService.errorpopup(result.errors)\r\n })\r\n }\r\n else\r\n {\r\n\r\n var columnKeysPrefRetCalc = this.agGridService.generateColumnsForExcel(this.prefRetCalcGridApi);\r\n var columnKeystierCalc = this.agGridService.generateColumnsForExcel(this.tierCalcGridApi);\r\n var columnKeysallocations = this.agGridService.generateColumnsForExcel(this.allocationsGridApi);\r\n var columnKeysjournalEntries = this.agGridService.generateColumnsForExcel(this.journalEntriesGridApi);\r\n\r\n\r\n var tierCalcExcel = this.tierCalcGridApi.api.getSheetDataForExcel({ sheetName: 'Tier Calc', columnKeys : columnKeystierCalc, processCellCallback: (params) => {\r\n const colDef = params.column.getColDef()\r\n // try to reuse valueFormatter from the colDef\r\n if (colDef.valueFormatter) {\r\n if (colDef.cellClass.toString().includes('percentFormat')) {\r\n params.value = params.value == undefined ? \"\" : ( params.value / 100);\r\n }\r\n return params.value;\r\n }\r\n if (params.value == \"true\" || params.value == true && params.value != 1) {\r\n params.value = \"Yes\"\r\n }\r\n if (params.value == \"false\") {\r\n params.value = \"\"\r\n }\r\n return params.value;\r\n }});\r\n var prefRetCalcExcel = this.prefRetCalcGridApi.api.getSheetDataForExcel({ sheetName: 'Pref Ret Calc' , columnKeys : columnKeysPrefRetCalc ,processCellCallback: (params) => {\r\n const colDef = params.column.getColDef()\r\n // try to reuse valueFormatter from the colDef\r\n if (colDef.valueFormatter) {\r\n if (colDef.cellClass.toString().includes('percentFormat')) {\r\n params.value = params.value == undefined ? \"\" : ( params.value / 100);\r\n }\r\n return params.value;\r\n }\r\n // if (colDef.cellClass.toString().includes('ExcelDate')) {\r\n // params.value = params.value == undefined ? \"\" : \"\"// this.agGridService.dateConvertorByRegion(params.value );\r\n // }\r\n if (params.value == \"true\" || params.value == true && params.value != 1) {\r\n params.value = \"Yes\"\r\n }\r\n if (params.value == \"false\") {\r\n params.value = \"\"\r\n }\r\n return params.value;\r\n }});\r\n var allocationsExcel = this.allocationsGridApi.api.getSheetDataForExcel({ sheetName: 'Allocations' , columnKeys : columnKeysallocations, processCellCallback: (params) => {\r\n const colDef = params.column.getColDef()\r\n // try to reuse valueFormatter from the colDef\r\n if (colDef.valueFormatter) {\r\n if (colDef.cellClass.toString().includes('percentFormat')) {\r\n params.value = params.value == undefined ? \"\" : ( params.value / 100);\r\n }\r\n return params.value;\r\n }\r\n if (params.value == \"true\" || params.value == true && params.value != 1) {\r\n params.value = \"Yes\"\r\n }\r\n if (params.value == \"false\") {\r\n params.value = \"\"\r\n }\r\n return params.value;\r\n }});\r\n var journalEntriesExcel = this.journalEntriesGridApi.api.getSheetDataForExcel({ sheetName: 'Journal Entries' , columnKeys : columnKeysjournalEntries, processCellCallback: (params) => {\r\n const colDef = params.column.getColDef()\r\n // try to reuse valueFormatter from the colDef\r\n if (colDef.valueFormatter) {\r\n if (colDef.cellClass.toString().includes('percentFormat')) {\r\n params.value = params.value == undefined ? \"\" : ( params.value / 100);\r\n }\r\n return params.value;\r\n }\r\n if (params.value == \"true\" || params.value == true && params.value != 1) {\r\n params.value = \"Yes\"\r\n }\r\n if (params.value == \"false\") {\r\n params.value = \"\"\r\n }\r\n return params.value;\r\n }});\r\n var spreadsheets = [];\r\n spreadsheets.push(\r\n tierCalcExcel ,prefRetCalcExcel ,allocationsExcel,journalEntriesExcel\r\n );\r\n exportMultipleSheetsAsExcel({\r\n data: spreadsheets,\r\n fileName: this.pageHeaderModel.name +'.xlsx',\r\n });\r\n }\r\n }\r\n\r\n getGraphData()\r\n {\r\n var calcGraphModel = new CalcGraphModel();\r\n calcGraphModel.selectedGrid = this.tabID;\r\n calcGraphModel.fundId = this.storageService.retrieve(this.pageHeaderModel.fundIdStorageName);\r\n calcGraphModel.calcId = this.formModel.calculation.id;\r\n if(this.tabID==\"Allocations\")\r\n {\r\n const columnNames = this.allocationsGridApi.columnApi.getAllDisplayedColumns().map(column => column.getColDef().headerComponentParams).filter(a=> a.isSelected != undefined && a.isSelected == true).map(a=>a.displayName);\r\n calcGraphModel.selectedColumnNames = columnNames.join(',');\r\n }\r\n else\r\n {\r\n const columnNames = this.tierCalcGridApi.columnApi.getAllDisplayedColumns().map(column => column.getColDef().headerComponentParams).filter(a=> a.isSelected != undefined && a.isSelected == true).map(a=>a.displayName);\r\n calcGraphModel.selectedColumnNames = columnNames.join(',');\r\n }\r\n this.calculationService.GetChartData(calcGraphModel)\r\n .subscribe((res) => {\r\n if (res.isSuccess)\r\n {\r\n calcGraphModel.graphJson = JSON.stringify(res.response);\r\n this.multi = JSON.parse(calcGraphModel.graphJson);\r\n this.xAxisLabel = this.formModel.calculation.fundName;\r\n this.yAxisLabel = 'Amt';\r\n this.single = JSON.parse(calcGraphModel.graphJson)[0].series;\r\n }\r\n });\r\n }\r\n\r\n public onShowGraph()\r\n {\r\n if(this.showChart)\r\n this.showChart = false;\r\n else\r\n this.showChart = true;\r\n if(this.showChart)\r\n this.getGraphData();\r\n }\r\n\r\n private getCalcAllocPer(calcExpeAllocPerc) : void{\r\n this.formModel.calculation.calcExpeAllocPerc= calcExpeAllocPerc;\r\n if(calcExpeAllocPerc)\r\n this.calculationService.GetCalcAllocPerByFundIdCalcID(this.formModel.calculation)\r\n .subscribe((res) => {\r\n if (res.isSuccess)\r\n this.formModel.calculation.allocationPercent = res.response;\r\n });\r\n }\r\n\r\n private changedLockStatus(isCalcLocked){\r\n this.formModel.calculation.isCalcLocked = isCalcLocked;\r\n this.pageHeaderModel.isCalcLocked = isCalcLocked;\r\n }\r\n\r\n private dataNotChanged() : boolean\r\n {\r\n var data1 = JSON.stringify(this.formModel.calculation).replace(\"'\", \"\").replace(/\"/g, '');\r\n var data2 = JSON.stringify(this.loadedFormModel.calculation).replace(\"'\", \"\").replace(/\"/g, '');\r\n var test = data1 === data2;\r\n return (\r\n data1 === data2\r\n );\r\n }\r\n\r\n onChangeCalculationLevel(calculationLevelId)\r\n {\r\n this.formModel.calculation.calculationLevelId = calculationLevelId;\r\n switch(this.formModel.calculation.calculationLevelId)\r\n {\r\n case \"1\":\r\n this.formModel.calculation.investmentId = null;\r\n this.formModel.calculation.positionId = null;\r\n this.formModel.calculation.calcDataSet = '';\r\n break;\r\n case \"2\":\r\n this.formModel.calculation.investmentId = null;\r\n this.formModel.calculation.positionId = null;\r\n break;\r\n case \"3\":\r\n this.formModel.calculation.calcDataSet = '';\r\n break;\r\n }\r\n }\r\n\r\n\r\n\r\n onChangeProceeds(proceeds : string)\r\n {\r\n // alert(proceeds)\r\n // var numberData = proceeds.replace(\",\", \"\");\r\n // alert(parseFloat(numberData).toFixed(2))\r\n var proceedsValue = this.agGridService.currencyFormatter(proceeds.split(',').join(''),\"\",2);\r\n //alert(proceedsValue)\r\n this.formModel.calculation.proceeds = proceedsValue.toString();\r\n }\r\n\r\n // onFocusProceeds(proceeds : any)\r\n // {\r\n // this.formModel.calculation.proceeds = proceeds.split(',').join('');\r\n // }\r\n\r\n \r\n\r\n //#endregion\r\n}\r\n//#endregion Component End","import { CellClassParams } from \"ag-grid-community\";\r\nimport { AppInjector } from \"src/app/app.module\";\r\nimport { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridI,colDefsAllocation,colDefsAllocationsSummary, colDefsJournalEntries, colDefsPrefRetCalc, colDefsPrefRetCalcSummary, colDefsTierCalc, colDefsTierCalcSummary } from \"src/app/shared/component/ag-grid/ag-grid.interface\";\r\nimport { DropdownModel } from \"src/app/shared/model/common.model\";\r\nimport { StorageService } from \"src/app/shared/services/storage.service\";\r\n\r\n \r\nexport class CalculationModel\r\n{\r\n calculation : Calculation = new Calculation();\r\n prefRetCalcs : PrefRetCalc[]=[];\r\n prefRetCalcSummary : PrefRetCalc[]=[];\r\n tierCalcs : TierCalc[]=[];\r\n tierCalcSummary : TierCalc[]=[];\r\n allocations : TierCalc[]=[];\r\n allocationsSummary : TierCalc[]=[];\r\n journalEntries : JournalEntries[]=[];\r\n\r\n calcTypeDropdown : DropdownModel[] = [];\r\n statusDropdown : DropdownModel[] = [];\r\n calculationStateDropdown : DropdownModel[] = [];\r\n\r\n \r\n \r\n investmentDropdown : DropdownModel[] = [];\r\n positionDropdown : DropdownModel[] = [];\r\n investorGroupDropdown: DropdownModel[] = [];\r\n isDraftCalc: boolean = false;\r\n isExportedExcel: boolean = false;\r\n includeFormulasInExport: boolean = false;\r\n fundId: number; \r\n calcId: number;\r\n importUserId : string ;\r\n columnKeysPrefRetCalc : ColumnNamesWithOrder[]\r\n columnKeystierCalc : ColumnNamesWithOrder[]\r\n columnKeysallocations : ColumnNamesWithOrder[]\r\n columnKeysjournalEntries : ColumnNamesWithOrder[]\r\n\r\n \r\n}\r\n\r\nexport class ColumnNamesWithOrder\r\n{\r\n ColumnName: string;\r\n ColumnOrder: number;\r\n}\r\n\r\n\r\nexport class Calculation {\r\n\r\n\r\n id : number;\r\n calcName: string;\r\n PLReallocSubActId: string;\r\n allocationPercent: string;\r\n calcDesc: string;\r\n calcDataSet: string;\r\n calcDate: Date;\r\n runDate: Date;\r\n distIncomeNum: string;\r\n operation: string;\r\n positionId: string;\r\n calcStateId: string;\r\n\r\n fundName : string;\r\n\r\n //ForeignKey Changes\r\n fundId: string;\r\n fundInvestmentId: string;\r\n\r\n investmentId: string;\r\n \r\n calcRuleId: string;\r\n calcTypeId: string;\r\n calculationLevelId: string;\r\n calcStatusId: string;\r\n \r\n investmentJEId: string;\r\n positionJEId: string;\r\n incomeSubActId: string;\r\n incomeSubActOffsetId: string;\r\n distributionSubActId: string;\r\n distributionSubActOffsetId: string;\r\n unrealSubActId: string;\r\n unrealSubActOffsetId: string;\r\n calcExpeAllocPerc: string;\r\n isCalcLocked: boolean;\r\n calcDateString: string;\r\n\r\n scenarioMode: boolean = false;\r\n isScenarioModeApplied: boolean = false;\r\n isHypothetical: boolean;\r\n\r\n lockedFrom: string;\r\n lockedTo: string;\r\n reference: string;\r\n statusId : number;\r\n proceeds? : string;\r\n investorGroupId : string;\r\n runInLoop? : boolean;\r\n}\r\n\r\nexport class ScenarioMode \r\n{\r\n id:number;\r\n tierId:number;\r\n tierName:string;\r\n percentage:number;\r\n}\r\nexport class ChartDropdownModel {\r\n name: string;\r\n label: string;\r\n}\r\nexport class Allocations {\r\n fund: string;\r\n calculationName: string;\r\n investor: string;\r\n investorGroup: string;\r\n calcType: string;\r\n\r\n amt: number;\r\n allocPercent: number;\r\n allocAmt: number;\r\n carryPromoteAmt : number;\r\n maxLTDCarry: number;\r\n catchUp: number;\r\n ptrTrans: number;\r\n recCarry : boolean;\r\n finalRow : boolean;\r\n}\r\nexport class AllocationsSummary {\r\n fund: string;\r\n calculationName: string;\r\n amt: number;\r\n allocAmt: number;\r\n calcType: string;\r\n maxLTDCarry: number;\r\n}\r\nexport class JournalEntries {\r\n calculationName: string;\r\n calcDataSet: string;\r\n category: string;\r\n fund: string;\r\n transactionSet: string;\r\n investment: string;\r\n position: string;\r\n investorGroup: string;\r\n investor: string;\r\n subAct: string;\r\n jeid: string;\r\n transID: string;\r\n jEComments: string;\r\n date: Date;\r\n idDebit: number;\r\n amount: number;\r\n iso: string;\r\n}\r\nexport class PrefRetCalc {\r\n fund: string;\r\n calculationName: string;\r\n calcDate: string;\r\n prRuleName: string;\r\n calculationMethod: string;\r\n investor: string;\r\n investorGroup: string;\r\n tier: string;\r\n prRate: number;\r\n prefRetAmt: number;\r\n runDate: string;\r\n ptrTrans: boolean;\r\n termValueRow: boolean;\r\n cashFlowAmt: number;\r\n cashFlowDate: string;\r\n coumpoundInterestPeriod: number;\r\n daysCapital: number;\r\n frequency: number;\r\n daysCalc: number;\r\n}\r\nexport class PrefRetCalcSummary {\r\n fund: string;\r\n calculationName: string;\r\n calcDate: Date;\r\n prRuleName: string;\r\n calculationMethod: string;\r\n tier: string;\r\n prRate: number;\r\n prefRetAmt: number;\r\n runDate: Date;\r\n investor: string;\r\n investorGroup: string;\r\n cashFlowAmt: number;\r\n cashFlowDate: Date;\r\n coumpoundInterestPeriod: number;\r\n daysCapital: number;\r\n frequency: number;\r\n daysCalc: number;\r\n ptrTrans: boolean;\r\n termValueRow: boolean;\r\n}\r\nexport class TierCalc {\r\n Fund: string;\r\n calculationName: string;\r\n investor: string;\r\n investorGroup: string;\r\n investment: string;\r\n position: string;\r\n tier: string;\r\n tierOrder: number;\r\n comparisonTier: string;\r\n tierAmt: number;\r\n comparisionAmt: number;\r\n allocPercent: number;\r\n tierCalc: number;\r\n balance: number;\r\n calculationRule: string;\r\n prefRetTier: boolean;\r\n terminationTier: boolean;\r\n calculationType: string;\r\n ptrTrans: boolean;\r\n applyTierCarryPer: boolean;\r\n tierCarryPer: number;\r\n isSumRow : boolean;\r\n hurdleRate : number;\r\n IncludeinBalance : boolean;\r\n systemTier : boolean;\r\n\r\n}\r\nexport class TierCalcSummary {\r\n fund: string;\r\n calculationName: string;\r\n investment: string;\r\n tier: string;\r\n tierOrder: number;\r\n comparisonTier: string;\r\n tierAmt: number;\r\n comparisionAmt: number;\r\n tierCalc: number;\r\n balance: number;\r\n}\r\nexport class SearchFilterModel{\r\n calcType: number;\r\n status: number;\r\n state: number;\r\n fundId: number;\r\n calcId: number;\r\n statusFilterName: string =\"\";\r\n stateFilterName: string =\"\";\r\n calcTypeFilterName: string =\"\";\r\n}\r\n\r\nexport class CalcGraphModel{\r\n selectedGrid: string =\"\";\r\n selectedColumnNames: string =\"\";\r\n graphJson: string =\"\";\r\n fundId: string;\r\n calcId: number;\r\n}\r\n\r\n\r\n\r\n//#region Grid Model Declaration\r\n // for Investor Col Defination\r\n export const agGridDataModelPrefRetCalc: AgGridI = {\r\n colDefs: colDefsPrefRetCalc,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.CALCULATIONS_PREF_RET_CALC_GRID,\r\n controllerName: StorageName.CALCULATIONS_PREF_RET_CALC_CONTROLLER,\r\n storageName: StorageName.CALCULATIONS_PREF_RET_CALC_COLUMNCHANGED,\r\n paginationStore: StorageName.CALCULATIONS_PREF_RET_CALC_PAGINATION,\r\n initialRows: StorageName.CALCULATIONS_PREF_RET_CALC_INITIALROWS,\r\n filterStorageName: StorageName.CALCULATIONS_PREF_RET_CALC_FILTER,\r\n //showDeleteStatusStorageName: StorageName.CALCULATIONS_PREF_RET_CALC_SHOW_DELETED,\r\n tabIndex: 0,\r\n showDeleted : false\r\n };\r\n // for Investment Col Defination\r\n\r\n \r\n export const agGridDataModelPrefRetCalcSummary: AgGridI = {\r\n colDefs: colDefsPrefRetCalcSummary,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.CALCULATIONS_PREF_RET_CALC_SUMMARY_GRID,\r\n controllerName: StorageName.CALCULATIONS_PREF_RET_CALC_SUMMARY_CONTROLLER,\r\n storageName: StorageName.CALCULATIONS_PREF_RET_CALC_SUMMARY_COLUMNCHANGED,\r\n paginationStore: StorageName.CALCULATIONS_PREF_RET_CALC_SUMMARY_PAGINATION,\r\n initialRows: StorageName.CALCULATIONS_PREF_RET_CALC_SUMMARY_INITIALROWS,\r\n filterStorageName: StorageName.CALCULATIONS_PREF_RET_CALC_SUMMARY_FILTER,\r\n //showDeleteStatusStorageName: StorageName.CALCULATIONS_PREF_RET_CALC_SHOW_DELETED,\r\n tabIndex: 0,\r\n showDeleted : false\r\n };\r\n /* End Of Pref Summary */\r\n\r\n /* Start of Tier Calculation */\r\n\r\n export const agGridDataModelTierCalc: AgGridI = {\r\n colDefs: colDefsTierCalc,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.CALCULATIONS_TIER_CALC_GRID,\r\n controllerName: StorageName.CALCULATIONS_TIER_CALC_CONTROLLER,\r\n storageName: StorageName.CALCULATIONS_TIER_CALC_COLUMNCHANGED,\r\n paginationStore: StorageName.CALCULATIONS_TIER_CALC_PAGINATION,\r\n initialRows: StorageName.CALCULATIONS_TIER_CALC_INITIALROWS,\r\n filterStorageName: StorageName.CALCULATIONS_TIER_CALC_FILTER,\r\n //showDeleteStatusStorageName: StorageName.CALCULATIONS_PREF_RET_CALC_SHOW_DELETED,\r\n tabIndex: 0,\r\n showDeleted : false,\r\n columnTypes: {\r\n editableColumn: {\r\n cellStyle: (params: CellClassParams) => {\r\n if(params.colDef.field == \"tier\")\r\n {\r\n const storageService = AppInjector.get(StorageService);\r\n var systemTiers = storageService.retrieve(StorageName.SYSTEM_TIERS)// \"Pref Ret Calculation,Proceeds Amt,Remaining Balance from Rrior Tier, Tier Calc from Prior Tier / Participant %, Tier Calc from Prior Tier,Remaining Balance from Prior Tier\"\r\n if(params.data.tier != undefined && params.data.tier.indexOf(\"Pref Ret Calculation\") != -1)\r\n params.data.tier = \"Pref Ret Calculation\"\r\n if (systemTiers!= undefined && ( (systemTiers.indexOf(params.data.tier) != -1))) \r\n return { color: 'blue' };\r\n else\r\n return { color: 'black' };\r\n }\r\n if(params.colDef.field == \"comparisonTier\")\r\n {\r\n const storageService = AppInjector.get(StorageService);\r\n var systemTiers = storageService.retrieve(StorageName.SYSTEM_TIERS)// \"Pref Ret Calculation,Proceeds Amt,Remaining Balance from Rrior Tier, Tier Calc from Prior Tier / Participant %, Tier Calc from Prior Tier,Remaining Balance from Prior Tier\"\r\n if(params.data.comparisonTier != undefined && params.data.comparisonTier.indexOf(\"Pref Ret Calculation\") != -1)\r\n params.data.comparisonTier = \"Pref Ret Calculation\"\r\n if (systemTiers!= undefined && ( (systemTiers.indexOf(params.data.comparisonTier) != -1))) \r\n return { color: 'blue' };\r\n else\r\n return { color: 'black' };\r\n }\r\n }\r\n }\r\n },\r\n };\r\n /* End of Tier Calculation */\r\n\r\n /* Start of Tier Calculation Summary*/\r\n export const agGridDataModelTierCalcSummary: AgGridI = {\r\n colDefs: colDefsTierCalcSummary,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.CALCULATIONS_TIER_CALC_SUMMARY_GRID,\r\n controllerName: StorageName.CALCULATIONS_TIER_CALC_SUMMARY_CONTROLLER,\r\n storageName: StorageName.CALCULATIONS_TIER_CALC_SUMMARY_COLUMNCHANGED,\r\n paginationStore: StorageName.CALCULATIONS_TIER_CALC_SUMMARY_PAGINATION,\r\n initialRows: StorageName.CALCULATIONS_TIER_CALC_SUMMARY_INITIALROWS,\r\n filterStorageName: StorageName.CALCULATIONS_TIER_CALC_SUMMARY_FILTER,\r\n //showDeleteStatusStorageName: StorageName.CALCULATIONS_PREF_RET_CALC_SHOW_DELETED,\r\n tabIndex: 0,\r\n showDeleted : false\r\n };\r\n /* End of Tier Calculation Summary */\r\n\r\n /* Start of App Allocation */\r\n\r\n export const agGridDataModelAllocation: AgGridI = {\r\n colDefs: colDefsAllocation,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.CALCULATIONS_ALLOCATIONS_GRID,\r\n controllerName: StorageName.CALCULATIONS_ALLOCATIONS_CONTROLLER,\r\n storageName: StorageName.CALCULATIONS_ALLOCATIONS_COLUMNCHANGED,\r\n paginationStore: StorageName.CALCULATIONS_ALLOCATIONS_PAGINATION,\r\n initialRows: StorageName.CALCULATIONS_ALLOCATIONS_INITIALROWS,\r\n filterStorageName: StorageName.CALCULATIONS_ALLOCATIONS_FILTER,\r\n //showDeleteStatusStorageName: StorageName.CALCULATIONS_PREF_RET_CALC_SHOW_DELETED,\r\n tabIndex: 0,\r\n showDeleted : false,\r\n };\r\n /* End of App Allocation*/\r\n\r\n /* Start of App Allocation Summary */\r\n\r\n export const agGridDataModelAllocationSummary: AgGridI = {\r\n colDefs: colDefsAllocationsSummary,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.CALCULATIONS_ALLOCATIONS_SUMMARY_GRID,\r\n controllerName: StorageName.CALCULATIONS_ALLOCATIONS_SUMMARY_CONTROLLER,\r\n storageName: StorageName.CALCULATIONS_ALLOCATIONS_SUMMARY_COLUMNCHANGED,\r\n paginationStore: StorageName.CALCULATIONS_ALLOCATIONS_SUMMARY_PAGINATION,\r\n initialRows: StorageName.CALCULATIONS_ALLOCATIONS_SUMMARY_INITIALROWS,\r\n filterStorageName: StorageName.CALCULATIONS_ALLOCATIONS_SUMMARY_FILTER,\r\n tabIndex: 5,\r\n };\r\n /* End of App Allocation Summary */\r\n\r\n /* Start of App Journal Entries*/\r\n\r\n\r\n export const agGridDataModelJournalEntries: AgGridI = {\r\n colDefs: colDefsJournalEntries,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.CALCULATIONS_JOURNAL_ENTRIES_GRID,\r\n controllerName: StorageName.CALCULATIONS_JOURNAL_ENTRIES_CONTROLLER,\r\n storageName: StorageName.CALCULATIONS_JOURNAL_ENTRIES_COLUMNCHANGED,\r\n paginationStore: StorageName.CALCULATIONS_JOURNAL_ENTRIES_PAGINATION,\r\n initialRows: StorageName.CALCULATIONS_JOURNAL_ENTRIES_INITIALROWS,\r\n filterStorageName: StorageName.CALCULATIONS_JOURNAL_ENTRIES_FILTER,\r\n tabIndex: 6,\r\n };\r\n /* End of App Journal Entries*/\r\n \r\n \r\n//#endregion Grid Model Declaration\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable, tap } from \"rxjs\";\r\nimport { Result } from \"src/app/shared/model/response.model\";\r\nimport { DataService } from \"src/app/shared/services/data.service\";\r\nimport { CalcGraphModel, Calculation, CalculationModel, ScenarioMode } from \"./calculation.model\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { CommonTabService } from \"src/app/shared/services/common-tab.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CalculationService {\r\n inCalculation = new BehaviorSubject(false);\r\n constructor(private service: DataService,private http: HttpClient,private commonTabService: CommonTabService) {}\r\n GetCalculationLists(fundId): Observable {\r\n let url = \"/Calculation/getAllCalcList/\" + fundId;\r\n return this.service.get(url).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n getCalcListFromSearch(data: CalculationModel): Observable {\r\n let url = \"/Dropdown/getCalcListFromSearch\";\r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n GetJEPositions(data: CalculationModel): Observable {\r\n let url = \"/Calculation/getJEPositions\";\r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n \r\n GetScenarioMode(): Observable {\r\n let url = \"/ScenarioMode/GetAll\";\r\n return this.service.get(url).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n DeleteScenarioMode(id:number): Observable {\r\n let url = \"/ScenarioMode/Delete/\" + id;\r\n return this.service.get(url).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n AddScenarioMode(data:ScenarioMode):Observable {\r\n let url = \"/ScenarioMode/post\";\r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n \r\n UpdateScenarioMode(id:number):Observable {\r\n let url = \"/ScenarioMode/post\";\r\n let myJson = JSON.stringify(id);\r\n return this.service.post(url, id).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n RunModal(data:CalculationModel):Observable {\r\n let url = \"/Calculation/Run\";\r\n let userid = this.commonTabService.getUserid();\r\n data.importUserId = userid;\r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n ExportAfterRun(data:CalculationModel):Observable {\r\n let url = \"/Calculation/ExportAfterRun\";\r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n\r\n postData\r\n\r\n DoPrefRetCalc(data:Calculation):Observable {\r\n let url = \"/Calculation/DoPrefRetCalc\";\r\n \r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n ProcessCalculation(data:Calculation):Observable {\r\n let url = \"/Calculation/ProcessCalculation\";\r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n CreateCalculationJE(data:Calculation):Observable {\r\n let url = \"/Calculation/CreateCalculationJE\";\r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n GetCalcAllocPerByFundIdCalcID(data:Calculation):Observable {\r\n let url = \"/Calculation/GetCalcAllocPerByFundIdCalcID\";\r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n postCalLockedUnlockedData(data:Calculation):Observable {\r\n let url = \"/Calculation/PostCalculationLockEntry\";\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n SaveRecords(data:CalculationModel):Observable {\r\n let url = \"/Calculation/AddUpdate\";\r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n getInvestmentDropDownDataByFundID(fundId,InvestmentId){\r\n InvestmentId = InvestmentId == undefined ? 0 : InvestmentId;\r\n let url = \"/Calculation/GetAllInvestment_ByFundID\" + `?fundId=${fundId}` + `&InvestmentId=${InvestmentId}`;\r\n return this.service.get(url).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n getPositionDropDownDataByFundID(fundId,InvestmentId,PositionId){\r\n InvestmentId = InvestmentId == undefined ? 0 : InvestmentId;\r\n PositionId = PositionId == undefined ? 0 : PositionId;\r\n let url = \"/Calculation/GetAllPosition_By_FundID_InvestmentID\" + `?FundID=${fundId}` + `&InvestmentID=${InvestmentId}` + `&PositionID=${PositionId}`;\r\n return this.service.get(url).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n getInvestorGroupByFundId(fundId){\r\n let url = \"/Calculation/getInvestorGroupByFundId\" + `?FundID=${fundId}`;\r\n return this.service.get(url).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n \r\n\r\n getCalcByFundIdCalcId(fundId,calcId,isDraftCalc){\r\n fundId = fundId == undefined ? 0 : fundId;\r\n calcId = calcId == undefined ? 0 : calcId;\r\n isDraftCalc = isDraftCalc == undefined ? 0 : isDraftCalc;\r\n let url = \"/Calculation/GetByFundIdCalcId\" + \"?FundID=\"+fundId+\"&CalcId=\"+calcId+\"&IsDraftCalc=\"+isDraftCalc;\r\n return this.service.get(url).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n\r\n GetChartData(data:CalcGraphModel):Observable {\r\n let url = \"/Calculation/GetChartData\";\r\n let myJson = JSON.stringify(data);\r\n return this.service.post(url, data).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n );\r\n }\r\n\r\n download(url: string): Observable {\r\n return this.http.get(url, {\r\n responseType: 'blob'\r\n })\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { GlobalService } from 'src/app/shared/services/global.service';\r\nimport { NotificationService } from 'src/app/shared/services/notification.service';\r\nimport { CalculationModel, ChartDropdownModel } from '../calculation.model';\r\nimport { CalculationService } from '../calculation.service';\r\n@Component({\r\n selector: 'app-chart-modal',\r\n templateUrl: './chart-modal.component.html',\r\n styleUrls: ['./chart-modal.component.scss']\r\n})\r\nexport class ChartModalComponent implements OnInit {\r\n calculationData:CalculationModel;\r\n chartType : string;\r\n tabsId: number;\r\n chartCategories: ChartDropdownModel[] = [];\r\n chartCategoryValues: ChartDropdownModel[] = [];\r\n public single: any[];\r\n public multi: any[];\r\n public showXAxis = true;\r\n public showYAxis = true;\r\n public gradient = false;\r\n public showLegend = true;\r\n public showXAxisLabel = true;\r\n public xAxisLabel = 'Country';\r\n public showYAxisLabel = true;\r\n public yAxisLabel = 'Population';\r\n public colorScheme = {\r\n domain: ['#2F3E9E', '#D22E2E', '#378D3B', '#0096A6', '#F47B00', '#606060']\r\n }; \r\n constructor( \r\n public calculationService:CalculationService,\r\n public notificationService: NotificationService,\r\n public globalService: GlobalService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.multi = JSON.parse(this.data.data);\r\n this.xAxisLabel = JSON.parse(this.data.data)[0].name;\r\n this.yAxisLabel = 'Amt';\r\n this.single = JSON.parse(this.data.data)[0].series;\r\n }\r\n\r\n swapChartType(chartType) {\r\n this.chartType = chartType;\r\n // BindChart();\r\n };\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DropdownModel } from 'src/app/shared/model/common.model';\r\nimport { StorageService } from 'src/app/shared/services/storage.service';\r\nimport { DropdownListModel } from '../../fund-information/fund-information.model';\r\nimport { CalculationModel } from '../calculation.model';\r\nimport { CalculationService } from '../calculation.service';\r\n\r\n@Component({\r\n selector: 'app-journal-modal',\r\n templateUrl: './journal-modal.component.html',\r\n styleUrls: ['./journal-modal.component.scss']\r\n})\r\nexport class JournalModalComponent implements OnInit {\r\n dropdownListModel = new DropdownListModel();\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data:any,\r\n private dialogRef: MatDialogRef,\r\n public calculationService:CalculationService,\r\n public storageService: StorageService,\r\n ) { }\r\n formModel: CalculationModel;\r\n ngOnInit(): void {\r\n this.formModel = this.data.calculation;\r\n this.dropdownListModel = this.data.dropdownModel;\r\n this.formModel.calculation.investmentJEId = this.formModel.calculation.investmentJEId.toString();\r\n }\r\n investmentDropdownChange(investmentId : string){\r\n this.formModel.calculation.investmentJEId = investmentId;\r\n this.formModel.calculation.positionJEId = (this.formModel.calculation.positionJEId == undefined || this.formModel.calculation.positionJEId == null) ? \"0\" : this.formModel.calculation.positionJEId;\r\n this.calculationService.getPositionDropDownDataByFundID(this.formModel.calculation.fundId,this.formModel.calculation.investmentJEId , this.formModel.calculation.positionJEId )\r\n .subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.dropdownListModel.positionDropdown = res.response;\r\n this.formModel.calculation.positionJEId = this.formModel.calculation.positionJEId.toString();\r\n }\r\n });\r\n }\r\n\r\n postionJeRecords(positions: DropdownModel[]){\r\n this.dialogRef.close({ data: this.formModel });\r\n }\r\n onOk(){\r\n this.dialogRef.close({ data: this.formModel })\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nconst routes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class LockUnlockRecordsUpdateRoutingModule { }\r\n","import { Subscription } from 'rxjs';\r\nimport { Component, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport { FormBuilder, FormControl } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { Inject } from \"@angular/core\";\r\nimport { NotificationService } from \"src/app/shared/services/notification.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { CalculationService } from '../calculation.service';\r\nimport { CalculationModel } from '../calculation.model';\r\nimport { DropdownListModel } from '../../fund-information/fund-information.model';\r\nimport { StorageService } from 'src/app/shared/services/storage.service';\r\n\r\n@Component({\r\n selector: \"app-lock-unlock-records-update\",\r\n templateUrl: \"./lock-unlock-records-update.component.html\",\r\n styleUrls: [\"./lock-unlock-records-update.component.scss\"],\r\n})\r\nexport class LockUnlockRecordsUpdateComponent implements OnInit, OnDestroy {\r\n dropdownListModel = new DropdownListModel();\r\n\r\n private _postCalLockedUnlockedDataSubscription!: Subscription;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public calculationService: CalculationService,\r\n public toasterService: ToastrService,\r\n public NotificationService: NotificationService,\r\n public storageService: StorageService\r\n\r\n ) { }\r\n\r\n formModel: CalculationModel;\r\n fundList: any[] = [];\r\n ngOnInit() {\r\n this.formModel = this.data.calculation;\r\n // this.formModel.calculation.fundId = this.formModel.calculation.fundId.toString();\r\n this.dropdownListModel = this.data.dropdownModel;\r\n }\r\n\r\n updateLockStatus() {\r\n this._postCalLockedUnlockedDataSubscription = this.calculationService.postCalLockedUnlockedData(this.formModel.calculation).subscribe((res) => {\r\n if (res.isSuccess)\r\n this.toasterService.success(res.message, \"\", {\r\n timeOut: 1000\r\n });\r\n else \r\n this.NotificationService.warningpopup(res.message);\r\n this.dialogRef.close({ data: res.response });\r\n });\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._postCalLockedUnlockedDataSubscription) {\r\n this._postCalLockedUnlockedDataSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { SharedModule } from 'src/app/shared/shared.module';\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { LockUnlockRecordsUpdateRoutingModule } from './lock-unlock-records-update-routing.module';\r\nimport { LockUnlockRecordsUpdateComponent } from './lock-unlock-records-update.component';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n LockUnlockRecordsUpdateComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule, \r\n SharedModule,\r\n MatFormFieldModule,\r\n LockUnlockRecordsUpdateRoutingModule\r\n ]\r\n})\r\nexport class LockUnlockRecordsUpdateModule { }\r\n","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { ExportService } from 'src/app/shared/services/export.service';\r\nimport { GlobalService } from 'src/app/shared/services/global.service';\r\nimport { NotificationService } from 'src/app/shared/services/notification.service';\r\nimport { DropdownListModel } from '../../fund-information/fund-information.model';\r\nimport { CalculationModel } from '../calculation.model';\r\nimport { CalculationService } from '../calculation.service';\r\nimport { StorageService } from 'src/app/shared/services/storage.service';\r\n\r\n@Component({\r\n selector: 'app-run-model',\r\n templateUrl: './run-model.component.html',\r\n styleUrls: ['./run-model.component.scss']\r\n})\r\nexport class RunModelComponent implements OnInit, OnDestroy {\r\n formType : string = \"Run\";\r\n exportToExcel;\r\n statusDropdown = []\r\n statusId;\r\n fromDashboard : boolean = false;\r\n formModel: CalculationModel;\r\n fundName: string;\r\n activeRadioBtn: string;\r\n isLoading: boolean;\r\n dropdownListModel = new DropdownListModel();\r\n private _RunModalSubscription!: Subscription;\r\n private _DoPrefRetCalcSubscription!: Subscription;\r\n private _ProcessCalculationSubscription!: Subscription;\r\n private _CreateCalculationJESubscription!: Subscription;\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public calculationService: CalculationService,\r\n public notificationService: NotificationService,\r\n public globalService: GlobalService,\r\n public toasterService: ToastrService,\r\n public exportService : ExportService,\r\n public storageService : StorageService,\r\n public dialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.fromDashboard = this.data.fromDashboard == undefined ? false : this.data.fromDashboard ;\r\n this.formModel = this.data.calculation == undefined ? new CalculationModel() : this.data.calculation;\r\n var retrive = this.storageService.retrieve(\"includeFormulasInExport\");\r\n this.formModel.includeFormulasInExport=retrive;\r\n this.formType = this.data.formType == undefined ? \"Run\" : this.data.formType;\r\n if(this.formModel.calculation.id == undefined)\r\n this.formModel.calculation.id = 0;\r\n if(this.formModel.calculation.fundId == undefined)\r\n this.formModel.calculation.fundId = \"0\";\r\n if(this.formModel.calculation.statusId == undefined)\r\n this.formModel.calculation.statusId = 2;\r\n\r\n this.dropdownListModel = this.data.dropdownModel;\r\n }\r\n\r\n onIncludeFormulaChanged(inputFormule)\r\n {\r\n this.formModel.includeFormulasInExport=inputFormule;\r\n this.storageService.store(\"includeFormulasInExport\",inputFormule);\r\n }\r\n\r\n onRun() {\r\n this.isLoading = true;\r\n \r\n this._RunModalSubscription = this.calculationService.RunModal(this.formModel).subscribe(result => {\r\n if (result.isSuccess) {\r\n this.toasterService.success(result.message, \"\", {\r\n timeOut: 2000\r\n });\r\n this.dialogRef.close({ data: this.formModel });\r\n } else this.notificationService.errorpopup(result.errors)\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n onView() {\r\n this.dialogRef.close({ data: this.formModel });\r\n }\r\n radioChange(event) {\r\n console.log('the event is: ', event);\r\n this.activeRadioBtn = event.value;\r\n }\r\n\r\n runRadio() {\r\n this.isLoading = true;\r\n switch(this.activeRadioBtn)\r\n {\r\n case 'Preferred Return Calculation':\r\n this._DoPrefRetCalcSubscription = this.calculationService.DoPrefRetCalc(this.formModel.calculation).subscribe(result => {\r\n if (result.isSuccess) {\r\n this.toasterService.success(result.message, \"\", {\r\n timeOut: 2000\r\n });\r\n this.dialogRef.close({ data: this.formModel });\r\n } else this.notificationService.errorpopup('An Error Occurred')\r\n this.isLoading = false;\r\n })\r\n break;\r\n case 'Process Calculation':\r\n this._ProcessCalculationSubscription = this.calculationService.ProcessCalculation(this.formModel.calculation).subscribe(result => {\r\n if (result.isSuccess) {\r\n this.toasterService.success(result.message, \"\", {\r\n timeOut: 2000\r\n });\r\n this.dialogRef.close({ data: this.formModel });\r\n } else this.notificationService.errorpopup('An Error Occurred')\r\n this.isLoading = false;\r\n })\r\n break;\r\n case \"Create Calculation JE's\":\r\n this._CreateCalculationJESubscription = this.calculationService.CreateCalculationJE(this.formModel.calculation).subscribe(result => {\r\n if (result.isSuccess) {\r\n this.toasterService.success(result.message, \"\", {\r\n timeOut: 2000\r\n });\r\n this.dialogRef.close({ data: this.formModel });\r\n } else this.notificationService.errorpopup('An Error Occurred')\r\n this.isLoading = false;\r\n })\r\n break;\r\n }\r\n }\r\n\r\n getCalcFilterDropdown(fundId){\r\n this.formModel.calculation.fundId=fundId;\r\n if(this.fromDashboard == true){\r\n this.calculationService.getCalcListFromSearch(this.formModel ).subscribe((res) => {\r\n if (res.isSuccess) \r\n this.dropdownListModel.calculationDropdown = res.response;\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._RunModalSubscription) {\r\n this._RunModalSubscription.unsubscribe();\r\n }\r\n if (this._DoPrefRetCalcSubscription) {\r\n this._DoPrefRetCalcSubscription.unsubscribe();\r\n }\r\n if (this._ProcessCalculationSubscription) {\r\n this._ProcessCalculationSubscription.unsubscribe();\r\n }\r\n if (this._CreateCalculationJESubscription) {\r\n this._CreateCalculationJESubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { DropdownModel } from \"src/app/shared/model/common.model\";\r\nimport { NotificationService } from \"src/app/shared/services/notification.service\";\r\nimport { ScenarioMode } from \"../calculation.model\";\r\nimport { CalculationService } from \"../calculation.service\";\r\n\r\n@Component({\r\n selector: \"app-scenario-mode-modal\",\r\n templateUrl: \"./scenario-mode-modal.component.html\",\r\n styleUrls: [\"./scenario-mode-modal.component.scss\"],\r\n})\r\nexport class ScenarioModeModalComponent implements OnInit {\r\n tierId:number;\r\n percent:any;\r\n realdata:any;\r\n tierName:string;\r\n isUpdate = false;\r\n arrayData = [];\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public toasterService:ToastrService,\r\n public calculationService: CalculationService,\r\n public notificationService: NotificationService\r\n ) {}\r\n\r\n tierDropdown:DropdownModel[]\r\n scenarioData = new ScenarioMode();\r\n ngOnInit(): void {\r\n console.log(\"the data is: \", this.data);\r\n this.tierDropdown = this.data.tierDropdown;\r\n this.getScenario()\r\n }\r\n getScenario(){\r\n this.calculationService.GetScenarioMode().subscribe(result =>{\r\n console.log('the result is: ', result);\r\n this.arrayData = result.response\r\n })\r\n }\r\n onOk() {}\r\n\r\n onAdd() {\r\n for(let i = 0; i < this.tierDropdown.length; i++){\r\n if(this.tierDropdown[i]?.id == this.tierId?.toString()){\r\n this.tierName = this.tierDropdown[i].name\r\n }\r\n }\r\n \r\n if(!this.tierName) { \r\n this.notificationService.errorpopup('Please select Tier');\r\n return;\r\n }\r\n if(!this.realdata) { \r\n this.notificationService.errorpopup('Please enter Percent');\r\n return;\r\n }\r\n if (this.isUpdate) {\r\n this.isUpdate = false;\r\n this.scenarioData.tierName = this.tierName;\r\n this.scenarioData.percentage = parseFloat(this.realdata);\r\n this.scenarioData.tierId = this.tierId;\r\n this.calculationService.AddScenarioMode(this.scenarioData).subscribe(result =>{\r\n if(result.isSuccess){\r\n this.toasterService.success(\"Recorde Updated Successfully.\",\"\", {\r\n timeOut: 1000\r\n });\r\n // this.notificationService.sucesspopup(\"Recorde Updated Successfully.\")\r\n this.arrayData = result.response\r\n }else{\r\n this.notificationService.errorpopup('An Error Occurred')\r\n }\r\n })\r\n this.onClear()\r\n console.log('the update is: :', this.isUpdate);\r\n this.scenarioData = new ScenarioMode();\r\n } else {\r\n this.scenarioData.tierId=this.tierId;\r\n this.scenarioData.percentage = parseFloat(this.realdata);\r\n this.scenarioData.tierName = this.tierName;\r\n this.calculationService.AddScenarioMode(this.scenarioData).subscribe(event=>{\r\n if(event.isSuccess){\r\n this.toasterService.success(\"Recorde Updated Successfully.\",\"\", {\r\n timeOut: 1000\r\n });\r\n // this.notificationService.sucesspopup(\"Recorde Updated Successfully.\")\r\n }else{\r\n this.notificationService.errorpopup('An Error Occurred')\r\n }\r\n this.arrayData = event.response;\r\n this.onClear()\r\n })\r\n\r\n }\r\n }\r\n\r\n loadUpdate(item) {\r\n this.isUpdate = true;\r\n this.scenarioData.id = item.id\r\n this.tierId = item.tierId.toString();\r\n //this.percent = item.percentage;\r\n // this.percent = parseFloat(item.percentage).toFixed(2) + '%';\r\n this.percent =item.percentage;\r\n }\r\n onDelete(id) {\r\n let result = this.notificationService.deletepopup();\r\n result.subscribe(res =>{\r\n console.log('the result is: ', res);\r\n if(res.isConfirmed){\r\n this.calculationService.DeleteScenarioMode(id).subscribe(event => {\r\n if(event.isSuccess){\r\n this.arrayData = event.response\r\n }\r\n })\r\n }\r\n })\r\n\r\n \r\n }\r\n\r\n Onchange(event: any) {\r\n this.realdata=parseFloat(this.percent).toFixed(4);\r\n this.percent = parseFloat(this.percent).toFixed(4) + \"%\";\r\n }\r\n onkeypress(event:any)\r\n {\r\n var charCode = (event.which) ? event.which : event.keyCode;\r\n if ((charCode < 48 || charCode > 57)) {\r\n event.preventDefault();\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n onClear() {\r\n this.tierId = null;\r\n this.percent =null;\r\n this.realdata=null;\r\n }\r\n}\r\n","import { Subscription } from 'rxjs';\r\nimport { Component, EventEmitter, Inject, OnInit, Output, OnDestroy } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { GlobalService } from 'src/app/shared/services/global.service';\r\nimport { NotificationService } from 'src/app/shared/services/notification.service';\r\nimport { StorageService } from 'src/app/shared/services/storage.service';\r\nimport { CalculationModel } from '../calculation.model';\r\nimport { CalculationService } from '../calculation.service';\r\nimport { DropdownListModel } from '../../fund-information/fund-information.model';\r\nimport { StorageName } from 'src/app/shared/common/enum';\r\n\r\n@Component({\r\n selector: 'app-serch-filtermodal',\r\n templateUrl: './serch-filtermodal.component.html',\r\n styleUrls: ['./serch-filtermodal.component.scss']\r\n})\r\nexport class SerchFiltermodalComponent implements OnInit, OnDestroy {\r\n searchCalcList = new CalculationModel();\r\n dropdownListModel = new DropdownListModel();\r\n //filterData = new EventEmitter()\r\n @Output() filterData: EventEmitter = new EventEmitter();\r\n\r\n private _getAllRecordsByIdSubscription!: Subscription;\r\n\r\n constructor(\r\n public calculationService: CalculationService,\r\n public notificationService: NotificationService,\r\n public globalService: GlobalService,\r\n public storageService: StorageService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getAlldropdownAPI();\r\n this.searchCalcList = this.storageService.retrieve('searchCalcList');\r\n if(this.searchCalcList == undefined)\r\n this.searchCalcList = new CalculationModel();\r\n }\r\n\r\n private getAlldropdownAPI() {\r\n this.dropdownListModel.calcTypeDropdown = this.storageService.retrieve(StorageName.CALCULATION_TYPE_DROPDOWN);\r\n this.dropdownListModel.statusDropdown = this.storageService.retrieve(StorageName.STATUS_GRID_DROPDOWN);\r\n this.dropdownListModel.calculationStateDropdown = this.storageService.retrieve(StorageName.CALCULATION_STATE_DROPDOWN);\r\n }\r\n \r\n OnReset() {\r\n this.searchCalcList = new CalculationModel();\r\n this.storageService.store('searchCalcList', this.searchCalcList);\r\n }\r\n\r\n OnFilter() {\r\n var searchFilterModeldata = this.storageService.retrieve('searchCalcList');\r\n if (JSON.stringify(this.searchCalcList) != JSON.stringify(searchFilterModeldata)) {\r\n this.storageService.store('searchCalcList', this.searchCalcList)\r\n }\r\n this._getAllRecordsByIdSubscription = this.calculationService.getCalcListFromSearch(this.searchCalcList).subscribe(result => {\r\n if (result.isSuccess)\r\n this.dialogRef.close(this.searchCalcList);\r\n this.globalService.deactivateLoader();\r\n })\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._getAllRecordsByIdSubscription) \r\n this._getAllRecordsByIdSubscription.unsubscribe();\r\n \r\n }\r\n}\r\n","import { sort } from \"src/app/shared/component/sort/sort.model\";\r\nimport { DropdownModel } from \"src/app/shared/model/common.model\";\r\nimport { PaginationModelCommon } from \"src/app/shared/model/pagination.model\";\r\nexport class DropdownListModel\r\n{\r\n fundDropdown : DropdownModel[];\r\n filterfundDropdown : DropdownModel[];\r\n fundTypeDropdown : DropdownModel[];\r\n currencyDropdown : DropdownModel[];\r\n investorGroupDropdown : DropdownModel[];\r\n investorClassificationDropdown : DropdownModel[];\r\n investmentGroupDropdown : DropdownModel[];\r\n investmentClassificationDropdown : DropdownModel[];\r\n fundGroupDropdown : DropdownModel[];\r\n domainDropdown : DropdownModel[];\r\n vehicleInvestorDropdown : DropdownModel[];\r\n leAssociationDropdown : DropdownModel[];\r\n investorDropdown : DropdownModel[];\r\n investmentDropdown : DropdownModel[];\r\n positionDropdown : DropdownModel[];\r\n carryPtrDesignationDropdown : DropdownModel[];\r\n allocCalcLevelDropdown : DropdownModel[];\r\n transferTypeDropdown : DropdownModel[];\r\n statusDropdown : DropdownModel[];\r\n calculationRuleDropdown : DropdownModel[];\r\n calculationGroupDropdown : DropdownModel[];\r\n prefRetRuleDropdown : DropdownModel[];\r\n tierDropdown : DropdownModel[];\r\n ExpAllocationTierDropdown : DropdownModel[];\r\n calcTypeDropdown : DropdownModel[];\r\n catchupMethodDropdown : DropdownModel[];\r\n dayBasisSettingDropdown : DropdownModel[];\r\n lookupDropdown : DropdownModel[];\r\n importTypeDropdown : DropdownModel[];\r\n permissionRoleDropdown : DropdownModel[];\r\n transactionSetDropdown : DropdownModel[];\r\n calculationStateDropdown : DropdownModel[];\r\n subActDropdown : DropdownModel[];\r\n positionJEDropdown : DropdownModel[];\r\n LockUnlockStatusDropdown : DropdownModel[];\r\n calculationDropdown : DropdownModel[];\r\n calculationLevelDropdown : DropdownModel[];\r\n NumeratorDenominatorDropdown : DropdownModel[];\r\n}\r\nexport class PaginationModel extends PaginationModelCommon\r\n{\r\n investorId: number;\r\n selectedIds: number[];\r\n showColumn : string[]=[];\r\n sortList: sort[] = [];\r\n}\r\nexport class ExportModel\r\n{\r\n sortColumn : string;\r\n sortDirection : string;\r\n page : number=1;\r\n pageSize : number=25;\r\n searchText : string;\r\n getAll : boolean = false;\r\n fundId : number =0;\r\n selectedIds : number[];\r\n showColumn : string[]=[];\r\n sortList : sort[] = []\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable, \r\n tap } from 'rxjs';\r\nimport { Result } from 'src/app/shared/model/response.model';\r\nimport { DataService } from 'src/app/shared/services/data.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FundInformationService {\r\n constructor(private service: DataService) { }\r\n\r\npublic deleteModel(controllerName : string, data : any):Observable\r\n{\r\n let url='/'+controllerName+'/delete';\r\n return this.service.post(url,data).pipe(tap((response:any)=>{\r\n return response;\r\n }))\r\n}\r\n\r\n}","//#region Imports\r\nimport { Component, HostListener, OnDestroy, OnInit, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { FundModel, FundCalculationSettings, agGridDataModelCalculationSetting, agGridDataModelInvestor, agGridDataModelInvestment, agGridDataModelCalculations, agGridDataModelPtrTransfer } from \"./funds.model\";\r\nimport { AppComponent } from \"src/app/app.component\";\r\nimport { ComponentCanDeactivate } from \"src/app/shared/guard/direty-check.guard\";\r\nimport { CommonService } from \"src/app/shared/services/common.service\";\r\nimport { StorageService } from \"src/app/shared/services/storage.service\";\r\nimport { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridService } from \"src/app/shared/component/ag-grid/ag-grid.service\";\r\nimport { DropdownListModel } from \"../fund-information.model\";\r\nimport { PageHeaderModel } from \"src/app/shared/component/page-header/page-header.model\";\r\nimport { TableHeaderModel } from \"src/app/shared/component/table-header-buttons/table-header-buttons.model\";\r\nimport { CommonTabService } from \"src/app/shared/services/common-tab.service\";\r\nimport { PageHeaderComponent } from \"src/app/shared/component/page-header/page-header.component\";\r\nimport { TableHeaderButtonsComponent } from \"src/app/shared/component/table-header-buttons/table-header-buttons.component\";\r\n//#endregion\r\n//#region Component start\r\n@Component({\r\n selector: \"app-funds\",\r\n templateUrl: \"./funds.component.html\",\r\n styleUrls: [\"./funds.component.scss\"],\r\n providers: [AppComponent],\r\n})\r\nexport class FundsComponent extends CommonService implements OnInit, OnDestroy, ComponentCanDeactivate {\r\n @ViewChild(PageHeaderComponent) pageHeaderComponent: PageHeaderComponent;\r\n @ViewChild(TableHeaderButtonsComponent) tableHeaderComponent: TableHeaderButtonsComponent;\r\n\r\n //#region variable declarations\r\n // top model which contains filter, save, undo, delete and filter name\r\n pageHeaderModel: PageHeaderModel;\r\n // top model for the panel over grid which contains add row, export, reset filter, reset grid, undo , soft delete and permanent delete and view/show hidden records\r\n tableHeaderModel: TableHeaderModel;\r\n\r\n //current/selected tab\r\n tabID: number;\r\n // grid apis which sets on grid ready event from ag-grid\r\n investorGridApi: any;\r\n investmentGridApi: any;\r\n calculationSettingsGridApi: any;\r\n calculationsGridApi: any;\r\n ptrTransfersGridApi: any;\r\n //for changed form data\r\n formModel = new FundModel();\r\n //for original form data - will be used to reset/clear the form\r\n loadedFormModel = new FundModel();\r\n // for loading all the dropdowns - form and grid every dropdown\r\n dropdownListModel = new DropdownListModel();\r\n\r\n // tab group list\r\n tabGroupList: any[] = [\r\n { dataModel: agGridDataModelInvestor, label: 'Investors', tabIndex: 0 },\r\n { dataModel: agGridDataModelInvestment, label: 'Investment', tabIndex: 1 },\r\n { dataModel: agGridDataModelCalculationSetting, label: 'Journal Entry Selections', tabIndex: 2 },\r\n { dataModel: agGridDataModelCalculations, label: 'Calculations', tabIndex: 3 },\r\n //{ dataModel: agGridDataModelPtrTransfer, label: 'Ptr Transfer', tabIndex: 4 }\r\n ];\r\n //#endregion variable declarations\r\n\r\n private _onSaveBeforeCloseSubscription!: Subscription;\r\n \r\n //#region ctor\r\n constructor(\r\n public renderer: Renderer2,\r\n public storageService: StorageService,\r\n public agGridService: AgGridService,\r\n public commonTabService: CommonTabService\r\n ) { super(renderer); }\r\n\r\n ngOnDestroy(): void {\r\n if (this._onSaveBeforeCloseSubscription) {\r\n this._onSaveBeforeCloseSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n \r\n\r\n //#endregion\r\n //#region Save Confirmation\r\n @HostListener(\"window:beforeunload\")\r\n canDeactivate(): Observable | boolean {\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n //check if user don't have modify rihgts then no need to open open confirm dialog\r\n if (formPermission && formPermission.modifyPermission ) {\r\n var investors = this.storageService.retrieve(agGridDataModelInvestor.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var investment = this.storageService.retrieve(agGridDataModelInvestment.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var ptrTransfer = this.storageService.retrieve(agGridDataModelPtrTransfer.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n return (\r\n JSON.stringify(this.formModel.fund) === JSON.stringify(this.loadedFormModel.fund) &&\r\n investors?.length == 0 &&\r\n investment?.length == 0 &&\r\n ptrTransfer?.length == 0 &&\r\n JSON.stringify(this.calculationSettingsGridApi.api.getModel().rowsToDisplay.map(a => a.data)) === JSON.stringify(this.calculationSettingsGridApi.api.getModel().rowsToDisplay.map(a => a.data))\r\n ); }\r\n else return true\r\n }\r\n\r\n\r\n onDomainAndFundGroupDropdownChange(fundGroupId, domainId)\r\n {\r\n this.formModel.fund.fundGroupId=fundGroupId;\r\n this.formModel.fund.domainId=domainId;\r\n this.pageHeaderComponent.getPermissionByGroupAndDomain(fundGroupId,domainId);\r\n\r\n\r\n // var domainDropdown = this.storageService.retrieve(\"DOMAIN_DROPDOWN\");\r\n // var filteredFund = domainDropdown.filter(a=>a.id == domainId)[0];\r\n // var canModify = filteredFund.color;\r\n // var canDelete = filteredFund.hoverColor;\r\n // this.pageHeaderModel.canModify = canModify == 'true' ? true : false;\r\n // this.pageHeaderModel.canDelete = canDelete == 'true' ? true : false;\r\n }\r\n //#endregion\r\n //#region Init\r\n ngOnInit(): void {\r\n this.fillPageHeader();\r\n this.setTableHeader();\r\n this._onSaveBeforeCloseSubscription = this.commonTabService.onSaveBeforeClose.subscribe((data) => this.onSave());\r\n }\r\n fillPageHeader() {\r\n this.pageHeaderModel = new PageHeaderModel();\r\n this.pageHeaderModel.placeHolder = \"Enter New Fund Name\";\r\n this.pageHeaderModel.controllerName = StorageName.FUND_HEADER_CONTROLLER;\r\n this.pageHeaderModel.IdStorageName = StorageName.FUNDID;\r\n this.pageHeaderModel.filterOptionStorageName = StorageName.FUND_DROPDOWN;\r\n this.pageHeaderModel.showDeleted = true;\r\n // var showDeleted = this.storageService.store(this.tableHeaderModel.agGridI.showDeleteStatusStorageName);\r\n this.pageHeaderModel.setVisibilityForForm(\"Fund Information\");\r\n }\r\n setTableHeader() {\r\n this.tableHeaderModel = new TableHeaderModel();\r\n this.tableHeaderModel.setVisibility({\r\n isAddButtonVisible: false,\r\n isExportButtonVisible: true,\r\n isUndoButtonVisible: true,\r\n isResetFilterButtonVisible: true,\r\n isSoftDeleteButtonVisible: true,\r\n isPermanentDeleteButtonVisible: true,\r\n isExpandButtonVisible: true,\r\n });\r\n }\r\n fillTopDropdown() {\r\n this.dropdownListModel.fundDropdown = this.storageService.retrieve(StorageName.FUND_DROPDOWN);\r\n this.dropdownListModel.currencyDropdown = this.storageService.retrieve(StorageName.CURRENCY_DROPDOWN);\r\n this.dropdownListModel.fundTypeDropdown = this.storageService.retrieve(StorageName.FUND_TYPE_DROPDOWN);\r\n this.dropdownListModel.fundGroupDropdown = this.storageService.retrieve(StorageName.FUND_GROUP_DROPDOWN);\r\n this.dropdownListModel.domainDropdown = this.storageService.retrieve(StorageName.DOMAIN_DROPDOWN);\r\n }\r\n //#endregion\r\n //#region Clear Complete Form\r\n clearFields(): void {\r\n this.formModel = new FundModel();\r\n this.pageHeaderModel.id = 0;\r\n this.pageHeaderModel.name = \"\";\r\n //set default 1 row added when entering a new record and set to edited true becauuse we need to send it to api\r\n if (this.formModel.fundCalculationSettings.length == 0) {\r\n var fundCalculationSetting = new FundCalculationSettings();\r\n fundCalculationSetting.isEdited = true;\r\n fundCalculationSetting.isDeleted = false;\r\n this.formModel.fundCalculationSettings.push(fundCalculationSetting);\r\n this.calculationSettingsGridApi.api.setRowData([fundCalculationSetting]);\r\n this.storageService.store(StorageName.FUNDADMIN_FUNDS_CALCULATION_SETTINGS_INITIALROWS, this.formModel.fundCalculationSettings);\r\n }\r\n //set enpty rows to all grid apis\r\n this.investorGridApi.api.setRowData([]);\r\n this.investmentGridApi.api.setRowData([]);\r\n this.calculationsGridApi.api.setRowData([]);\r\n this.ptrTransfersGridApi.api.setRowData([]);\r\n //fill the form with blank records\r\n this.fillForm(this.formModel);\r\n }\r\n //#endregion Clear Complete Form\r\n //#region page header events\r\n onAddNewForm() {\r\n \r\n //clear form fields\r\n this.clearFields();\r\n //focus on textbox to add new form name\r\n document.getElementById(\"AddNewForm\").focus();\r\n\r\n this.tableHeaderModel.isAddNew = true;\r\n\r\n //load first tab by default - 0\r\n this.loadTabData(0);\r\n }\r\n //calling post api to save/update records\r\n onSave(): any {\r\n // get filter dropdown value from child component and assign\r\n this.formModel.fund.fundName = this.pageHeaderModel.name;\r\n this.formModel.fund.id = this.pageHeaderModel.id;\r\n //create new mode for form to use for posting updated entries\r\n var postData = new FundModel();\r\n postData.fund = this.formModel.fund;\r\n\r\n var fundInvestors = this.storageService.retrieve(agGridDataModelInvestor.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var fundInvestments = this.storageService.retrieve(agGridDataModelInvestment.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var fundCalculationSettings = this.storageService.retrieve(agGridDataModelCalculationSetting.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var ptrTransfers = this.storageService.retrieve(agGridDataModelPtrTransfer.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n var fundCalculations = this.storageService.retrieve(agGridDataModelCalculations.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n postData.fundInvestors = fundInvestors;// this.investorGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n postData.fundInvestments = fundInvestments;//this.investmentGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n postData.fundCalculationSettings =fundCalculationSettings;// this.calculationSettingsGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n postData.ptrTransfers = ptrTransfers;//this.ptrTransfersGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n postData.fundCalculations = fundCalculations;//this.calculationsGridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n var deletedRecordsInFundInvestors = postData.fundInvestors?.filter((row) => row.isEdited == true && row.isDeleted == true);\r\n var deletedRecordsInFundInvestments = postData.fundInvestments?.filter((row) => row.isEdited == true && row.isDeleted == true);\r\n var deletedRecordsInPtrTransfers = postData.ptrTransfers?.filter((row) => row.isEdited == true && row.isDeleted == true);\r\n this.pageHeaderComponent.post(postData, deletedRecordsInFundInvestors.length != 0 || deletedRecordsInFundInvestments.length != 0 || deletedRecordsInPtrTransfers.length != 0);\r\n }\r\n //#endregion\r\n //#region Tab Events\r\n //\r\n onChangeTab(event) {\r\n this.tabID = event.index;\r\n this.loadTabData(this.tabID);\r\n }\r\n //load the tab records on click of tab\r\n loadTabData(index = 0) {\r\n\r\n this.tabID = index;\r\n this.tableHeaderModel.setVisibility({\r\n isAddButtonVisible: true,\r\n isSoftDeleteButtonVisible: true,\r\n isShowDeletedButtonVisible: !this.pageHeaderModel.showDeleted,\r\n isHideDeletedButtonVisible: this.pageHeaderModel.showDeleted,\r\n isResetDeletedButtonVisible: this.pageHeaderModel.showDeleted,\r\n isPermanentDeleteButtonVisible: true,\r\n });\r\n switch (this.tabID) {\r\n case 0: {\r\n agGridDataModelInvestor.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n agGridDataModelInvestor.gridApi = this.investorGridApi;\r\n this.formModel.fundInvestors = this.agGridService.performFilter(agGridDataModelInvestor);\r\n this.tableHeaderModel.agGridI = agGridDataModelInvestor;\r\n this.tableHeaderModel.gridApi = this.investorGridApi;\r\n break;\r\n }\r\n case 1: {\r\n agGridDataModelInvestment.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n agGridDataModelInvestment.gridApi = this.investmentGridApi;\r\n this.formModel.fundInvestments = this.agGridService.performFilter(agGridDataModelInvestment);\r\n this.tableHeaderModel.agGridI = agGridDataModelInvestment;\r\n this.tableHeaderModel.gridApi = this.investmentGridApi;\r\n break;\r\n }\r\n case 2: {\r\n agGridDataModelCalculationSetting.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n agGridDataModelCalculationSetting.gridApi = this.calculationSettingsGridApi;\r\n this.formModel.fundCalculationSettings = this.agGridService.performFilter(agGridDataModelCalculationSetting);\r\n this.tableHeaderModel.agGridI = agGridDataModelCalculationSetting;\r\n this.tableHeaderModel.gridApi = this.calculationSettingsGridApi;\r\n this.tableHeaderModel.setVisibility({\r\n isAddButtonVisible: false,\r\n isSoftDeleteButtonVisible: false,\r\n isShowDeletedButtonVisible: false,\r\n isPermanentDeleteButtonVisible: false\r\n });\r\n break;\r\n }\r\n case 3: {\r\n agGridDataModelCalculations.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n agGridDataModelCalculations.gridApi = this.calculationsGridApi;\r\n this.formModel.fundCalculations = this.agGridService.performFilter(agGridDataModelCalculations);\r\n this.tableHeaderModel.agGridI = agGridDataModelCalculations;\r\n this.tableHeaderModel.setVisibility({\r\n isAddButtonVisible: false,\r\n isSoftDeleteButtonVisible: false,\r\n isShowDeletedButtonVisible: false,\r\n isPermanentDeleteButtonVisible: false\r\n });\r\n break;\r\n }\r\n case 4: {\r\n agGridDataModelPtrTransfer.masterIdStorageName = this.pageHeaderModel.IdStorageName;\r\n agGridDataModelPtrTransfer.gridApi = this.ptrTransfersGridApi;\r\n this.tableHeaderModel.agGridI = agGridDataModelPtrTransfer;\r\n this.tableHeaderModel.gridApi = this.ptrTransfersGridApi;\r\n this.formModel.ptrTransfers = this.agGridService.performFilter(agGridDataModelPtrTransfer);\r\n break;\r\n }\r\n }\r\n //if(this.pageHeaderModel.isAddNew ==false)\r\n this.tableHeaderComponent.getTabData(this.tableHeaderModel.gridApi);\r\n if (this.formModel.fundCalculationSettings.length == 0) {\r\n var fundCalculationSetting = new FundCalculationSettings();\r\n fundCalculationSetting.isEdited = true;\r\n fundCalculationSetting.isDeleted = false;\r\n this.formModel.fundCalculationSettings.push(fundCalculationSetting);\r\n this.calculationSettingsGridApi.api.setRowData([fundCalculationSetting]);\r\n this.storageService.store(StorageName.FUNDADMIN_FUNDS_CALCULATION_SETTINGS_INITIALROWS, this.formModel.fundCalculationSettings);\r\n }\r\n }\r\n ongridReady(item, gridApi) {\r\n switch (item.tabIndex) {\r\n case 0: this.investorGridApi = gridApi; break;\r\n case 1: this.investmentGridApi = gridApi; break;\r\n case 2: this.calculationSettingsGridApi = gridApi; break;\r\n case 3: this.calculationsGridApi = gridApi; break;\r\n case 4: this.ptrTransfersGridApi = gridApi; break;\r\n }\r\n }\r\n\r\n onPageSizeUpdated(pageSize){\r\n switch (this.tabID) {\r\n case 0: this.storageService.store(agGridDataModelInvestor.paginationStore,pageSize); break;\r\n case 1: this.storageService.store(agGridDataModelInvestment.paginationStore,pageSize); break;\r\n case 2: this.storageService.store(agGridDataModelCalculationSetting.paginationStore,pageSize); break;\r\n case 3: this.storageService.store(agGridDataModelCalculations.paginationStore,pageSize); break;\r\n case 4: this.storageService.store(agGridDataModelPtrTransfer.paginationStore,pageSize); break;\r\n }\r\n this.loadTabData(this.tabID);\r\n }\r\n\r\n //#endregion tab events\r\n //#region get and fill form records\r\n getById(res: any) {\r\n this.storageService.store(StorageName.FUNDID, parseInt(res.response.fund.id));\r\n this.setForm(res.response);\r\n }\r\n setForm(formModel: FundModel) {\r\n this.fillForm(formModel);\r\n this.loadTabData(this.tabID);\r\n }\r\n fillForm(formModel: FundModel) {\r\n //#region Top Data\r\n this.formModel.fund = formModel.fund;\r\n this.formModel.fundCalculationSettings = formModel.fundCalculationSettings;\r\n this.loadedFormModel.fund = { ...this.formModel.fund };\r\n this.loadedFormModel.fundCalculationSettings = [...this.formModel.fundCalculationSettings];\r\n this.pageHeaderModel.id = formModel.fund.id;\r\n this.pageHeaderModel.name = formModel.fund.fundName;\r\n this.tableHeaderModel.isAddNew = false;\r\n //this.tableHeaderModel.masterDataColumnName = \"calcRuleName\";\r\n this.tableHeaderModel.masterDataValueName = formModel.fund.fundName;\r\n //#endregion Top Data\r\n //#region Set Grid Storage\r\n this.storageService.store(StorageName.FUNDADMIN_FUNDS_INVESTORS_INITIALROWS, formModel.fundInvestors);\r\n this.storageService.store(StorageName.FUNDADMIN_FUNDS_INVESTMENT_INITIALROWS, formModel.fundInvestments);\r\n this.storageService.store(StorageName.FUNDADMIN_FUNDS_CALCULATION_SETTINGS_INITIALROWS, formModel.fundCalculationSettings);\r\n this.storageService.store(StorageName.FUNDADMIN_FUNDS_CALCULATIONS_INITIALROWS, formModel.fundCalculations);\r\n this.storageService.store(StorageName.FUNDADMIN_FUNDS_PTR_TRANSFER_INITIALROWS, formModel.ptrTransfers);\r\n //#endregion\r\n }\r\n //#endregion get and fill form records\r\n}\r\n//#endregion Component End","import { CellClassParams, EditableCallbackParams } from \"ag-grid-community\";\r\nimport { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridI, ColDefsCalculations, ColDefsCalculationSetting, ColDefsInvestment, ColDefsInvestor, ColDefsPtrTransfer } from \"src/app/shared/component/ag-grid/ag-grid.interface\";\r\nexport class FundModel\r\n{\r\n fund : Fund = new Fund();\r\n fundInvestors : FundInvestors[]=[];\r\n fundInvestments : FundInvestments[]=[];\r\n ptrTransfers : FundPtrTransfers[]=[];\r\n fundCalculationSettings : FundCalculationSettings[]=[];\r\n isNew : boolean = true;\r\n fundCalculations : FundCalculation[];\r\n}\r\nexport class Fund \r\n{\r\n fundName : string = \"\";\r\n fundTypeId : number = undefined;\r\n domainId : number = undefined;\r\n fundFamily : string= \"\";\r\n launchDate : Date= undefined;\r\n closeDate : Date= undefined;\r\n fundExternalId : number= undefined;\r\n comments : string= \"\";\r\n fundGroupId : number= undefined;\r\n currencyId : number= undefined;\r\n id : number= undefined;\r\n createdAt : string= \"\";\r\n updatedAt : string= \"\";\r\n isDeleted : boolean = false;\r\n deletedAt : string= null;\r\n isEdit : boolean = false;\r\n}\r\nexport class FundInvestors \r\n{\r\n id : number;\r\n fundId : number;\r\n vehicleInvestorId : number;\r\n leAssociationId : number;\r\n investorId : number;\r\n investorName : string;\r\n investorCommitment : number;\r\n inactiveDate : Date;\r\n managementFeeEligible : boolean;\r\n recCarry : boolean;\r\n feeEligible : boolean;\r\n sideLetter : boolean;\r\n sideLetterPromote1 : string;\r\n sideLetterPromote2 : string;\r\n sideLetterPromote3 : string;\r\n sideLetterPref1 : string;\r\n sideLetterPref2 : string;\r\n sideLetterPref3 : string;\r\n active : boolean;\r\n fundInvestorExtId : string;\r\n comments : string;\r\n operation : string;\r\n fundName : string;\r\n vehicleInvestorName : string;\r\n leAssociationName : string;\r\n importDate : Date;\r\n importUserId : string;\r\n commitPer : string;\r\n createdAt : string;\r\n updatedAt : string;\r\n isDeleted : boolean = false;\r\n isAdded : boolean = false;\r\n isEdited : boolean = false;\r\n deletedAt : string;\r\n isRowChecked : boolean = false;\r\n isPasteRow : boolean = false;\r\n totalRecords : number;\r\n}\r\nexport class FundInvestments \r\n{\r\n id : number;\r\n fundsId : number;\r\n investmentId : number;\r\n positionId : number;\r\n currencyId : number;\r\n fundInvestmentExtId : string;\r\n fundInvestmentAmt : string;\r\n investmentVintageDate : string;\r\n strInvestmentVintageDate : string;\r\n active : boolean;\r\n investmentLiquidationDate : Date;\r\n comments : string;\r\n inactiveDate : Date;\r\n operation : string;\r\n fundName : string;\r\n investmentName : string;\r\n positionName : string;\r\n investmentGUID : string;\r\n positionGUID : string;\r\n fundInvestmentGUID : string;\r\n importUserId : string;\r\n importDate : Date;\r\n createdAt : string;\r\n updatedAt : string;\r\n isDeleted : boolean = false;\r\n deletedAt : string;\r\n isEdited : boolean = false;\r\n isAdded : boolean = false;\r\n totalRecords : number;\r\n isRowChecked : boolean = false;\r\n isPasteRow : boolean = false;\r\n}\r\nexport class FundCalculationSettings\r\n{\r\n id : number;\r\n calcRuleFundId : number;\r\n fundId : number;\r\n carryPtrDesignation : string;\r\n allocCalcLevel : string;\r\n lpaEntries : boolean;\r\n distReAllocEntries : boolean;\r\n incomeReAllocEntries : boolean;\r\n unrealizedEntries : boolean;\r\n comments : string;\r\n // operation : string;\r\n fundName : string;\r\n // createdAt : string;\r\n // updatedAt : string;\r\n isDeleted : boolean = false;\r\n // deletedAt : string;\r\n totalRecords : number;\r\n isEdited : boolean = false;\r\n isRowChecked : boolean = false;\r\n}\r\nexport class FundCalculation\r\n{\r\n id : number;\r\n calcId : number;\r\n fundName : string;\r\n calcName : string;\r\n fundId : number;\r\n calcRuleId : number;\r\n calcTypeId : number;\r\n calcDesc : string;\r\n calcDataSet : string;\r\n calcDate : string;\r\n runDate : string;\r\n distIncomeNum : number;\r\n pLReallocSubActId : number;\r\n calcStatusId : number;\r\n fundInvestmentId : number;\r\n calcRuleName : string;\r\n calcStatus : string;\r\n calcStateId : number;\r\n isDeleted : boolean = false;\r\n totalRecords : number;\r\n plReallocSubActId : number;\r\n isEdited : boolean = false;\r\n isRowChecked : boolean = false;\r\n}\r\nexport class FundPtrTransfers \r\n{\r\n id : number;\r\n isAdded : boolean = false;\r\n isEdited : boolean = false;\r\n isDeleted : boolean = false;\r\n fundId : number;\r\n ptrTransNameId : number;\r\n vehicleInvestorId : number;\r\n investorId : number;\r\n fundInvestorId : number;\r\n transferPer : number | null;\r\n status : string;\r\n transferTypeId : number;\r\n statusId : number;\r\n comments : string;\r\n operation : string;\r\n ptrTransferName : string;\r\n fundName : string;\r\n investorName : string;\r\n vehicleInvestorName : string;\r\n investorGUID : string;\r\n fundInvestorGUID : string;\r\n vehicleGUID : string;\r\n ptrTransGUID : string;\r\n transferDate : string;\r\n strTransferDate : string;\r\n islocked : boolean = false;\r\n isRowChecked : boolean = false;\r\n isPasteRow : boolean = false;\r\n}\r\n//#region Grid Model Declaration\r\n // for Investor Col Defination\r\n export const agGridDataModelInvestor: AgGridI = {\r\n colDefs: ColDefsInvestor,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.FUNDADMIN_FUNDS_INVESTORS_GRID,\r\n controllerName: StorageName.FUNDADMIN_FUNDS_INVESTORS_CONTROLLER,\r\n storageName: StorageName.FUNDADMIN_FUNDS_INVESTORS_COLUMNCHANGED,\r\n paginationStore: StorageName.FUNDADMIN_FUNDS_INVESTORS_PAGINATION,\r\n initialRows: StorageName.FUNDADMIN_FUNDS_INVESTORS_INITIALROWS,\r\n filterStorageName: StorageName.FUNDADMIN_FUNDS_INVESTORS_FILTER,\r\n showDeleteStatusStorageName: StorageName.FUNDADMIN_FUNDS_SHOW_DELETED,\r\n tabIndex: 0,\r\n showDeleted : false,\r\n columnTypes: {\r\n editableColumn: {\r\n editable: (params: EditableCallbackParams) => {\r\n return params.data.canModify == true ;\r\n }\r\n }\r\n },\r\n };\r\n // for Investment Col Defination\r\n // for Investment\r\n export const agGridDataModelInvestment: AgGridI = {\r\n colDefs: ColDefsInvestment,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.FUNDADMIN_FUNDS_INVESTMENT_GRID,\r\n controllerName: StorageName.FUNDADMIN_FUNDS_INVESTMENT_CONTROLLER,\r\n storageName: StorageName.FUNDADMIN_FUNDS_INVESTMENT_COLUMNCHANGED,\r\n paginationStore: StorageName.FUNDADMIN_FUNDS_INVESTMENT_PAGINATION,\r\n initialRows: StorageName.FUNDADMIN_FUNDS_INVESTMENT_INITIALROWS,\r\n filterStorageName: StorageName.FUNDADMIN_FUNDS_INVESTMENT_FILTER,\r\n showDeleteStatusStorageName: StorageName.FUNDADMIN_FUNDS_SHOW_DELETED,\r\n tabIndex: 1,\r\n showDeleted : false,\r\n columnTypes: {\r\n editableColumn: {\r\n editable: (params: EditableCallbackParams) => {\r\n return params.data.canModify == true ;\r\n }\r\n }\r\n },\r\n };\r\n // for Calculation Col Defination\r\n export const agGridDataModelCalculations: AgGridI = {\r\n colDefs: ColDefsCalculations,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.FUNDADMIN_FUNDS_CALCULATIONS_GRID,\r\n controllerName: StorageName.FUNDADMIN_FUNDS_CALCULATIONS_CONTROLLER,\r\n storageName: StorageName.FUNDADMIN_FUNDS_CALCULATIONS_COLUMNCHANGED,\r\n paginationStore: StorageName.FUNDADMIN_FUNDS_CALCULATIONS_PAGINATION,\r\n initialRows: StorageName.FUNDADMIN_FUNDS_CALCULATIONS_INITIALROWS,\r\n filterStorageName: StorageName.FUNDADMIN_FUNDS_CALCULATIONS_FILTER,\r\n showDeleteStatusStorageName: StorageName.FUNDADMIN_FUNDS_SHOW_DELETED,\r\n tabIndex: 3,\r\n showDeleted : false,\r\n columnTypes: {\r\n editableColumn: {\r\n editable: (params: EditableCallbackParams) => {\r\n return params.data.canModify == true ;\r\n }\r\n }\r\n },\r\n };\r\n // for Calculation Settings Col Defination\r\n export const agGridDataModelCalculationSetting: AgGridI = {\r\n colDefs: ColDefsCalculationSetting,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.FUNDADMIN_FUNDS_CALCULATION_SETTINGS_GRID,\r\n controllerName: StorageName.FUNDADMIN_FUNDS_CALCULATION_SETTINGS_CONTROLLER,\r\n storageName: StorageName.FUNDADMIN_FUNDS_CALCULATION_SETTINGS_COLUMNCHANGED,\r\n paginationStore: StorageName.FUNDADMIN_FUNDS_CALCULATION_SETTINGS_PAGINATION,\r\n initialRows: StorageName.FUNDADMIN_FUNDS_CALCULATION_SETTINGS_INITIALROWS,\r\n filterStorageName: StorageName.FUNDADMIN_FUNDS_CALCULATION_SETTINGS_FILTER,\r\n showDeleteStatusStorageName: StorageName.FUNDADMIN_FUNDS_SHOW_DELETED,\r\n tabIndex: 2,\r\n showDeleted : false,\r\n columnTypes: {\r\n editableColumn: {\r\n editable: (params: EditableCallbackParams) => {\r\n return params.data.canModify == true ;\r\n }\r\n }\r\n },\r\n };\r\n // for Ptr Transfer Col Defination\r\n // for Ptr Transfer\r\n export const agGridDataModelPtrTransfer: AgGridI = {\r\n colDefs: ColDefsPtrTransfer,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.FUNDADMIN_FUNDS_PTR_TRANSFER_GRID,\r\n controllerName: StorageName.FUNDADMIN_FUNDS_PTR_TRANSFER_CONTROLLER,\r\n storageName: StorageName.FUNDADMIN_FUNDS_PTR_TRANSFER_COLUMNCHANGED,\r\n paginationStore: StorageName.FUNDADMIN_FUNDS_PTR_TRANSFER_PAGINATION,\r\n initialRows: StorageName.FUNDADMIN_FUNDS_PTR_TRANSFER_INITIALROWS,\r\n filterStorageName: StorageName.FUNDADMIN_FUNDS_PTR_TRANSFER_FILTER,\r\n showDeleteStatusStorageName: StorageName.FUNDADMIN_FUNDS_SHOW_DELETED,\r\n tabIndex: 4,\r\n showDeleted : false,\r\n columnTypes: {\r\n editableColumn: {\r\n editable: (params: EditableCallbackParams) => {\r\n return params.data.canModify == true ;\r\n }\r\n }\r\n },\r\n };\r\n \r\n//#endregion Grid Model Declaration","import { Injectable } from '@angular/core';\r\nimport { Observable, \r\n tap } from 'rxjs';\r\nimport { Result } from 'src/app/shared/model/response.model';\r\nimport { DataService } from 'src/app/shared/services/data.service';\r\nimport { FundModel } from './funds.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FundsService {\r\n rows : any;\r\n constructor(private service: DataService) { }\r\n// Post API \r\npublic runPtrTransfer(transferId):Observable {\r\n let url='/Fund/runPtrTransfer';\r\n return this.service.post(url,transferId,true).pipe(tap((response:any) => {\r\n return response;\r\n }));\r\n}\r\npublic revertPtrTransfer(transferId):Observable {\r\n let url='/Fund/revertPtrTransfer';\r\n return this.service.post(url,transferId,true).pipe(tap((response:any) => {\r\n return response;\r\n }));\r\n}\r\n}\r\n\r\n","//#region Imports\r\nimport {\r\n Component,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n Renderer2,\r\n ViewChild\r\n} from \"@angular/core\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { AppComponent } from \"src/app/app.component\";\r\nimport { ComponentCanDeactivate } from \"src/app/shared/guard/direty-check.guard\";\r\nimport { CommonService } from \"src/app/shared/services/common.service\";\r\nimport { StorageService } from \"src/app/shared/services/storage.service\";\r\nimport { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridService } from \"src/app/shared/component/ag-grid/ag-grid.service\";\r\nimport { DropdownListModel } from \"../fund-information.model\";\r\nimport { PageHeaderModel } from \"src/app/shared/component/page-header/page-header.model\";\r\nimport { TableHeaderModel } from \"src/app/shared/component/table-header-buttons/table-header-buttons.model\";\r\nimport { agGridDataModelFundInvestor, InvestorModel } from \"./investors.model\";\r\nimport { CommonTabService } from \"src/app/shared/services/common-tab.service\";\r\nimport { PageHeaderComponent } from \"src/app/shared/component/page-header/page-header.component\";\r\nimport { TableHeaderButtonsComponent } from \"src/app/shared/component/table-header-buttons/table-header-buttons.component\";\r\n//#endregion\r\n//#region Component start\r\n@Component({\r\n selector: \"app-investors\",\r\n templateUrl: \"./investors.component.html\",\r\n styleUrls: [\"./investors.component.scss\"],\r\n providers: [AppComponent],\r\n})\r\nexport class InvestorComponent extends CommonService implements OnInit, OnDestroy, ComponentCanDeactivate {\r\n @ViewChild(PageHeaderComponent) pageHeaderComponent: PageHeaderComponent;\r\n @ViewChild(TableHeaderButtonsComponent) tableHeaderComponent: TableHeaderButtonsComponent;\r\n //#region variable declarations\r\n\r\n // top model which contains filter, save, undo, delete and filter name\r\n pageHeaderModel: PageHeaderModel;\r\n id: number;\r\n // top model for the panel over grid which contains add row, export, reset filter, reset grid, undo , soft delete and permanent delete and view/show hidden records\r\n tableHeaderModel: TableHeaderModel;\r\n\r\n //current/selected tab\r\n tabID: number;\r\n // grid apis which sets on grid ready event from ag-grid\r\n gridApi: any;\r\n //for changed form data\r\n formModel = new InvestorModel();\r\n //for original form data - will be used to reset/clear the form\r\n loadedFormModel = new InvestorModel();\r\n // for loading all the dropdowns - form and grid every dropdown\r\n dropdownListModel = new DropdownListModel();\r\n // tab group list\r\n tabGroupList: any[] = [\r\n { dataModel: agGridDataModelFundInvestor, label: 'Fund Commitments', tabIndex: 0 },\r\n ];\r\n //#endregion variable declarations\r\n\r\n private _onSaveBeforeCloseSubscription!: Subscription;\r\n\r\n //#region ctor\r\n constructor(\r\n public renderer: Renderer2,\r\n public storageService: StorageService,\r\n public agGridService: AgGridService,\r\n public commonTabService: CommonTabService\r\n ) { super(renderer); }\r\n\r\n ngOnDestroy(): void {\r\n if (this._onSaveBeforeCloseSubscription) {\r\n this._onSaveBeforeCloseSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n //#endregion\r\n //#region Save Confirmation\r\n @HostListener(\"window:beforeunload\")\r\n canDeactivate(): Observable | boolean {\r\n\r\n // var data = this.gridApi.api.getModel().rowsToDisplay.map(a => a.data);\r\n // var data2 = this.formModel.fundInvestors;\r\n // var data3 = this.storageService.retrieve(StorageName.FUNDADMIN_INVESTORS_INITIALROWS);\r\n var fundInvestors = this.storageService.retrieve(agGridDataModelFundInvestor.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n return (\r\n JSON.stringify(this.formModel.investor) === JSON.stringify(this.loadedFormModel.investor) &&\r\n fundInvestors?.length == 0\r\n );\r\n }\r\n //#endregion\r\n //#region Init\r\n ngOnInit(): void {\r\n //this.fillTopDropdown();\r\n this.fillPageHeader();\r\n this.setTableHeader();\r\n this._onSaveBeforeCloseSubscription = this.commonTabService.onSaveBeforeClose.subscribe((data) => this.onSave());\r\n }\r\n fillPageHeader() {\r\n this.pageHeaderModel = new PageHeaderModel();\r\n this.pageHeaderModel.setVisibilityForForm(\"Fund Information\");\r\n //this.pageHeaderModel.filteredOptions = this.dropdownListModel.investorDropdown;\r\n this.pageHeaderModel.placeHolder = \"Enter New Investor Name\";\r\n this.pageHeaderModel.controllerName = StorageName.INVESTOR_HEADER_CONTROLLER;\r\n this.pageHeaderModel.IdStorageName = StorageName.INVESTORID;\r\n this.pageHeaderModel.showDeleted = true;\r\n }\r\n setTableHeader() {\r\n this.tableHeaderModel = new TableHeaderModel();\r\n this.tableHeaderModel.setVisibility({\r\n isAddButtonVisible: false,\r\n isExportButtonVisible: true,\r\n isUndoButtonVisible: true,\r\n isResetFilterButtonVisible: true,\r\n isSoftDeleteButtonVisible: true,\r\n isPermanentDeleteButtonVisible: true,\r\n isExpandButtonVisible: true,\r\n });\r\n }\r\n fillTopDropdown() {\r\n this.dropdownListModel.investorDropdown = this.storageService.retrieve(StorageName.INVESTOR_DROPDOWN);\r\n this.dropdownListModel.investorGroupDropdown = this.storageService.retrieve(StorageName.INVESTOR_GROUP_DROPDOWN);\r\n this.dropdownListModel.investorClassificationDropdown = this.storageService.retrieve(StorageName.INVESTOR_CLASSIFICATION_DROPDOWN);\r\n }\r\n //#endregion\r\n //#region Clear Complete Form\r\n clearFields(): void {\r\n this.formModel = new InvestorModel();\r\n this.pageHeaderModel.id = 0;\r\n this.pageHeaderModel.name = \"\";\r\n //set enpty rows to all grid apis\r\n this.gridApi.api.setRowData([]);\r\n //fill the form with blank records\r\n this.fillForm(this.formModel);\r\n }\r\n //#endregion Clear Complete Form\r\n //#region page header events\r\n onAddNewForm() {\r\n //clear form fields\r\n this.clearFields();\r\n //focus on textbox to add new form name\r\n document.getElementById(\"AddNewForm\").focus();\r\n \r\n this.tableHeaderModel.isAddNew = true;\r\n\r\n //load first tab by default - 0\r\n this.loadTabData(0);\r\n }\r\n //calling post api to save/update records\r\n onSave() {\r\n // get filter dropdown value from child component and assign\r\n this.formModel.investor.investorName = this.pageHeaderModel.name;\r\n this.formModel.investor.id = this.pageHeaderModel.id;\r\n //create new mode for form to use for posting updated entries\r\n var postData = new InvestorModel();\r\n postData.investor = this.formModel.investor;\r\n var fundInvestors = this.storageService.retrieve(agGridDataModelFundInvestor.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n postData.fundInvestors = fundInvestors;//this.gridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true || row.isAdded == true);\r\n\r\n var deletedRecordsFundInvestors = postData.fundInvestors?.filter((row) => row.isEdited == true && row.isDeleted == true);\r\n this.pageHeaderComponent.post(postData, deletedRecordsFundInvestors.length != 0);\r\n\r\n }\r\n\r\n //#endregion\r\n //#region Tab Events\r\n //\r\n\r\n onChangeTab(event) {\r\n this.tabID = event.index;\r\n this.loadTabData(this.tabID);\r\n }\r\n\r\n //load the tab records on click of tab\r\n loadTabData(index = 0) {\r\n this.tabID = index;\r\n this.tableHeaderModel.setVisibility({\r\n isAddButtonVisible: true,\r\n isSoftDeleteButtonVisible: true,\r\n isShowDeletedButtonVisible: !this.pageHeaderModel.showDeleted,\r\n isHideDeletedButtonVisible: this.pageHeaderModel.showDeleted,\r\n isPermanentDeleteButtonVisible: true,\r\n });\r\n\r\n switch (this.tabID) {\r\n case 0:\r\n agGridDataModelFundInvestor.masterIdStorageName = this.pageHeaderModel.IdStorageName,\r\n agGridDataModelFundInvestor.gridApi = this.gridApi;\r\n this.formModel.fundInvestors = this.agGridService.performFilter(agGridDataModelFundInvestor);\r\n this.tableHeaderModel.agGridI = agGridDataModelFundInvestor;\r\n this.tableHeaderModel.gridApi = this.gridApi;\r\n break;\r\n }\r\n \r\n this.tableHeaderComponent.getTabData(this.tableHeaderModel.gridApi);\r\n }\r\n\r\n ongridReady(item, gridApi) {\r\n switch (item.tabIndex) { case 0: this.gridApi = gridApi; break; }\r\n }\r\n onPageSizeUpdated(pageSize){\r\n switch (this.tabID) {\r\n case 0: this.storageService.store(agGridDataModelFundInvestor.paginationStore,pageSize); break;\r\n }\r\n this.loadTabData(this.tabID);\r\n }\r\n //#endregion tab events\r\n //#region get and fill form records\r\n getById(res: any) {\r\n this.storageService.store(StorageName.INVESTORID, parseInt(res.response.investor.id));\r\n this.setForm(res.response);\r\n }\r\n\r\n setForm(formModel: InvestorModel) {\r\n this.fillForm(formModel);\r\n this.loadTabData(this.tabID);\r\n }\r\n fillForm(formModel: InvestorModel) {\r\n //#region Top Data\r\n this.formModel.investor = formModel.investor;\r\n this.loadedFormModel.investor = { ...this.formModel.investor };\r\n this.pageHeaderModel.id = formModel.investor.id;\r\n this.pageHeaderModel.name = formModel.investor.investorName;\r\n this.tableHeaderModel.isAddNew = false;\r\n //this.tableHeaderModel.masterDataColumnName = \"calcRuleName\";\r\n this.tableHeaderModel.masterDataValueName = formModel.investor.investorName;\r\n //#region Set Grid Storage\r\n this.storageService.store(StorageName.FUNDADMIN_INVESTORS_INITIALROWS, formModel.fundInvestors);\r\n //#endregion\r\n }\r\n //#endregion get and fill form records\r\n}\r\n//#endregion Component End","import { StorageName } from \"src/app/shared/common/enum\";\r\nimport { AgGridI, ColDefsFundCommitments } from \"src/app/shared/component/ag-grid/ag-grid.interface\";\r\nimport { FundInvestors } from \"../funds/funds.model\";\r\nexport class InvestorModel\r\n{\r\n investor : Investor = new Investor();\r\n fundInvestors : FundInvestors[]=[];\r\n}\r\nexport class Investor {\r\n id : number;\r\n createdAt : string;\r\n updatedAt : string;\r\n isDeleted : boolean;\r\n deletedAt : string;\r\n investorName : string;\r\n investorFamily : string;\r\n taxID : string;\r\n investorGroupId : number;\r\n investorClassificationId: number;\r\n investorExternalId : string;\r\n active : boolean;\r\n investorComments : string;\r\n}\r\n\r\n\r\n export const agGridDataModelFundInvestor: AgGridI = {\r\n colDefs: ColDefsFundCommitments,\r\n rowSelection: \"multiple\",\r\n gridName: StorageName.FUNDADMIN_INVESTORS_GRID,\r\n controllerName: StorageName.FUNDADMIN_INVESTORS_CONTROLLER,\r\n storageName: StorageName.FUNDADMIN_INVESTORS_COLUMNCHANGED,\r\n paginationStore: StorageName.FUNDADMIN_INVESTORS_PAGINATION,\r\n initialRows: StorageName.FUNDADMIN_INVESTORS_INITIALROWS,\r\n filterStorageName: StorageName.FUNDADMIN_INVESTORS_FILTER,\r\n showDeleteStatusStorageName : StorageName.FUNDADMIN_INVESTORS_SHOW_DELETED,\r\n tabIndex: 1\r\n };\r\n","import { InvestorComponent } from './investors.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { DiretyCheckGuard } from 'src/app/shared/guard/direty-check.guard';\r\nconst routes: Routes = [\r\n { path: '', component: InvestorComponent, canDeactivate: [DiretyCheckGuard] }\r\n];\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class InvestorRoutingModule { }","\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ImportService } from './import-popup.service';\r\nimport * as XLSX from 'xlsx';\r\nimport { GlobalService } from 'src/app/shared/services/global.service';\r\nimport { NotificationService } from 'src/app/shared/services/notification.service';\r\nimport { DropdownModel } from 'src/app/shared/model/common.model';\r\nimport { ImportFileModel, sheetNameList } from 'src/app/shared/component/page-header-import-form/page-header-import-form.model';\r\nimport { AgGridService } from 'src/app/shared/component/ag-grid/ag-grid.service';\r\nimport { StorageService } from 'src/app/shared/services/storage.service';\r\n@Component\r\n (\r\n {\r\n selector: 'app-import-popup',\r\n templateUrl: './import-popup.component.html',\r\n styleUrls: ['./import-popup.component.scss']\r\n }\r\n )\r\nexport class ImportPopupComponent implements OnInit {\r\n @Output() ServiceValue = new EventEmitter();\r\n constructor(\r\n public importService: ImportService,\r\n public agGridService : AgGridService,\r\n public globalService: GlobalService,\r\n public storageService : StorageService,\r\n public notificationService: NotificationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: any,\r\n ) { }\r\n importFileType: number;\r\n importTypes: DropdownModel[];\r\n sheetName: string[];\r\n sheetNameModel = new sheetNameList();\r\n sheetNameList: sheetNameList[] = [];\r\n xsmlfile: string;\r\n importModel = new ImportFileModel();\r\n selectedVal: number;\r\n importFormName: string;\r\n isLoading : boolean = false;\r\n isFileLoading : boolean = false;\r\n isTransactionForm : boolean = false;\r\n UDFList: any[];\r\n progressPercent : number;\r\n file : any;\r\n ngOnInit(): void {\r\n this.selectedVal = this.data.pageHeadeModel.showImportTypeForm;\r\n this.importFormName = this.data.pageHeadeModel.controllerName;\r\n this.importTypes = this.data.pageHeadeModel.importTypes; \r\n if(this.importFormName == 'Transaction')\r\n this.isTransactionForm = true;\r\n else\r\n this.isTransactionForm = false;\r\n }\r\n onAppend(isAppend : boolean){\r\n this.importModel.isAppend = isAppend;\r\n this.selectedVal=1;\r\n }\r\n onChangeOfType() {\r\n this.importService.importType = this.importFileType\r\n this.importModel.fileType=this.importFileType;\r\n }\r\n openFile() {\r\n document.querySelector('input').click()\r\n }\r\n handle(e) {\r\n }\r\n handleUpload(event) \r\n { \r\n if(this.importFormName != \"Transaction\") {\r\n this.isFileLoading = true;\r\n this.globalService.activateLoader();\r\n }\r\n\r\n this.xsmlfile = this.xsmlfile.toString().split(\"fakepath\\\\\")[1];\r\n const file = event.target.files[0]; \r\n this.file = file;\r\n //this.globalService.activateLoader();\r\n // this.isLoading = true;\r\nif(this.importFormName != \"Transaction\")\r\n{\r\n const reader: FileReader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = (e: any) => {\r\n /* create workbook */\r\n const trimtext = \"data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,\";\r\n const binarystr: string = e.target.result.substring(trimtext.length);\r\n const wb: XLSX.WorkBook = XLSX.read(binarystr, { type: 'base64' });\r\n /* selected the first sheet */\r\n this.sheetName = wb.SheetNames;\r\n this.isFileLoading = false;\r\n this.globalService.deactivateLoader();\r\n this.sheetNameModel.name = this.sheetName[0];\r\n this.sheetNameList.unshift(this.sheetNameModel)\r\n this.importModel.fileData = reader.result.toString();\r\n document.getElementById(\"titleForm\").click();\r\n };\r\n \r\n }\r\n else\r\n {\r\n // this.storageService.removeItem(\"transactionValidationSuccess\");\r\n // // this.xsmlfile = this.xsmlfile.toString().split(\"fakepath\\\\\")[1];\r\n // this.file = event.target.files[0];\r\n // this.convertToJSON(this.file).then(data => {\r\n // this.importModel.fileDataArray = data;\r\n // this.globalService.deactivateLoader();\r\n // this.isFileLoading = false;\r\n // document.getElementById(\"titleForm\").click();\r\n\r\n // });\r\n }\r\n }\r\n\r\n // splitJson(jsonObj, chunkSize) {\r\n // const keys = Object.keys(jsonObj);\r\n // const numChunks = Math.ceil(keys.length / chunkSize);\r\n // const result = [];\r\n \r\n // for (let i = 0; i < numChunks; i++) {\r\n // const start = i * chunkSize;\r\n // const end = start + chunkSize;\r\n // const chunkKeys = keys.slice(start, end);\r\n // const chunk = {};\r\n // for (const key of chunkKeys) {\r\n // chunk[key] = jsonObj[key];\r\n // }\r\n // result.push(chunk);\r\n // }\r\n \r\n // return result;\r\n // }\r\n async import() {\r\n if(this.importFileType != undefined)\r\n {\r\n var controllerName = this.importTypes.filter(\r\n (row) => row.id == this.importFileType.toString()\r\n );\r\n this.importModel.fileType=parseInt(this.importFileType.toString());\r\n this.importFormName = controllerName[0].name.replace(\" \", \"\");\r\n if (this.importFormName == \"StructuredFormat\" || this.importFormName == \"FlatFormat\")\r\n this.importFormName = \"Transaction\";\r\n }\r\n if(this.importFormName != \"Transaction\")\r\n {\r\n this.isLoading = true;\r\n this.globalService.activateLoader();\r\n var entireData =\r\n this.importService.Import(\r\n this.importModel,\r\n this.importFormName\r\n );\r\n entireData.subscribe((res) => {\r\n if (res.isSuccess == true) {\r\n this.dialogRef.close({ controllerName: this.importFormName, response: res.response, \r\n type: parseInt( this.importFileType == undefined ? \"0\" : this.importFileType.toString()), isAppend : this.importModel.isAppend });\r\n } else {\r\n this.notificationService.errorpopup(res.message);\r\n }\r\n this.globalService.deactivateLoader();\r\n this.isLoading = false;\r\n });\r\n }\r\n else\r\n { \r\n const formData: FormData = new FormData();\r\n formData.append('file', this.file, this.file.name);\r\n this.isFileLoading = true;\r\n var entireData =\r\n this.importService.ImportTransaction(\r\n formData,\r\n this.importFormName\r\n );\r\n entireData.subscribe((res) => {\r\n if (res.isSuccess == true) {\r\n this.dialogRef.close({ controllerName: this.importFormName, response: res.response, \r\n type: parseInt( this.importFileType == undefined ? \"0\" : this.importFileType.toString()), isAppend : this.importModel.isAppend });\r\n } else {\r\n this.notificationService.errorpopup(res.message);\r\n }\r\n this.isFileLoading = false;\r\n this.globalService.deactivateLoader();\r\n this.isLoading = false;\r\n });\r\n // this.importLoop(0);\r\n }\r\n }\r\n\r\n importLoop(index) {\r\n if(index==0)\r\n this.importModel.delete = true;\r\n else\r\n this.importModel.delete = false;\r\n this.importModel.fileData = this.importModel.fileDataArray[index];\r\n const entireData = this.importService.Import(this.importModel, this.importFormName);\r\n \r\n entireData.subscribe((res) => {\r\n if (res.isSuccess == true) {\r\n this.progressPercent = ((index* 100) / this.importModel.fileDataArray.length) ;\r\n if(this.importModel.fileDataArray.length-1 == index)\r\n {\r\n this.isLoading = false;\r\n this.globalService.deactivateLoader();\r\n document.getElementById(\"titleForm\").click();\r\n this.dialogRef.close({ \r\n controllerName: this.importFormName, \r\n response: res.response, \r\n type: parseInt(this.importFileType == undefined ? \"0\" : this.importFileType.toString()), \r\n isAppend:this.importModel.isAppend \r\n });\r\n }\r\n // alert(index.toString() + \" out of \"+ this.importModel.fileDataArray.length.toString())\r\n \r\n } else {\r\n this.notificationService.errorpopup(res.message);\r\n }\r\n \r\n \r\n if (index < this.importModel.fileDataArray.length - 1) {\r\n this.importLoop(index + 1); // call importLoop again with the next index\r\n }\r\n });\r\n }\r\n\r\n convertToJSON(file: File): Promise {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n const data = new Uint8Array(e.target.result as ArrayBuffer);\r\n const workbook = XLSX.read(data, { type: 'array' });\r\n const sheetName = workbook.SheetNames[0];\r\n const worksheet = workbook.Sheets[sheetName];\r\n const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });\r\n this.sheetName = workbook.SheetNames;\r\n this.sheetNameModel.name = this.sheetName[0]\r\n this.sheetNameList.unshift(this.sheetNameModel)\r\n\r\n var result = [];\r\n var listOfJsons : string[]=[];\r\n var maxsize = 10000;\r\n\r\n if(this.importFormName == \"Transaction\")\r\n {\r\n this.UDFList = this.storageService.retrieve(\"UDFLIST\");\r\n var headers : any = jsonData[0] ;\r\n var countItems = 0;\r\n for (let i = 1; i < jsonData.length; i++) {\r\n \r\n const item = {};\r\n for (let j = 0; j < headers.length; j++) {\r\n const excelColumnName = headers[j];\r\n const agGridColumnName = this.UDFList?.filter(el => el.udfFieldName.toLowerCase() == excelColumnName.toLowerCase() && el.nStarTable == 'Transactions')[0]?.nStarUDFName ?? excelColumnName;\r\n item[agGridColumnName.replace(\" \",\"\")] = jsonData[i][j];\r\n }\r\n if(countItems == maxsize)\r\n {\r\n listOfJsons.push(JSON.stringify(result));\r\n result = [];\r\n countItems = 0;\r\n }\r\n result.push(item);\r\n countItems++;\r\n }\r\n }\r\n listOfJsons.push(JSON.stringify(result));\r\n document.getElementById(\"titleForm\").click();\r\n // this.isLoading = false;\r\n //this.importModel.fileDataArray = listOfJsons;\r\n resolve(listOfJsons);\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n }\r\n}\r\n//commited for temporary demo purpose as we needed old code for import\r\n// import {\r\n// Component,\r\n// EventEmitter,\r\n// Inject,\r\n// OnInit,\r\n// Output,\r\n// ViewChild\r\n// } from '@angular/core';\r\n// import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n// import { ImportService } from './import-popup.service';\r\n// import * as XLSX from 'xlsx';\r\n// import { GlobalService } from 'src/app/shared/services/global.service';\r\n// import { NotificationService } from 'src/app/shared/services/notification.service';\r\n// import { DropdownModel } from 'src/app/shared/model/common.model';\r\n// import { ImportFileModel, sheetNameList } from 'src/app/shared/component/page-header-import-form/page-header-import-form.model';\r\n// import { AgGridService } from 'src/app/shared/component/ag-grid/ag-grid.service';\r\n// import { StorageService } from 'src/app/shared/services/storage.service';\r\n// import { HttpClient } from '@angular/common/http';\r\n// @Component\r\n// (\r\n// {\r\n// selector: 'app-import-popup',\r\n// templateUrl: './import-popup.component.html',\r\n// styleUrls: ['./import-popup.component.scss']\r\n// }\r\n// )\r\n// export class ImportPopupComponent implements OnInit {\r\n// @Output() ServiceValue = new EventEmitter();\r\n// constructor(\r\n// private http: HttpClient,\r\n// public importService: ImportService,\r\n// public agGridService : AgGridService,\r\n// public globalService: GlobalService,\r\n// public storageService : StorageService,\r\n// public notificationService: NotificationService,\r\n// public dialogRef: MatDialogRef,\r\n// @Inject(MAT_DIALOG_DATA)\r\n// public data: any,\r\n// ) { }\r\n// importFileType: number;\r\n// importTypes: DropdownModel[];\r\n// sheetName: string[];\r\n// sheetNameModel = new sheetNameList();\r\n// sheetNameList: sheetNameList[] = [];\r\n// xsmlfile: string;\r\n// importModel = new ImportFileModel();\r\n// selectedVal: number;\r\n// importFormName: string;\r\n// isLoading : boolean = false;\r\n// isFileLoading : boolean = false;\r\n// isTransactionForm : boolean = false;\r\n// UDFList: any[];\r\n// progressPercent : number;\r\n// file : any;\r\n// ngOnInit(): void {\r\n// this.selectedVal = this.data.pageHeadeModel.showImportTypeForm;\r\n// this.importFormName = this.data.pageHeadeModel.controllerName;\r\n// this.importTypes = this.data.pageHeadeModel.importTypes;\r\n// if(this.importFormName == 'Transaction')\r\n// this.isTransactionForm = true;\r\n// else\r\n// this.isTransactionForm = false;\r\n// }\r\n// onAppend(isAppend : boolean){\r\n// this.importModel.isAppend = isAppend;\r\n// this.selectedVal=1;\r\n// }\r\n// onChangeOfType() {\r\n// this.importService.importType = this.importFileType\r\n// this.importModel.fileType=this.importFileType;\r\n// }\r\n// openFile() {\r\n// document.querySelector('input').click()\r\n// }\r\n// handle(e) {\r\n// }\r\n// handleUpload(event) \r\n// { \r\n// // this.isFileLoading = true;\r\n// // this.globalService.activateLoader();\r\n// this.xsmlfile = this.xsmlfile.toString().split(\"fakepath\\\\\")[1];\r\n// const file = event.target.files[0];\r\n// this.file = file;\r\n \r\n\r\n// // this.isLoading = true;\r\n// if(this.importFormName != \"Transaction\")\r\n// {\r\n// this.globalService.activateLoader();\r\n// const reader: FileReader = new FileReader();\r\n// reader.readAsDataURL(file);\r\n// reader.onload = (e: any) => {\r\n// /* create workbook */\r\n// const trimtext = \"data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,\";\r\n// const binarystr: string = e.target.result.substring(trimtext.length);\r\n// const wb: XLSX.WorkBook = XLSX.read(binarystr, { type: 'base64' });\r\n// /* selected the first sheet */\r\n// this.sheetName = wb.SheetNames;\r\n// this.isFileLoading = false;\r\n// this.globalService.deactivateLoader();\r\n// this.sheetNameModel.name = this.sheetName[0];\r\n// this.sheetNameList.unshift(this.sheetNameModel)\r\n// this.importModel.fileData = reader.result.toString();\r\n// document.getElementById(\"titleForm\").click();\r\n// };\r\n// }\r\n// }\r\n\r\n// async import() {\r\n// if(this.importFileType != undefined)\r\n// {\r\n// var controllerName = this.importTypes.filter(\r\n// (row) => row.id == this.importFileType.toString()\r\n// );\r\n// this.importModel.fileType=parseInt(this.importFileType.toString());\r\n// this.importFormName = controllerName[0].name.replace(\" \", \"\");\r\n// if (this.importFormName == \"StructuredFormat\" || this.importFormName == \"FlatFormat\")\r\n// this.importFormName = \"Transaction\";\r\n// }\r\n// if(this.importFormName != \"Transaction\")\r\n// {\r\n// this.isLoading = true;\r\n// this.globalService.activateLoader();\r\n// var entireData =\r\n// this.importService.Import(\r\n// this.importModel,\r\n// this.importFormName\r\n// );\r\n// entireData.subscribe((res) => {\r\n// if (res.isSuccess == true) {\r\n// this.dialogRef.close({ controllerName: this.importFormName, response: res.response, \r\n// type: parseInt( this.importFileType == undefined ? \"0\" : this.importFileType.toString()), isAppend : this.importModel.isAppend });\r\n// } else {\r\n// this.notificationService.errorpopup(res.message);\r\n// }\r\n// this.globalService.deactivateLoader();\r\n// this.isLoading = false;\r\n// });\r\n// }\r\n// else\r\n// {\r\n// const formData: FormData = new FormData();\r\n// formData.append('file', this.file, this.file.name);\r\n// var entireData =\r\n// this.importService.ImportTransaction(\r\n// formData,\r\n// this.importFormName\r\n// );\r\n// entireData.subscribe((res) => {\r\n// if (res.isSuccess == true) {\r\n// this.dialogRef.close({ controllerName: this.importFormName, response: res.response, \r\n// type: parseInt( this.importFileType == undefined ? \"0\" : this.importFileType.toString()), isAppend : this.importModel.isAppend });\r\n// } else {\r\n// this.notificationService.errorpopup(res.message);\r\n// }\r\n// this.globalService.deactivateLoader();\r\n// this.isLoading = false;\r\n// });\r\n// // this.importLoop(0);\r\n// }\r\n\r\n// }\r\n\r\n// importLoop(index) {\r\n// if(index==0)\r\n// this.importModel.delete = true;\r\n// else\r\n// this.importModel.delete = false;\r\n// this.importModel.fileData = this.importModel.fileDataArray[index];\r\n// const entireData = this.importService.Import(this.importModel, this.importFormName);\r\n \r\n// entireData.subscribe((res) => {\r\n// if (res.isSuccess == true) {\r\n// this.progressPercent = ((index* 100) / this.importModel.fileDataArray.length) ;\r\n// if(this.importModel.fileDataArray.length-1 == index)\r\n// {\r\n// this.isLoading = false;\r\n// this.globalService.deactivateLoader();\r\n// document.getElementById(\"titleForm\").click();\r\n// this.dialogRef.close({ \r\n// controllerName: this.importFormName, \r\n// response: res.response, \r\n// type: parseInt(this.importFileType == undefined ? \"0\" : this.importFileType.toString()), \r\n// isAppend:this.importModel.isAppend \r\n// });\r\n// }\r\n// // alert(index.toString() + \" out of \"+ this.importModel.fileDataArray.length.toString())\r\n \r\n// } else {\r\n// this.notificationService.errorpopup(res.message);\r\n// }\r\n \r\n \r\n// if (index < this.importModel.fileDataArray.length - 1) {\r\n// this.importLoop(index + 1); // call importLoop again with the next index\r\n// }\r\n// });\r\n// }\r\n\r\n// convertToJSON(file: File): Promise {\r\n// return new Promise((resolve, reject) => {\r\n// const reader = new FileReader();\r\n// reader.onload = (e: any) => {\r\n// const data = new Uint8Array(e.target.result as ArrayBuffer);\r\n// const workbook = XLSX.read(data, { type: 'array' });\r\n// const sheetName = workbook.SheetNames[0];\r\n// const worksheet = workbook.Sheets[sheetName];\r\n// const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });\r\n// this.sheetName = workbook.SheetNames;\r\n// this.sheetNameModel.name = this.sheetName[0]\r\n// this.sheetNameList.unshift(this.sheetNameModel)\r\n\r\n// var result = [];\r\n// var listOfJsons : string[]=[];\r\n// var maxsize = 10000;\r\n\r\n// if(this.importFormName == \"Transaction\")\r\n// {\r\n// this.UDFList = this.storageService.retrieve(\"UDFLIST\");\r\n// var headers : any = jsonData[0] ;\r\n// var countItems = 0;\r\n// for (let i = 1; i < jsonData.length; i++) {\r\n \r\n// const item = {};\r\n// for (let j = 0; j < headers.length; j++) {\r\n// const excelColumnName = headers[j];\r\n// const agGridColumnName = this.UDFList?.filter(el => el.udfFieldName.toLowerCase() == excelColumnName.toLowerCase() && el.nStarTable == 'Transactions')[0]?.nStarUDFName ?? excelColumnName;\r\n// item[agGridColumnName.replace(\" \",\"\")] = jsonData[i][j];\r\n// }\r\n// if(countItems == maxsize)\r\n// {\r\n// listOfJsons.push(JSON.stringify(result));\r\n// result = [];\r\n// countItems = 0;\r\n// }\r\n// result.push(item);\r\n// countItems++;\r\n// }\r\n// }\r\n// listOfJsons.push(JSON.stringify(result));\r\n// document.getElementById(\"titleForm\").click();\r\n// // this.isLoading = false;\r\n// //this.importModel.fileDataArray = listOfJsons;\r\n// resolve(listOfJsons);\r\n// };\r\n// reader.onerror = reject;\r\n// reader.readAsArrayBuffer(file);\r\n// });\r\n// }\r\n// }\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, tap } from 'rxjs';\r\nimport { ImportFileModel } from 'src/app/shared/component/page-header-import-form/page-header-import-form.model';\r\nimport { Result } from 'src/app/shared/model/response.model';\r\nimport { CommonTabService } from 'src/app/shared/services/common-tab.service';\r\nimport { DataService } from 'src/app/shared/services/data.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ImportService {\r\n constructor(private service: DataService,private commonTabService: CommonTabService) { }\r\n importType : number; \r\n public Import(importFileModel:ImportFileModel,formName : string):Observable \r\n {\r\n let userid = this.commonTabService.getUserid();\r\n importFileModel.importUserID = userid;\r\n let url='/'+formName.replace(\" \",\"\")+'Import/Import'; \r\n return this.service.post(url,importFileModel,true).pipe(tap((response:any) => {\r\n return response;\r\n }));\r\n }\r\n\r\n public ImportTransaction(importFileModel:any,formName : string):Observable \r\n {\r\n let url = '/' + formName.replace(\" \", \"\") + `Import/Import`;\r\n return this.service.postWithFormData(url,importFileModel,true).pipe(tap((response:any) => {\r\n return response;\r\n }));\r\n }\r\n public validate(formName : string,isAddNew : boolean, isAppend : boolean, isOverride : boolean= false):Observable\r\n {\r\n var roleId = this.commonTabService.getRoleid();\r\n let url='/'+formName.replace(\" \",\"\")+'/Validate?isAddNew='+ (isAddNew == undefined ? false : isAddNew) + '&isAppend='+(isAppend == undefined ? false : isAppend) + '&isOverride='+isOverride + '&roleId='+roleId;\r\n return this.service.get(url).pipe(tap((response:any)=>{\r\n return response;\r\n }));\r\n }\r\n public commit(formName : string,isAddNew : boolean, isAppend : boolean, isOverride : boolean= false):Observable\r\n {\r\n var roleId = this.commonTabService.getRoleid();\r\n let userid = this.commonTabService.getUserid();\r\n let url='/'+formName.replace(\" \",\"\")+'/Commit?isAddNew='+ (isAddNew == undefined ? false : isAddNew) + '&isAppend='+(isAppend == undefined ? false : isAppend) + '&isOverride='+isOverride+'&importUserIdPost='+ userid+ '&roleId='+roleId;\r\n return this.service.get(url).pipe(tap((response:any)=>{\r\n return response;\r\n }));\r\n }\r\n\r\n public delete(formName : string):Observable\r\n {\r\n let userid = this.commonTabService.getUserid();\r\n let url='/'+formName.replace(\" \",\"\")+'/delete';\r\n return this.service.get(url).pipe(tap((response:any)=>{\r\n return response;\r\n }));\r\n }\r\n}\r\n ","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nconst routes: Routes = [];\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class LockUnlockRecordsRoutingModule { }\r\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { NotificationService } from 'src/app/shared/services/notification.service';\r\n@Component({\r\n selector: 'app-lock-unlock-records',\r\n templateUrl: './lock-unlock-records.component.html',\r\n styleUrls: ['./lock-unlock-records.component.scss']\r\n})\r\nexport class LockUnlockRecordsComponent implements OnInit {\r\n lockFromDate: Date;\r\n @Output() lockProcess = new EventEmitter();\r\n constructor(private notificationService: NotificationService) { }\r\n ngOnInit(): void {\r\n // MatFormFieldModule\r\n }\r\n islocked: boolean = true;\r\n lockRecords(value) {\r\n this.islocked = value;\r\n }\r\n \r\n onProcess() {\r\n // console.log({\r\n // isLocked: this.islocked, lockedFrom: this.lockFromDate\r\n // })\r\n if (!this.lockFromDate) {\r\n this.notificationService.warningpopup(\"Please enter locked from date to procced!\")\r\n return false;\r\n }\r\n this.lockProcess.emit({\r\n isLocked: this.islocked, lockedFrom: this.lockFromDate\r\n })\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LockUnlockRecordsRoutingModule } from './lock-unlock-records-routing.module';\r\nimport { LockUnlockRecordsComponent } from './lock-unlock-records.component';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [\r\n LockUnlockRecordsComponent,\r\n \r\n ],\r\n imports: [\r\n CommonModule,\r\n LockUnlockRecordsRoutingModule,\r\n MatFormFieldModule,\r\n SharedModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n FormsModule\r\n \r\n \r\n ]\r\n})\r\nexport class LockUnlockRecordsModule { }\r\n","import { StorageService } from './../../shared/services/storage.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AppSettings } from 'src/app/app.settings';\r\nimport { Settings } from 'src/app/app.settings.model';\r\nimport { NotificationService } from 'src/app/shared/services/notification.service';\r\nimport { LoginRequestModel } from './login.model';\r\nimport { LoginService } from './login.service';\r\nimport { StorageName } from 'src/app/shared/common/enum';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit, OnDestroy {\r\n\r\n submitted = false;\r\n returnUrl: string;\r\n\r\n public settings: Settings;\r\n\r\n private _postLoginSubscription!: Subscription;\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private fb: FormBuilder,\r\n public appSettings: AppSettings,\r\n public loginService: LoginService,\r\n public notificationService: NotificationService,\r\n public storageService:StorageService\r\n ) {\r\n this.settings = this.appSettings.settings;\r\n\r\n // redirect to home if already logged in\r\n if (this.loginService.currentUserValue && this.loginService.currentUserValue.isQueSet == true) {\r\n this.router.navigate(['/']);\r\n }\r\n }\r\n\r\n form = this.fb.group({\r\n userName: ['', Validators.required],\r\n password: ['', Validators.required],\r\n });\r\n\r\n ngOnInit(): void {\r\n // this.settings.loadingSpinner = false;\r\n\r\n\r\n // get return url from route parameters or default to '/'\r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.settings.loadingSpinner = false;\r\n }, 300);\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.form.controls; }\r\n\r\n onclickForgetPassword() {\r\n this.router.navigate(['/login/forgetpassword']);\r\n }\r\n\r\n onSubmit() {\r\n this.submitted = true;\r\n\r\n if (this.form.valid) {\r\n //console.warn(this.form.value);\r\n\r\n var model = new LoginRequestModel();\r\n\r\n \r\n model.userName = this.form.value.userName;\r\n model.password = this.form.value.password;\r\n\r\n this._postLoginSubscription = this.loginService.postLogin(model).subscribe((res) => {\r\n //this.globalService.deactivateLoader();\r\n if (res.isSuccess) {\r\n //this.notificationService.warningpopup('login success');\r\n if (res.response.loginUserDataModel.isQueSet) {\r\n \r\n this.storageService.store(StorageName.CURRENTUSER,res.response.loginUserDataModel);\r\n this.router.navigate([this.returnUrl]);\r\n }\r\n else {\r\n if (this.returnUrl == '/') {\r\n this.router.navigate(['/login/question']);\r\n }\r\n else {\r\n this.router.navigate(['/login/question'], { queryParams: { returnUrl: this.returnUrl } });\r\n }\r\n }\r\n } else {\r\n this.notificationService.warningpopup(res.message);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._postLoginSubscription) {\r\n this._postLoginSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { DropdownModel } from \"src/app/shared/model/common.model\";\r\nimport { PermissionsModel } from \"../Administration/permissions/permissions.model\";\r\nexport class LoginRequestModel \r\n{\r\n userName : string;\r\n password : string;\r\n}\r\n\r\nexport class LoginUserDataModel \r\n{\r\n id : number;\r\n userName : string;\r\n email : string;\r\n isQueSet : boolean;\r\n roleId : number;\r\n permissions : PermissionsModel;\r\n}\r\n\r\nexport class QueAnsRequestModel \r\n{\r\n id : number;\r\n question1Id : number;\r\n answer1 : string;\r\n question2Id : number;\r\n answer2 : string;\r\n question3Id : number;\r\n answer3 : string;\r\n}\r\n\r\nexport class ResetPwdRequestModel \r\n{\r\n resetlink : string;\r\n newpassword : string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, tap } from 'rxjs';\r\nimport { StorageName } from 'src/app/shared/common/enum';\r\nimport { Result } from 'src/app/shared/model/response.model';\r\nimport { DataService } from 'src/app/shared/services/data.service';\r\nimport { StorageService } from 'src/app/shared/services/storage.service';\r\nimport { LoginRequestModel, LoginUserDataModel, QueAnsRequestModel, ResetPwdRequestModel } from './login.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoginService {\r\n private currentUserSubject: BehaviorSubject;\r\n public currentUser: Observable;\r\n\r\n constructor(\r\n private service: DataService,\r\n private storageService: StorageService\r\n ) {\r\n let initialUser = this.storageService.retrieve(StorageName.CURRENTUSER);\r\n this.currentUserSubject = new BehaviorSubject(initialUser);\r\n this.currentUser = this.currentUserSubject.asObservable();\r\n }\r\n\r\n public get currentUserValue(): LoginUserDataModel {\r\n return this.currentUserSubject.value;\r\n }\r\n\r\n public postLogin(model:LoginRequestModel):Observable \r\n {\r\n this.storageService.removeItem(StorageName.LASTACTIVITYTIME);\r\n let url='/Login/login';\r\n return this.service.post(url,model,true).pipe(tap((response:any) => {\r\n // login successful if there's a jwt token in the response\r\n //if (user && user.token) {\r\n if (response && response.isSuccess) {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n this.storageService.store(StorageName.CURRENTUSER, response.response.loginUserDataModel);\r\n var IsAuthenticated = this.storageService.store(StorageName.Authenticated,true);\r\n this.currentUserSubject.next(response.response.loginUserDataModel);\r\n }\r\n return response;\r\n }));\r\n }\r\n public getQuestionslist(): Observable {\r\n let url ='/Login/getQuestionsList';\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n\r\n\r\n public postQueAns(model:QueAnsRequestModel):Observable \r\n {\r\n let url='/Login/postQuestionsData';\r\n return this.service.post(url,model,true).pipe(tap((response:any) => {\r\n // login successful if there's a jwt token in the response\r\n //if (user && user.token) {\r\n if (response && response.isSuccess) {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n let userdata = this.storageService.retrieve(StorageName.CURRENTUSER);\r\n userdata.isQueSet = true;\r\n this.storageService.store(StorageName.CURRENTUSER, userdata);\r\n this.currentUserSubject.next(userdata);\r\n }\r\n return response;\r\n }));\r\n }\r\n\r\n public logout() {\r\n // remove user from local storage to log user out\r\n this.storageService.removeItem(StorageName.CURRENTUSER);\r\n this.storageService.removeItem(StorageName.LASTACTIVITYTIME);\r\n this.currentUserSubject.next(null);\r\n }\r\n\r\n public getQuestionsByUserName(userName):Observable \r\n {\r\n let url = \"/Login/getQuestionsByUserName?userName=\" + userName;\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n\r\n public postSendLink(model:QueAnsRequestModel):Observable \r\n {\r\n let url='/Login/postSendLink';\r\n return this.service.post(url,model,true).pipe(tap((response:any) => {\r\n return response;\r\n }));\r\n }\r\n\r\n public checkResetLink(link):Observable \r\n {\r\n let url = \"/Login/checkResetLink?link=\" + link;\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n\r\n public postResetPassword(model:ResetPwdRequestModel):Observable \r\n {\r\n let url='/Login/postResetPassword';\r\n return this.service.post(url,model,true).pipe(tap((response:any) => {\r\n return response;\r\n }));\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n HostListener,\r\n ViewChildren,\r\n QueryList,\r\n OnDestroy,\r\n Inject,\r\n ChangeDetectorRef,\r\n} from \"@angular/core\";\r\nimport { Router, NavigationEnd, RouterEvent } from \"@angular/router\";\r\nimport { PerfectScrollbarDirective } from \"ngx-perfect-scrollbar\";\r\nimport { filter, Subject, Subscription, takeUntil } from \"rxjs\";\r\nimport { AppSettings } from \"../app.settings\";\r\nimport { Settings } from \"../app.settings.model\";\r\nimport { GlobalService } from \"../shared/services/global.service\";\r\nimport { StorageService } from \"../shared/services/storage.service\";\r\nimport { Menu } from \"../theme/components/menu/menu.model\";\r\nimport { MenuService } from \"../theme/components/menu/menu.service\";\r\nimport { SidenavComponent } from \"../theme/components/sidenav/sidenav.component\";\r\n\r\n@Component({\r\n selector: \"app-pages\",\r\n templateUrl: \"./pages.component.html\",\r\n styleUrls: [\"./pages.component.scss\"],\r\n providers: [MenuService],\r\n})\r\nexport class PagesComponent implements OnInit, OnDestroy {\r\n @ViewChild(\"sidenav\") sidenav: any;\r\n @ViewChild(\"backToTop\") backToTop: any;\r\n @ViewChild(SidenavComponent) childSidenav: SidenavComponent;\r\n @ViewChildren(PerfectScrollbarDirective)\r\n pss: QueryList;\r\n\r\n public settings: Settings;\r\n public menuOption: string;\r\n public menuTypeOption: string;\r\n public lastScrollTop: number = 0;\r\n public showBackToTop: boolean = false;\r\n public toggleSearchBar: boolean = false;\r\n private defaultMenu: string; //declared for return default menu when window resized\r\n\r\n public menus = [\"vertical\", \"horizontal\"];\r\n public menuTypes = [\"default\", \"compact\", \"mini\"];\r\n\r\n public destroy$: Subject = new Subject();\r\n private currentUrl: string = '';\r\n private clickedMenu: boolean = false;\r\n private menuData: Menu;\r\n\r\n private _unsubscribeOnDestroy$: Subject = new Subject();\r\n isLoading: boolean = false;\r\n\r\n private _routereventpipeSubscription!: Subscription;\r\n private _routereventSubscription!: Subscription;\r\n private _isActivatedLoaderSubscription!: Subscription;\r\n\r\n constructor(\r\n public appSettings: AppSettings,\r\n @Inject(Router) public router: Router,\r\n public storageservice: StorageService,\r\n private globalService: GlobalService,\r\n private crf: ChangeDetectorRef\r\n ) {\r\n this.settings = this.appSettings.settings;\r\n this._routereventpipeSubscription = this.router.events.pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationEnd),\r\n takeUntil(this.destroy$)\r\n ).subscribe((ev) => {\r\n this.currentUrl = decodeURI(ev.url);\r\n if (this.clickedMenu) {\r\n this.clickedMenu = false;\r\n if (ev.url.toLowerCase().includes(this.menuData.routerLink.toLowerCase())) {\r\n this.onClickMenuItemfn(this.menuData);\r\n }\r\n }\r\n\r\n // Put settimeout because we need to call function to appear vertical menu after initialization of view\r\n setTimeout(() => {\r\n setTimeout(() => {\r\n this.settings.loadingSpinner = false;\r\n }, 300);\r\n if (this.currentUrl) {\r\n let menu = this.childSidenav.getMenuByRouteUrl(this.currentUrl);\r\n if (menu) {\r\n this.onClickMenuItemfn(menu);\r\n }\r\n }\r\n this._routereventSubscription = this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n if (!this.settings.sidenavIsPinned) {\r\n this.sidenav.close();\r\n }\r\n if (window.innerWidth <= 768) {\r\n this.sidenav.close();\r\n }\r\n }\r\n });\r\n }, 800);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (window.innerWidth <= 768) {\r\n this.settings.menu = \"vertical\";\r\n this.settings.sidenavIsOpened = false;\r\n this.settings.sidenavIsPinned = false;\r\n }\r\n this.menuOption = this.settings.menu;\r\n this.defaultMenu = this.settings.menu;\r\n\r\n this._isActivatedLoaderSubscription = this.globalService.isActivatedLoader$.pipe(takeUntil(this._unsubscribeOnDestroy$)).subscribe((active) => {\r\n this.isLoading = active;\r\n this.crf.detectChanges();\r\n });\r\n }\r\n\r\n onClickMenuItem(ev) {\r\n this.clickedMenu = true;\r\n this.menuData = ev;\r\n }\r\n\r\n onClickMenuItemfn(ev) {\r\n this.childSidenav?.openVerticalMenu(ev.id);\r\n this.settings.allowSidenav = ev.allowSideBar;\r\n this.settings.menu = ev.title;\r\n // if (!this.childSidenav?.openVerticalMenu(menuId)) {\r\n // this.sidenav.close();\r\n // this.toggleSideMenuIsClickable = false;\r\n // } else {\r\n // this.sidenav.open();\r\n // this.toggleSideMenuIsClickable = true;\r\n // }\r\n }\r\n\r\n\r\n public chooseMenu() {\r\n this.settings.menu = this.menuOption;\r\n this.defaultMenu = this.menuOption;\r\n this.router.navigate([\"/\"]);\r\n }\r\n\r\n public chooseMenuType() {\r\n this.settings.menuType = this.menuTypeOption;\r\n }\r\n\r\n public changeTheme(theme) {\r\n this.settings.theme = theme;\r\n }\r\n\r\n public toggleSidenav() {\r\n this.sidenav.toggle();\r\n }\r\n\r\n public onPsScrollY(event) {\r\n if (this.backToTop) {\r\n event.target.scrollTop > 300\r\n ? (this.backToTop.nativeElement.style.display = \"flex\")\r\n : (this.backToTop.nativeElement.style.display = \"none\");\r\n }\r\n if (this.settings.menu == \"horizontal\") {\r\n if (this.settings.fixedHeader) {\r\n var currentScrollTop =\r\n event.target.scrollTop > 56 ? event.target.scrollTop : 0;\r\n if (currentScrollTop > this.lastScrollTop) {\r\n document.querySelector(\"#horizontal-menu\").classList.add(\"sticky\");\r\n event.target.classList.add(\"horizontal-menu-hidden\");\r\n } else {\r\n document.querySelector(\"#horizontal-menu\").classList.remove(\"sticky\");\r\n event.target.classList.remove(\"horizontal-menu-hidden\");\r\n }\r\n this.lastScrollTop = currentScrollTop;\r\n } else {\r\n if (event.target.scrollTop > 56) {\r\n document.querySelector(\"#horizontal-menu\").classList.add(\"sticky\");\r\n event.target.classList.add(\"horizontal-menu-hidden\");\r\n } else {\r\n document.querySelector(\"#horizontal-menu\").classList.remove(\"sticky\");\r\n event.target.classList.remove(\"horizontal-menu-hidden\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n public scrollToTop() {\r\n this.pss.forEach((ps) => {\r\n if (\r\n ps.elementRef.nativeElement.id == \"main\" ||\r\n ps.elementRef.nativeElement.id == \"main-content\"\r\n ) {\r\n ps.scrollToTop(0, 250);\r\n }\r\n });\r\n }\r\n\r\n @HostListener(\"window:resize\")\r\n public onWindowResize(): void {\r\n if (window.innerWidth <= 768) {\r\n this.settings.sidenavIsOpened = false;\r\n this.settings.sidenavIsPinned = false;\r\n this.settings.menu = \"vertical\";\r\n } else {\r\n this.defaultMenu == \"horizontal\"\r\n ? (this.settings.menu = \"horizontal\")\r\n : (this.settings.menu = \"vertical\");\r\n this.settings.sidenavIsOpened = true;\r\n this.settings.sidenavIsPinned = true;\r\n }\r\n }\r\n\r\n public closeSubMenus() {\r\n let menu = document.querySelector(\".sidenav-menu-outer\");\r\n if (menu) {\r\n for (let i = 0; i < menu.children[0].children.length; i++) {\r\n let child = menu.children[0].children[i];\r\n if (child) {\r\n if (child.children[0].classList.contains(\"expanded\")) {\r\n child.children[0].classList.remove(\"expanded\");\r\n child.children[1].classList.remove(\"show\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._routereventpipeSubscription) {\r\n this._routereventpipeSubscription.unsubscribe();\r\n }\r\n\r\n if (this._routereventSubscription) {\r\n this._routereventSubscription.unsubscribe();\r\n }\r\n\r\n if (this._isActivatedLoaderSubscription) {\r\n this._isActivatedLoaderSubscription.unsubscribe();\r\n }\r\n\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { DataService } from 'src/app/shared/services/data.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResetFilterCalcRuleService {\r\n isResetFilter = new EventEmitter();\r\n \r\n constructor(private service: DataService) { }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nconst routes: Routes = [];\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ResetFilterCalcRuleRoutingModule { }\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n DatatableComponent,\r\n SelectionType\r\n} from '@swimlane/ngx-datatable';\r\nimport { AppSettings } from 'src/app/app.settings';\r\nimport { Settings } from 'src/app/app.settings.model';\r\nimport {\r\n MatDialogRef,\r\n MAT_DIALOG_DATA\r\n} from '@angular/material/dialog';\r\nimport { CommonFilter, CommonFilterModel, FilterModel } from 'src/app/shared/model/response.model';\r\nimport { ResetFilterCalcRuleService } from '../reset-filter-calc-rule.service'\r\nimport { StorageService } from 'src/app/shared/services/storage.service';\r\nimport { ColDef, GridApi } from 'ag-grid-community';\r\nimport { ICustomHeaderParams } from 'src/app/shared/component/custome-header/custome-header.interface';\r\nimport { CustomeHeaderComponent } from 'src/app/shared/component/custome-header/custome-header.component';\r\nimport { FilterService } from 'src/app/shared/component/filter/filter.service';\r\n\r\n@Component({\r\n selector: 'app-reset-filter-calc-rule',\r\n templateUrl: './reset-filter-calc-rule.component.html',\r\n styleUrls: ['./reset-filter-calc-rule.component.scss']\r\n})\r\nexport class ResetFilterCalcRuleComponent implements OnInit {\r\n components: {\r\n [p: string]: any;\r\n } = {\r\n agColumnHeader: CustomeHeaderComponent,\r\n };\r\n public columnDefs: ColDef[] = [\r\n {\r\n field: '',\r\n width:40,\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n },\r\n { field: 'name',\r\n width:385,\r\n headerComponentParams:{\r\n displayName:this.rowsDataSource.colName,\r\n popUpfloatingFilter:true,\r\n }as ICustomHeaderParams\r\n },\r\n ];\r\n public rowSelection = 'multiple';\r\n public rowsData:FilterModel[];\r\n selected = [];\r\n gridApi:GridApi;\r\n onFilterCompleted = new EventEmitter();\r\n // new Changes\r\n @Input() column: string = \"\";\r\n @Input() filteredData: CommonFilterModel[] = [];\r\n @Output() onFilter = new EventEmitter();\r\n // new Changes\r\n @ViewChild(DatatableComponent) table: DatatableComponent;\r\n filterTitle: string;\r\n // columnHeader : string;\r\n isvalue: boolean;\r\n columnData: string = \"\";\r\n isFilterIconColor: boolean;\r\n constructor(\r\n public appSettings: AppSettings,\r\n public storageservice: StorageService,\r\n public ResetFilterCalcRuleService: ResetFilterCalcRuleService,\r\n public filterService: FilterService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public rowsDataSource: any,\r\n ) { \r\n }\r\n rows: any[] = [];\r\n // filteredData : CommonFilterModel[]=[]\r\n rowsModel = new FilterModel();\r\n selectedDate:any;\r\n showDatepicker: boolean = false;\r\n temp: FilterModel[] = [];\r\n loadingIndicator: boolean = true;\r\n reorderable: boolean = true;\r\n isDateFilterShow: boolean = false;\r\n public settings: Settings;\r\n editing = {};\r\n \r\n SelectionType = SelectionType;\r\n\r\n ngOnInit(): void {\r\n this.filterService.emitHeaderInputValue.subscribe(res=>{\r\n this.columnData = res;\r\n this.filterByAll();\r\n })\r\n \r\n let nullEmptyObject = new FilterModel();\r\n nullEmptyObject.id = '-1';\r\n nullEmptyObject.name = 'Null/(empty)';\r\n this.rowsData = this.rowsDataSource.data.sort((a,b)=> 0 - (a.name.toLowerCase() > b.name.toLowerCase() ? -1 : 1)); \r\n this.rowsData.unshift(nullEmptyObject);\r\n this.filterTitle = this.rowsDataSource.colName + ' Filter';\r\n this.isDateFilterShow = this.rowsDataSource.isDateFilterShow;\r\n }\r\n onGridReady(params) {\r\n var getStorageData = this.storageservice.retrieve(this.rowsDataSource.filterStorageName)\r\n var getSelectedFilterData = getStorageData?.filter(col=>col.name == this.rowsDataSource.valueColumnName)\r\n this.gridApi = params.api;\r\n if(getSelectedFilterData != undefined)\r\n getSelectedFilterData[0]?.FilterData?.forEach((element)=>{\r\n let index = this.rowsData.findIndex(row=>row.id == element.id && row.name == element.name)\r\n this.gridApi.getRowNode(index.toString()).selectThisNode(true);\r\n })\r\n }\r\n onClearFilter() {\r\n this.gridApi.deselectAll();\r\n var getStorageData = this.storageservice.retrieve(this.rowsDataSource.filterStorageName);\r\n var index = getStorageData?.findIndex(col=>col.name == this.rowsDataSource.valueColumnName);\r\n getStorageData.splice(index,1);\r\n this.storageservice.store(this.rowsDataSource.filterStorageName,getStorageData);\r\n this.filter();\r\n }\r\n onResetDateFilter(){\r\n var getStorageData = this.storageservice.retrieve(this.rowsDataSource.filterStorageName);\r\n var index = getStorageData?.findIndex(col=>col.name == this.rowsDataSource.valueColumnName);\r\n getStorageData.splice(index,1);\r\n this.storageservice.store(this.rowsDataSource.filterStorageName,getStorageData);\r\n this.selectedDate = undefined;\r\n this.filter();\r\n }\r\n filter() {\r\n var filterdate =\"\";\r\n \r\n if(this.selectedDate != undefined){\r\n const date = this.selectedDate._i.date;\r\n const month = this.selectedDate._i.month + 1; // Add 1 since the month value is zero-based\r\n const year = this.selectedDate._i.year;\r\n console.log(this.selectedDate);\r\n filterdate = month.toString()+\"/\"+date.toString()+\"/\" + year.toString()\r\n }\r\n var commonfilter = new CommonFilter();\r\n commonfilter.textFilterValue =filterdate;\r\n this.selected = this.gridApi!=undefined? this.gridApi.getSelectedRows() : [];\r\n commonfilter.tableFilterValues =this.selected;\r\n if(this.selected.length == this.rowsData.length){ \r\n this.onClearFilter();\r\n }\r\n else{\r\n this.onFilter.emit(commonfilter);\r\n }\r\n\r\n this.dialogRef.close(); \r\n }\r\n filterByAll() {\r\n let rowsData: FilterModel[] = this.rowsDataSource.data;\r\n if (this.columnData?.length > 0) {\r\n var searchTextRegx = \"^\" + this.columnData.toLowerCase() + \"$\";\r\n var searchText = searchTextRegx.substring(0,searchTextRegx.length-1);\r\n rowsData = this.rowsDataSource.data.filter(a => a.name?.toLowerCase().match(searchText));\r\n this.rowsData = [];\r\n this.rowsData = rowsData;\r\n }\r\n else {\r\n this.rowsData = [];\r\n this.rowsData = rowsData;\r\n }\r\n }\r\n\r\n onSelect(event){\r\n\r\n\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nconst routes: Routes = [];\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class SearchFilterRoutingModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { MatOption } from '@angular/material/core';\r\n@Component({\r\n selector: 'app-search-filter',\r\n templateUrl: './search-filter.component.html',\r\n styleUrls: ['./search-filter.component.scss']\r\n})\r\nexport class SearchFilterComponent implements OnInit {\r\n searchUserForm: FormGroup;\r\n \r\n userTypeFilters = [\r\n {\r\n key: 1, value: 'Value 1',\r\n },\r\n {\r\n key: 2, value: 'Value 2',\r\n },\r\n {\r\n key: 3, value: 'Value 3',\r\n },\r\n {\r\n key: 4, value: 'Value 4',\r\n }\r\n ];\r\n userType = [\r\n {\r\n key: 1, value: 'Value 1',\r\n },\r\n {\r\n key: 2, value: 'Value 2',\r\n },\r\n {\r\n key: 3, value: 'Value 3',\r\n },\r\n {\r\n key: 4, value: 'Value 4',\r\n }\r\n ];\r\n Datedata = [\r\n {\r\n key: 1, value: '<',\r\n },\r\n {\r\n key: 2, value: '<=',\r\n },\r\n {\r\n key: 3, value: '>',\r\n },\r\n {\r\n key: 4, value: '>=',\r\n },\r\n {\r\n key: 4, value: 'Equal',\r\n },\r\n {\r\n key: 4, value: 'Bettwen',\r\n }\r\n ];\r\n \r\n toppingList: string[] = [ 'Extra cheese', 'Mushroom', 'Onion', 'Pepperoni', 'Sausage', 'Tomato'];\r\n\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n constructor(private fb: FormBuilder){}\r\n \r\n toppings = new FormControl();\r\n ngOnInit() {\r\n this.searchUserForm = this.fb.group({\r\n userType: new FormControl('')\r\n });\r\n }\r\n\r\ntosslePerOne(all){ \r\n if (this.allSelected.selected) { \r\n this.allSelected.deselect();\r\n return false;\r\n}\r\n if(this.searchUserForm.controls.userType.value.length==this.userTypeFilters.length)\r\n this.allSelected.select();\r\n}\r\n toggleAllSelection() {\r\n if (this.allSelected.selected)\r\n {\r\n this.searchUserForm.controls.userType\r\n .patchValue([...this.userTypeFilters.map(item => item.key), 0]);\r\n }\r\n else {\r\n this.searchUserForm.controls.userType.patchValue([]);\r\n }\r\n }\r\n\r\n checks: boolean=false;\r\n bulk(e){\r\n if(e.target.checked==true){\r\n this.checks == true;\r\n }\r\n else{\r\n this.checks == false;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SearchFilterRoutingModule } from './search-filter-routing.module';\r\nimport { SearchFilterComponent } from './search-filter.component';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n SearchFilterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SearchFilterRoutingModule,\r\n SharedModule,\r\n ]\r\n})\r\nexport class SearchFilterModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, \r\n tap } from 'rxjs';\r\nimport { Operations } from 'src/app/shared/model/filter.model';\r\nimport { Result } from 'src/app/shared/model/response.model';\r\nimport { CommonTabService } from 'src/app/shared/services/common-tab.service';\r\nimport { DataService } from 'src/app/shared/services/data.service';\r\nimport { PostTransactionLockEntry, TransactionFilterCriteriaModel, TransactionPaginationModel } from './tier-transactions.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TierTransactionService {\r\n rows : any;\r\n constructor(private service: DataService,private commonTabService: CommonTabService) { }\r\n DeleteTransactionByFilter(data): Observable {\r\n let url = \"/Transaction/DeleteTransactionByFilter\";\r\n return this.service.post(url, data, true).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n postFilterCriteria(transactionFilterCriteria: TransactionFilterCriteriaModel): Observable {\r\n let url = '/Transaction/PostTransactionFilterCriteria';\r\n return this.service.post(url, transactionFilterCriteria, true).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n GetInvestors(fundId, vehicleInvestorId): Observable {\r\n let url = '/Transaction/getInvestor?FundId=' + fundId + \"&vehicleInvestorId=\" + vehicleInvestorId;\r\n return this.service.get(url).pipe(\r\n tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n GetInvestorVehicle(fundId, investorId): Observable {\r\n //getGridInvestorGroupByIdListFilter\r\n let url = '/Transaction/getInvestorGroup?FundId=' + fundId + \"&investorId=\" + investorId;\r\n return this.service.get(url).pipe(\r\n tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n GetPosition(fundId, investmentId): Observable {\r\n let url = \"/Transaction/getPosition?FundId=\" + fundId + \"&investmentId=\" + investmentId;\r\n return this.service.get(url).pipe(\r\n tap((response: any) => {\r\n return response;\r\n })\r\n )\r\n }\r\n GetInvestment(fundId, positionId): Observable {\r\n let url = '/Transaction/getInvestment?FundId=' + fundId + \"&positionId=\" + positionId;\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n getExtraColumn(): Observable {\r\n let url = \"/Transaction/GetExtraColumns?tableName=Transactions\";\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n //for pulling the filter records by fund id\r\n getGridFilterRecords(fundId) {\r\n let url = \"/Transaction/GetGridFilterRecords?FundId=\" + fundId;\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public postTransactionLock(postTransactionLockEntry: PostTransactionLockEntry): Observable {\r\n \r\n let url = \"/Transaction/PostTransactionLockEntry\"\r\n return this.service.post(url, postTransactionLockEntry, true).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n transactionFilterCriteria(filterId): Observable {\r\n let roleid = this.commonTabService.getRoleid();\r\n let url = '/Transaction/GetTransactionFilterCriteria?FilterId=' + filterId + '&roleid='+ roleid;\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n public getDataWithPagination(transactionList : TransactionPaginationModel,controllerName : string):Observable\r\n {\r\n let url='/Transaction/Get'+controllerName.replace(' ','');\r\n return this.service.post(url,transactionList).pipe(tap((response:any)=>{\r\n return response;\r\n }))\r\n }\r\n\r\n public getTransactionImportDataWithPagination(transactionList : TransactionPaginationModel,controllerName : string):Observable\r\n {\r\n let roleid = this.commonTabService.getRoleid();\r\n transactionList.roleId = roleid;\r\n let url='/TransactionImport/Get';\r\n return this.service.post(url,transactionList).pipe(tap((response:any)=>{\r\n return response;\r\n }))\r\n }\r\n public modifyFilter(filters, data, field, operation, fromPopup : boolean) {\r\n if (!data) {\r\n return filters;\r\n }\r\n var group, values;\r\n if (operation === null || operation === undefined || operation === \"\") {\r\n operation = Operations.eq;\r\n }\r\n if (field == \"PtrTrans\") {\r\n if (data !== null && data !== undefined && data !== \"\") {\r\n filters.rules.push({\r\n data: data,\r\n op: Operations.eq,\r\n field: field\r\n });\r\n }\r\n }\r\n else {\r\n if (field === \"TransactionDate\" || field === \"FromDate\" || field === \"ToDate\" || field === \"DistIncomeNum\"\r\n || field === \"journalId\" || field === \"subJournalId\") {\r\n if (data !== null && data !== undefined && data !== \"\") {\r\n filters.rules.push({\r\n data: data,\r\n op: operation,\r\n field: field\r\n });\r\n }\r\n } else {\r\n values = data.split(\",\");\r\n if (values.length <= 1 && fromPopup == false) {\r\n if (values[0] !== \"\") {\r\n data = values[0];\r\n if (data !== null && data !== undefined) {\r\n filters.rules.push({\r\n data: data,\r\n op: operation,\r\n field: field\r\n });\r\n }\r\n }\r\n } else {\r\n group = {\r\n groupOp: \"OR\",\r\n rules: []\r\n };\r\n filters.groups.push(group);\r\n for (var i = 0; i < values.length; i++) {\r\n var fund = values[i];\r\n if (fund !== null && fund !== undefined && fund !== \"\") {\r\n group.rules.push({\r\n data: fund,\r\n op: operation,\r\n field: field\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return filters;\r\n }\r\n GetAllInvestors(): Observable {\r\n let url = '/Investor/getInvestorList';\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n GetAllInvestorVehicle(): Observable {\r\n let url = '/VehicleInvestor/getAllInvestorVehicle';\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n GetAllInvestment(): Observable {\r\n let url = '/Transaction/GetInvestmentList';\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n GetAllPosition(): Observable {\r\n let url = \"/Position/getPositionList\"\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n GetAllTier(): Observable {\r\n let url = \"/Transaction/getTierList\"\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n GetAllCalcStatus(): Observable {\r\n let url = \"/CalcStatus/getAllCalcStatus\"\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }));\r\n }\r\n\r\n deleteTransactionImportRecords(): Observable {\r\n let url = \"/TransactionImport/Delete\"\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n \r\n}\r\n\r\n","import { sort } from \"src/app/shared/component/sort/sort.model\";\r\nimport { DropdownModel } from \"src/app/shared/model/common.model\";\r\nimport { PaginationModelCommon } from \"src/app/shared/model/pagination.model\";\r\nexport class TransactionDropdownListModel\r\n{\r\n fundDropdown : DropdownModel[];\r\n vehicleInvestorDropdown : DropdownModel[];\r\n investorDropdown : DropdownModel[];\r\n investmentDropdown : DropdownModel[];\r\n positionDropdown : DropdownModel[];\r\n tierDropdown : DropdownModel[];\r\n transactionFilterDropdown : DropdownModel[];\r\n}\r\nexport class PaginationModel extends PaginationModelCommon\r\n{\r\n investorId: number;\r\n selectedIds: number[];\r\n showColumn : string[]=[];\r\n sortList: sort[] = [];\r\n}\r\nexport class ExportModel\r\n{\r\n sortColumn : string;\r\n sortDirection : string;\r\n page : number=1;\r\n pageSize : number=25;\r\n searchText : string;\r\n getAll : boolean = false;\r\n fundId : number =0;\r\n selectedIds : number[];\r\n showColumn : string[]=[];\r\n sortList : sort[] = []\r\n}\r\n\r\nexport class CalcStatusListModel {\r\n id: number;\r\n status: string;\r\n}\r\n\r\nexport class GetTotalRecordByID {\r\n FundLevelDataModels: [];\r\n}\r\n","export const DATE_FORMAT=\"MM/dd/YYYY\"","export enum StorageName {\r\n LASTACTIVITYTIME =\"LAST_ACTIVITY_TIME\",\r\n Authenticated =\"Authenticated\",\r\n CURRENTUSER = \"currentUser\",\r\n CURRENT_FORM = \"Default\",\r\n CURRENT_FORM_PERMISSION = \"CURRENT_FORM_PERMISSION\",\r\n FUNDID = \"FUNDID\",\r\n INVESTORID = \"INVESTORID\",\r\n LOOKUPID = \"LOOKUPID\",\r\n INVESTMENTID = \"INVESTMENTID\",\r\n CALCULATION_RULE_ID = \"CALCULATION_RULE_ID\",\r\n PERFORMANCE_RULE_ID = \"PERFORMANCE_RULE_ID\",\r\n POSITIONID = \"POSITIONID\",\r\n Tier_ID = \"tier_id\",\r\n ROLEID = \"roleId\",\r\n TRANSACTION_FUNDID = \"TRANSACTION_FUNDID\",\r\n TRANSACTION_FILTERID = \"TRANSACTION_FILTERID\",\r\n TRANSACTION_FILTER_CRITERIA = \"TransactionFilterCriteria\",\r\n PERMISSION_ROLEID = \"PERMISSION_ROLEID\",\r\n TRANSACTION_APPLIED_POST_TRANSACTION_DATA = \"TRANSACTION_APPLIED_POST_TRANSACTION_DATA\",\r\n CALCULATION_ID = \"CALCULATION_ID\",\r\n IS_EXPORT_CALC_FROM_HOMEPAGE = \"IS_EXPORT_CALC_FROM_HOMEPAGE\",\r\n IS_EXPORT_WITH_FORMULA_CALC_FROM_HOMEPAGE = \"IS_EXPORT_WITH_FORMULA_CALC_FROM_HOMEPAGE\",\r\n CALCULATION_FUNDID = \"CALCULATION_FUNDID\",\r\n FUND_HEADER_CONTROLLER = \"Fund\",\r\n INVESTOR_HEADER_CONTROLLER = \"Investor\",\r\n INVESTMENT_HEADER_CONTROLLER = \"Investment\",\r\n POSITION_HEADER_CONTROLLER = \"Position\",\r\n TRANSACTION_CONTROLLER = \"Transaction\",\r\n CALCULATION_RULE_HEADER_CONTROLLER = \"CalculationRule\",\r\n TIER_HEADER_CONTROLLER = \"Tier\",\r\n PERFORMANCE_RULE_HEADER_CONTROLLER = \"PerformanceRule\",\r\n PERMISSION_CONTROLLER = \"Permission\",\r\n FUND_INVESTORCOLUMNCHANGED = \"fund_investorColumnChanged\",\r\n FUND_INVESTMENTCOLUMNCHANGED = \"fund_investmentColumnChanged\",\r\n FUND_CALCULATIONSETTINGCOLUMNCHANGED = \"fund_calculationsettingColumnChanged\",\r\n FUND_CALCULATIONSCOLUMNCHANGED = \"fund_calculationsColumnChanged\",\r\n FUND_PTRTRANSACTIONCOLUMNCHANGED = \"fund_ptrTransactionColumnChanged\",\r\n USERS_USERCOLUMNCHANGED = \"users_userColumnChanged\",\r\n USERS_USERROLECOLUMNCHANGED = \"users_userroleColumnChanged\",\r\n ROLES_ROLESCOLUMNCHANGED = \"roles_rolesColumnChanged\",\r\n INVESTORCOLUMNCHANGED = \"investorColumnChanged\",\r\n INVESTMENTCOLUMNCHANGED = \"investmentColumnChanged\",\r\n POSITIONCOLUMNCHANGED = \"positionColumnChanged\",\r\n IMPORTFUNDINVESTORCOLUMNCHANGED = \"import_fund_investorColumnChanged\",\r\n IMPORTFUNDINVESTMENTCOLUMNCHANGED = \"import_fund_investmentColumnChanged\",\r\n CALCULATIONSFUNDID = 'fundsId',\r\n TRANSACTION_TRANSACTIONLEVELCOLUMNCHANGED = \"transaction_transactionlevelColumnChanged\",\r\n TRANSACTION_FUNDLEVELCOLUMNCHANGED = \"transaction_fundlevelColumnChanged\",\r\n TRANSACTION_TIER_FUNDID = \"transaction_tier_fundId\",\r\n TRANSACTION_TIER_FILTERID = \"transaction_tier_filterId\",\r\n IMPORTTRANSACTIONCOLUMNCHANGED = \"import_transactionColumnChanged\",\r\n FUND_INVESTOR_PAGINATION = 'fund_investor_pagination',\r\n FUND_INVESTMENT_PAGINATION = 'fund_investment_pagination',\r\n FUND_CLACULATION_PAGINATION = 'fund_calculation_pagination',\r\n FUND_CALCULATION_SETTINGS_PAGINATION = 'fund_calculation_settings_pagination',\r\n FUND_PTR_TRANSFER_PAGINATION = 'fund_ptr_transfer_pagination',\r\n USERS_USER_PAGINATION = 'users_user_pagination',\r\n USERS_USERROLE_PAGINATION = 'users_userrole_pagination',\r\n ROLES_ROLES_PAGINATION = 'roles_roles_pagination',\r\n Import_Investor_PAGINATION = 'import_investor_pagination',\r\n Import_Investment_PAGINATION = 'import_investment_pagination',\r\n CALCULATION_CONTROLLER = \"Calculation\",\r\n // For Grids\r\n\r\n // For Grids\r\n // For Filter of Investor\r\n // INVESTOR_INITIALROWS = \"investor_initalrows\",\r\n // INVESTOR_PAGINATION = \"investor_pagination\",\r\n // FILTER_INVESTOR_SELECTED = \"filter_investor_selected\",\r\n // For Investement Filter\r\n // INVESTEMNT_INITIALROWS = \"investment_initalrows\",\r\n // INVESTMENT_PAGINTIOAN = 'investment_pagination',\r\n // FILTER_INVESTMENT_SELECTED = 'filter_investment_selected',\r\n // For Position Filter\r\n // POSITION_INITIALROWS = 'position_initialrows',\r\n // POSITION_PAGINATION = 'position_pagination',\r\n // FILTER_POSITION_SELECTED = 'filter_position_selected',\r\n // For Import Filter\r\n // IMPORT_INVESTOR_INITALROWS = \"import_investor_initalrows\",\r\n // FILTER_IMPORT_INVESTOR_SELECTED = 'filter_investor_import_selected',\r\n // GRID_IMPORT_INVESTOR = 'grid_import_investor',\r\n // IMPORT_INVESTMENT_INITALROWS = 'import_investment_initalrows',\r\n // FILTER_IMPORT_INVESTMENT_SELECTED = 'filter_import_investment_selected',\r\n // GRID_IMPORT_INVESTMENT = 'grid_import_investment',\r\n\r\n // FOR TIER FILTER\r\n TIER_INITIALROWS = 'tier_initialrows',\r\n FILTER_TIER_SELECTED = 'filter_tier_selected',\r\n TIER_PAGINATION = 'tier_pagination',\r\n // FOR PERFORMANCE FILTER\r\n TRANSACTION_SET_INITIALROWS = 'transaction_set_initialrows',\r\n FILTER_TRANSACTION_SET_SELECTED = 'filter_transaction_set_selected',\r\n TRANSACTION_SET_PAGINATION = 'transaction_set_pagination',\r\n GRID_TRANSACTION_SET = 'grid_transaction_set',\r\n TRANSACTION_FILTER_INITIALROWS = 'transaction_filter_initialrows',\r\n FILTER_TRANSACTION_FILTER_SELECTED = 'filter_transaction_filter_selected',\r\n TRANSACTION_FILTER_PAGINATION = 'transaction_filter_pagination',\r\n GRID_TRANSACTION_FILTER = 'grid_transaction_filter',\r\n // FOR CALCULATION RULE\r\n RULE_TIER_INITIALROWS = 'rule_tier_initialrows',\r\n RULE_TIER_PAGINATION = 'rule_tier_pagination',\r\n FILTER_RULE_TIER_SELECTED = 'filter_rule_tier_selected',\r\n GRID_RULE_TIER = 'grid_rule_tier',\r\n RULE_TIER_FILTER_INITIALROWS = 'rule_tier_filterinitialrows',\r\n RULE_TIER_FILTER_PAGINATION = 'rule_tier_filter_pagination',\r\n FILTER_RULE_TIER_FILTER_SELECTED = 'filter_rule_tier_filter_selected',\r\n GRID_RULE_TIER_FILTER = 'grid_rule_tier_filter',\r\n\r\n // FOR CALCULATION FILTER\r\n RET_CALC_INITALROWS = 'ret_calc_initialrows',\r\n RET_CALC_PAGINATION = 'ret_calc_pagination',\r\n FILTER_RET_CALC_SELECTED = 'filter_ret_calc_selected',\r\n GIRD_RET_CALC = 'grid_ret_calc',\r\n RET_CALC_SUMMARY_INITALROWS = 'ret_calc_summary_initialrows',\r\n RET_CALC_SUMMARY_PAGINATION = 'ret_calc_summary_pagination',\r\n FILTER_RET_CALC_SUMMARY_SELECTED = 'filter_ret_calc_summary_selected',\r\n GIRD_RET_CALC_SUMMARY = 'grid_ret_calc_summary',\r\n TIER_CALC_INITALROWS = 'tier_calc_initialrows',\r\n TIER_CALC_PAGINATION = 'tier_calc_pagination',\r\n FILTER_TIER_CALC_SELECTED = 'filter_tier_calc_selected',\r\n GIRD_TIER_CALC = 'grid_tier_calc',\r\n TIER_CALC_SUMMARY_INITALROWS = 'tier_calc_summary_initialrows',\r\n TIER_CALC_SUMMARY_PAGINATION = 'tier_calc_summary_pagination',\r\n FILTER_TIER_CALC_SUMMARY_SELECTED = 'filter_tier_calc_summary_selected',\r\n GIRD_TIER_CALC_SUMMARY = 'grid_tier_calc_summary',\r\n ALLOCATION_INITALROWS = 'allocation_initialrows',\r\n ALLOCATION_PAGINATION = 'allocation_pagination',\r\n FILTER_ALLOCATION_SELECTED = 'filter_allocation_selected',\r\n GIRD_ALLOACTION = 'grid_allocation',\r\n JOURNAL_INITALROWS = 'journal_initialrows',\r\n JOURNAL_PAGINATION = 'journal_pagination',\r\n FILTER_JOURNAL_SELECTED = 'filter_journal_selected',\r\n GIRD_JOURNAL = 'grid_journal',\r\n ALLOCATION_SUMMARY_INITALROWS = 'allocation_summary_initialrows',\r\n ALLOCATION_SUMMARY_PAGINATION = 'allocation_summary_pagination',\r\n FILTER_ALLOCATION_SUMMARY_SELECTED = 'filter_allocation_summary_selected',\r\n GIRD_ALLOACTION_SUMMARY = 'grid_allocation_summary',\r\n\r\n // For Transactions Rows \r\n TRANSACTIONS_TIER_TRANSACTIONS_TRANSACTION_LEVEL_INITIALROWS = \"transactions_tier_transactions_transaction_level_initialrows\",\r\n FILTER_TRANSACTIONS_TIER_TRANSACTIONS_TRANSACTION_LEVEL_SELECTED = \"filter_transactions_tier_transactions_transaction_level_selected\",\r\n TRANSACTIONS_TIER_TRANSACTIONS_FUND_LEVEL_INITIALROWS = \"transactions_tier_transactions_fund_level_initialrows\",\r\n FILTER_TRANSACTIONS_TIER_TRANSACTIONS_FUND_LEVEL_SELECTED = \"filter_transactions_tier_transactions_fund_level_selected\",\r\n TRANSACTIONS_IMPORT_TRANSACTIONS_INITIALROWS = \"transactions_import_transactions_initialrows\",\r\n FILTER_TRANSACTIONS_IMPORT_TRANSACTIONS_SELECTED = \"filter_transactions_import_transactions_selected\",\r\n // For Transactions Rows \r\n //Reporting\r\n REPORTID = \"reportId\",\r\n REPORT_HEADER_CONTROLLER = \"Report\",\r\n REPORTING_FUNDINVESTOR_CONTROLLER = \"Report FundInvestor\",\r\n REPORTING_FUNDINVESTOR_FILTER = \"reporting_fundinvestor_filter\",\r\n REPORTING_FUNDINVESTOR_INITIALROWS = \"reporting_fundinvestor_initialrows\",\r\n REPORTING_FUNDINVESTORCOLUMNCHANGED = \"reporting_fundinvestorcolumnchanged\",\r\n GRID_REPORTING_FUNDINVESTOR = \"grid_reporting_fundInvestor\",\r\n\r\n REPORTING_FUNDINVESTMENT_CONTROLLER = \"Report FundInvestment\",\r\n REPORTING_FUNDINVESTMENT_FILTER = \"reporting_fundinvestment_filter\",\r\n REPORTING_FUNDINVESTMENT_INITIALROWS = \"reporting_fundinvestment_initialrows\",\r\n REPORTING_FUNDINVESTMENTCOLUMNCHANGED = \"reporting_fundinvestmentcolumnchanged\",\r\n GRID_REPORTING_FUNDINVESTMENT = \"grid_reporting_fundinvestment\",\r\n\r\n REPORTING_CALCRULE_CONTROLLER = \"Report CalcRule\",\r\n REPORTING_CALCRULE_FILTER = \"reporting_calcrule_filter\",\r\n REPORTING_CALCRULE_INITIALROWS = \"reporting_calcrule_initialrows\",\r\n REPORTING_CALCRULECOLUMNCHANGED = \"reporting_calcrulecolumnchanged\",\r\n GRID_REPORTING_CALCRULE = \"grid_reporting_calcrule\",\r\n\r\n REPORTING_CALCTIER_CONTROLLER = \"Report CalcTier\",\r\n REPORTING_CALCTIER_FILTER = \"reporting_calctier_filter\",\r\n REPORTING_CALCTIER_INITIALROWS = \"reporting_calctier_initialrows\",\r\n REPORTING_CALCTIERCOLUMNCHANGED = \"reporting_calctiercolumnchanged\",\r\n GRID_REPORTING_CALCTIER = \"grid_reporting_calctier\",\r\n\r\n REPORTING_CALCALLOC_CONTROLLER = \"Report Calcalloc\",\r\n REPORTING_CALCALLOC_FILTER = \"reporting_calcalloc_filter\",\r\n REPORTING_CALCALLOC_INITIALROWS = \"reporting_calcalloc_initialrows\",\r\n REPORTING_CALCALLOCCOLUMNCHANGED = \"reporting_calcalloccolumnchanged\",\r\n GRID_REPORTING_CALCALLOC = \"grid_reporting_calcalloc\",\r\n\r\n REPORTING_CALCJES_CONTROLLER = \"Report Calcjes\",\r\n REPORTING_CALCJES_FILTER = \"reporting_calcjes_filter\",\r\n REPORTING_CALCJES_INITIALROWS = \"reporting_calcjes_initialrows\",\r\n REPORTING_CALCJESCOLUMNCHANGED = \"reporting_calcjescolumnchanged\",\r\n GRID_REPORTING_CALCJES = \"grid_reporting_calcjes\",\r\n\r\n REPORTING_TRANSACTION_CONTROLLER = \"Report transaction\",\r\n REPORTING_TRANSACTION_FILTER = \"reporting_transaction_filter\",\r\n REPORTING_TRANSACTION_INITIALROWS = \"reporting_transaction_initialrows\",\r\n REPORTING_CALCTRANSACTIONCOLUMNCHANGED = \"reporting_calctransactioncolumnchanged\",\r\n GRID_REPORTING_TRANSACTIONS = \"grid_reporting_transactions\",\r\n //Reporting\r\n\r\n USERID = \"userId\",\r\n\r\n INVESTMENT_DROPDOWN = \"INVESTMENT_DROPDOWN\",\r\n CARRY_PARTNER_DESIGNATION_LEVEL_GRID_DROPDOWN = \"carry_partner_designation_level_grid_dropdown\",\r\n CALCULATION_LEVEL_GRID_DROPDOWN = \"calculation_level_grid_dropdown\",\r\n TRANSFER_TYPE_GRID_DROPDOWN = \"TRANSFER_TYPE_GRID_DROPDOWN\",\r\n STATUS_GRID_DROPDOWN = \"STATUS_GRID_DROPDOWN\",\r\n FUND_GRID_DROPDOWN = \"fund_grid_dropdown\",\r\n POSITION_GRID_DROPDOWN = \"position_grid_dropdown\",\r\n POSITION_DROPDOWN = \"POSITION_DROPDOWN\",\r\n POSITION_JE_DROPDOWN = \"POSITION_JE_DROPDOWN\",\r\n FUND_TYPE_DROPDOWN = \"FUND_TYPE_DROPDOWN\",\r\n CURRENCY_DROPDOWN = \"CURRENCY_DROPDOWN\",\r\n FUND_GROUP_DROPDOWN = \"FUND_GROUP_DROPDOWN\",\r\n DOMAIN_DROPDOWN = \"DOMAIN_DROPDOWN\",\r\n FUND_DROPDOWN = \"FUND_DROPDOWN\",\r\n ALLOCATE_DROPDOWN = \"ALLOCATE_DROPDOWN\",\r\n APPLY_FOR_DROPDOWN = \"APPLY_FOR_DROPDOWN\",\r\n FILTERFUND_DROPDOWN = \"FILTERFUND_DROPDOWN\",\r\n TRANSACTION_FILTER_DROPDOWN = \"TRANSACTION_FILTER_DROPDOWN\",\r\n INVESTOR_DROPDOWN = \"INVESTOR_DROPDOWN\",\r\n INVESTMENT_GROUP_DROPDOWN = \"INVESTMENT_GROUP_DROPDOWN\",\r\n INVESTMENT_CLASSIFICATION_DROPDOWN = \"INVESTMENT_CLASSIFICATION_DROPDOWN\",\r\n INVESTOR_GROUP_DROPDOWN = \"INVESTOR_GROUP_DROPDOWN\",\r\n VEHICLE_INVESTOR_DROPDOWN = \"VEHICLE_INVESTOR_DROPDOWN\",\r\n //LE_ASSOCIATION_DROPDOWN = \"LE_ASSOCIATION_DROPDOWN\",\r\n INVESTOR_CLASSIFICATION_DROPDOWN = \"INVESTOR_CLASSIFICATION_DROPDOWN\",\r\n FUNDFILTER_INVESTOR_DROPDOWN = \"FUNDFILTER_INVESTOR_DROPDOWN\",\r\n FUNDFILTER_INVESTOR_GROUP_DROPDOWN = \"FUNDFILTER_INVESTOR_GROUP_DROPDOWN\",\r\n FUNDFILTER_INVESTMENT_DROPDOWN = \"FUNDFILTER_INVESTMENT_DROPDOWN\",\r\n FUNDFILTER_POSITION_GRID_DROPDOWN = \"FUNDFILTER_POSITION_GRID_DROPDOWN\",\r\n FUNDFILTER_TIER_DROPDOWN = \"FUNDFILTER_TIER_DROPDOWN\",\r\n\r\n // For UserDefinedField\r\n GRID_ADMINISTRATION_UDFS_UDF = \"grid_administration_udfs_udf\",\r\n UDFS_UDFCOLUMNCHANGED = \"udfs_udfcolumnchanged\",\r\n UDFS_UDF_PAGINATION = 'udfs_udf_pagination',\r\n ADMINISTRATION_UDFS_UDF_INITIALROWS = \"administration_udfs_udf_initialrows\",\r\n FILTER_ADMINISTRATION_UDFS_UDF_SELECTED = \"filter_administration_udfs_udf_selected\",\r\n // For UserDefinedField\r\n //#region FUNDADMIN\r\n FUNDADMIN_FUNDS_INVESTORS_GRID = \"FUNDADMIN_FUNDS_INVESTORS_GRID\",\r\n FUNDADMIN_FUNDS_INVESTORS_CONTROLLER = \"Investors\",\r\n FUNDADMIN_FUNDS_INVESTORS_COLUMNCHANGED = \"FUNDADMIN_FUNDS_INVESTORS_COLUMNCHANGED\",\r\n FUNDADMIN_FUNDS_INVESTORS_PAGINATION = \"FUNDADMIN_FUNDS_INVESTORS_PAGINATION\",\r\n FUNDADMIN_FUNDS_INVESTORS_INITIALROWS = \"FUNDADMIN_FUNDS_INVESTORS_INITIALROWS\",\r\n FUNDADMIN_FUNDS_INVESTORS_FILTER = \"FUNDADMIN_FUNDS_INVESTORS_FILTER\",\r\n\r\n FUNDADMIN_FUNDS_INVESTMENT_GRID = \"FUNDADMIN_FUNDS_INVESTMENT_GRID\",\r\n FUNDADMIN_FUNDS_INVESTMENT_CONTROLLER = \"Investments\",\r\n FUNDADMIN_FUNDS_INVESTMENT_COLUMNCHANGED = \"FUNDADMIN_FUNDS_INVESTMENT_COLUMNCHANGED\",\r\n FUNDADMIN_FUNDS_INVESTMENT_PAGINATION = \"FUNDADMIN_FUNDS_INVESTMENT_PAGINATION\",\r\n FUNDADMIN_FUNDS_INVESTMENT_INITIALROWS = \"FUNDADMIN_FUNDS_INVESTMENT_INITIALROWS\",\r\n FUNDADMIN_FUNDS_INVESTMENT_FILTER = \"FUNDADMIN_FUNDS_INVESTMENT_FILTER\",\r\n FUNDADMIN_FUNDS_CALCULATIONS_GRID = \"FUNDADMIN_FUNDS_CALCULATIONS_GRID\",\r\n FUNDADMIN_FUNDS_CALCULATIONS_CONTROLLER = \"Calculations\",\r\n FUNDADMIN_FUNDS_CALCULATIONS_COLUMNCHANGED = \"FUNDADMIN_FUNDS_CALCULATIONS_COLUMNCHANGED\",\r\n FUNDADMIN_FUNDS_CALCULATIONS_PAGINATION = \"FUNDADMIN_FUNDS_CALCULATIONS_PAGINATION\",\r\n FUNDADMIN_FUNDS_CALCULATIONS_INITIALROWS = \"FUNDADMIN_FUNDS_CALCULATIONS_INITIALROWS\",\r\n FUNDADMIN_FUNDS_CALCULATIONS_FILTER = \"FUNDADMIN_FUNDS_CALCULATIONS_FILTER\",\r\n FUNDADMIN_FUNDS_CALCULATION_SETTINGS_GRID = \"FUNDADMIN_FUNDS_CALCULATION_SETTINGS_GRID\",\r\n FUNDADMIN_FUNDS_CALCULATION_SETTINGS_CONTROLLER = \"Calculation Settings\",\r\n FUNDADMIN_FUNDS_CALCULATION_SETTINGS_COLUMNCHANGED = \"FUNDADMIN_FUNDS_CALCULATION_SETTINGS_COLUMNCHANGED\",\r\n FUNDADMIN_FUNDS_CALCULATION_SETTINGS_PAGINATION = \"FUNDADMIN_FUNDS_CALCULATION_SETTINGS_PAGINATION\",\r\n FUNDADMIN_FUNDS_CALCULATION_SETTINGS_INITIALROWS = \"FUNDADMIN_FUNDS_CALCULATION_SETTINGS_INITIALROWS\",\r\n FUNDADMIN_FUNDS_CALCULATION_SETTINGS_FILTER = \"FUNDADMIN_FUNDS_CALCULATION_SETTINGS_FILTER\",\r\n FUNDADMIN_FUNDS_PTR_TRANSFER_GRID = \"FUNDADMIN_FUNDS_PTR_TRANSFER_GRID\",\r\n FUNDADMIN_FUNDS_PTR_TRANSFER_CONTROLLER = \"Ptr Transfer\",\r\n FUNDADMIN_FUNDS_PTR_TRANSFER_COLUMNCHANGED = \"FUNDADMIN_FUNDS_PTR_TRANSFER_COLUMNCHANGED\",\r\n FUNDADMIN_FUNDS_PTR_TRANSFER_PAGINATION = \"FUNDADMIN_FUNDS_PTR_TRANSFER_PAGINATION\",\r\n FUNDADMIN_FUNDS_PTR_TRANSFER_INITIALROWS = \"FUNDADMIN_FUNDS_PTR_TRANSFER_INITIALROWS\",\r\n FUNDADMIN_FUNDS_PTR_TRANSFER_FILTER = \"FUNDADMIN_FUNDS_PTR_TRANSFER_FILTER\",\r\n\r\n FUNDADMIN_FUNDS_SHOW_DELETED = \"FUNDADMIN_FUNDS_SHOW_DELETED\",\r\n //#endregion\r\n //#region INVESTMENTS\r\n FUNDADMIN_INVESTMENTS_GRID = \"FUNDADMIN_INVESTMENTS_GRID\",\r\n FUNDADMIN_INVESTMENTS_CONTROLLER = \"Fund Investments\",\r\n FUNDADMIN_INVESTMENTS_PAGINATION = \"FUNDADMIN_INVESTMENTS_PAGINATION\",\r\n FUNDADMIN_INVESTMENTS_COLUMNCHANGED = \"FUNDADMIN_INVESTMENTS_COLUMNCHANGED\",\r\n FUNDADMIN_INVESTMENTS_INITIALROWS = \"FUNDADMIN_INVESTMENTS_INITIALROWS\",\r\n FUNDADMIN_INVESTMENTS_FILTER = \"FUNDADMIN_INVESTMENTS_FILTER\",\r\n FUNDADMIN_INVESTMENTS_SHOW_DELETED = \"FUNDADMIN_INVESTMENTS_SHOW_DELETED\",\r\n //#endregion\r\n //#region INVESTORS\r\n FUNDADMIN_INVESTORS_GRID = \"FUNDADMIN_INVESTORS_GRID\",\r\n FUNDADMIN_INVESTORS_CONTROLLER = \"Fund Commitments\",\r\n FUNDADMIN_INVESTORS_COLUMNCHANGED = \"FUNDADMIN_INVESTORS_COLUMNCHANGED\",\r\n FUNDADMIN_INVESTORS_PAGINATION = \"FUNDADMIN_INVESTORS_PAGINATION\",\r\n FUNDADMIN_INVESTORS_INITIALROWS = \"FUNDADMIN_INVESTORS_INITIALROWS\",\r\n FUNDADMIN_INVESTORS_FILTER = \"FUNDADMINS_INVESTOR_FILTER\",\r\n FUNDADMIN_INVESTORS_SHOW_DELETED = \"FUNDADMIN_INVESTORS_SHOW_DELETED\",\r\n //#endregion\r\n //#region POSITIONS\r\n FUNDADMIN_POSITIONS_GRID = \"FUNDADMIN_POSITIONS_GRID\",\r\n FUNDADMIN_POSITIONS_CONTROLLER = \"Positions\",\r\n FUNDADMIN_POSITIONS_COLUMNCHANGED = \"FUNDADMIN_POSITIONS_COLUMNCHANGED\",\r\n FUNDADMIN_POSITIONS_PAGINATION = \"FUNDADMIN_POSITIONS_PAGINATION\",\r\n FUNDADMIN_POSITIONS_INITIALROWS = \"FUNDADMIN_POSITIONS_INITIALROWS\",\r\n FUNDADMIN_POSITIONS_FILTER = \"FUNDADMINS_POSITIONS_FILTER\",\r\n FUNDADMIN_POSITIONS_SHOW_DELETED = \"FUNDADMIN_POSITIONS_SHOW_DELETED\",\r\n //#endregion\r\n //#region FUND IMPORTS\r\n INVESTOR_IMPORT_GRID = \"INVESTOR_IMPORT_GRID\",\r\n INVESTOR_IMPORT_CONTROLLER = \"FundInvestorImport\",\r\n INVESTOR_IMPORT_COLUMNCHANGED = \"INVESTOR_IMPORT_COLUMNCHANGED\",\r\n INVESTOR_IMPORT_PAGINATION = \"INVESTOR_IMPORT_PAGINATION\",\r\n INVESTOR_IMPORT_INITIALROWS = \"INVESTOR_IMPORT_INITIALROWS\",\r\n INVESTOR_IMPORT_FILTER = \"INVESTOR_IMPORT_FILTER\",\r\n INVESTMENT_IMPORT_GRID = \"INVESTMENT_IMPORT_GRID\",\r\n INVESTMENT_IMPORT_CONTROLLER = \"FundInvestmentImport\",\r\n INVESTMENT_IMPORT_COLUMNCHANGED = \"INVESTMENT_IMPORT_COLUMNCHANGED\",\r\n INVESTMENT_IMPORT_PAGINATION = \"INVESTMENT_IMPORT_PAGINATION\",\r\n INVESTMENT_IMPORT_INITIALROWS = \"INVESTMENT_IMPORT_INITIALROWS\",\r\n INVESTMENT_IMPORT_FILTER = \"INVESTMENT_IMPORT_FILTER\",\r\n //#endregion\r\n //#region CALCULATION RULES LIBRARY\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_GRID = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_GRID\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_CONTROLLER = \"Tiers\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_COLUMNCHANGED = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_COLUMNCHANGED\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_PAGINATION = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_PAGINATION\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_INITIALROWS = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_INITIALROWS\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_GRID = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_GRID\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_CONTROLLER = \"Tier Filters\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_COLUMNCHANGED = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_COLUMNCHANGED\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_PAGINATION = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_PAGINATION\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_INITIALROWS = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_INITIALROWS\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_FILTER = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_FILTER_FILTER\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_GRID = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_GRID\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_CONTROLLER = \"Pref Ret Structures\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_COLUMNCHANGED = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_COLUMNCHANGED\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_PAGINATION = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_PAGINATION\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_INITIALROWS = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_INITIALROWS\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_FILTER = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_PREFRET_STRUCTURE_FILTER\",\r\n CALCULATION_RULES_LIBRARY_CALCULATION_RULES_SHOW_DELETED = \"CALCULATION_RULES_LIBRARY_CALCULATION_RULES_TIER_SHOW_DELETED\",\r\n CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_GRID = \"CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_GRID\",\r\n CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_CONTROLLER = \"Tier Components\",\r\n CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_COLUMNCHANGED = \"CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_COLUMNCHANGED\",\r\n CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_PAGINATION = \"CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_PAGINATION\",\r\n CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_INITIALROWS = \"CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_INITIALROWS\",\r\n CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_FILTER = \"CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_FILTER\",\r\n CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_SHOW_DELETED = \"CALCULATION_RULES_LIBRARY_TIERS_TIER_COMPONENTS_SHOW_DELETED\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_GRID = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_GRID\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_CONTROLLER = \"Transaction Set\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_COLUMNCHANGED = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_COLUMNCHANGED\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_PAGINATION = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_PAGINATION\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_INITIALROWS = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_INITIALROWS\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_GRID = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_GRID\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_CONTROLLER = \"Transaction Set Filter\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_COLUMNCHANGED = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_COLUMNCHANGED\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_PAGINATION = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_PAGINATION\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_INITIALROWS = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_INITIALROWS\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_FILTER = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_TRANSACTION_SET_FILTER_FILTER\",\r\n CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_SHOW_DELETED = \"CALCULATION_RULES_LIBRARY_PERFORMANCE_RULES_SHOW_DELETED\",\r\n\r\n \r\n //#endregion\r\n //#region LOOKUPS\r\n LOOKUP_HEADER_CONTROLLER = \"Lookup\",\r\n LOOKUP_DAYBASISSETTING_GRID = \"LOOKUP_DAYBASISSETTING_GRID\",\r\n LOOKUP_DAYBASISSETTING_CONTROLLER = \"Lookup Day Basis Setting\",\r\n LOOKUP_DAYBASISSETTING_COLUMNCHANGED = \"LOOKUP_DAYBASISSETTING_COLUMNCHANGED\",\r\n LOOKUP_DAYBASISSETTING_PAGINATION = \"LOOKUP_DAYBASISSETTING_PAGINATION\",\r\n LOOKUP_DAYBASISSETTING_INITIALROWS = \"LOOKUP_DAYBASISSETTING_INITIALROWS\",\r\n LOOKUP_DAYBASISSETTING_FILTER = \"LOOKUP_DAYBASISSETTING_FILTER\",\r\n LOOKUP_FUNDCURRENCY_GRID = \"LOOKUP_FUNDCURRENCY_GRID\",\r\n LOOKUP_FUNDCURRENCY_CONTROLLER = \"Lookup Fund Currency\",\r\n LOOKUP_FUNDCURRENCY_COLUMNCHANGED = \"LOOKUP_FUNDCURRENCY_COLUMNCHANGED\",\r\n LOOKUP_FUNDCURRENCY_PAGINATION = \"LOOKUP_FUNDCURRENCY_PAGINATION\",\r\n LOOKUP_FUNDCURRENCY_INITIALROWS = \"LOOKUP_FUNDCURRENCY_INITIALROWS\",\r\n LOOKUP_FUNDCURRENCY_FILTER = \"LOOKUP_FUNDCURRENCY_FILTER\",\r\n LOOKUP_FUNDGROUP_GRID = \"LOOKUP_FUNDGROUP_GRID\",\r\n LOOKUP_FUNDGROUP_CONTROLLER = \"Lookup Fund Group\",\r\n LOOKUP_FUNDGROUP_COLUMNCHANGED = \"LOOKUP_FUNDGROUP_COLUMNCHANGED\",\r\n LOOKUP_FUNDGROUP_PAGINATION = \"LOOKUP_FUNDGROUP_PAGINATION\",\r\n LOOKUP_FUNDGROUP_INITIALROWS = \"LOOKUP_FUNDGROUP_INITIALROWS\",\r\n LOOKUP_FUNDGROUP_FILTER = \"LOOKUP_FUNDGROUP_FILTER\",\r\n LOOKUP_FUNDTYPE_GRID = \"LOOKUP_FUNDTYPE_GRID\",\r\n LOOKUP_FUNDTYPE_CONTROLLER = \"Lookup Fund Type\",\r\n LOOKUP_FUNDTYPE_COLUMNCHANGED = \"LOOKUP_FUNDTYPE_COLUMNCHANGED\",\r\n LOOKUP_FUNDTYPE_PAGINATION = \"LOOKUP_FUNDTYPE_PAGINATION\",\r\n LOOKUP_FUNDTYPE_INITIALROWS = \"LOOKUP_FUNDTYPE_INITIALROWS\",\r\n LOOKUP_FUNDTYPE_FILTER = \"LOOKUP_FUNDTYPE_FILTER\",\r\n LOOKUP_INVESTMENTCLASSIFICATION_GRID = \"LOOKUP_INVESTMENTCLASSIFICATION_GRID\",\r\n LOOKUP_INVESTMENTCLASSIFICATION_CONTROLLER = \"Lookup Investment Classification\",\r\n LOOKUP_INVESTMENTCLASSIFICATION_COLUMNCHANGED = \"LOOKUP_INVESTMENTCLASSIFICATION_COLUMNCHANGED\",\r\n LOOKUP_INVESTMENTCLASSIFICATION_PAGINATION = \"LOOKUP_INVESTMENTCLASSIFICATION_PAGINATION\",\r\n LOOKUP_INVESTMENTCLASSIFICATION_INITIALROWS = \"LOOKUP_INVESTMENTCLASSIFICATION_INITIALROWS\",\r\n LOOKUP_INVESTMENTCLASSIFICATION_FILTER = \"LOOKUP_INVESTMENTCLASSIFICATION_FILTER\",\r\n LOOKUP_INVESTMENTGROUP_GRID = \"LOOKUP_INVESTMENTGROUP_GRID\",\r\n LOOKUP_INVESTMENTGROUP_CONTROLLER = \"Lookup Investment Group\",\r\n LOOKUP_INVESTMENTGROUP_COLUMNCHANGED = \"LOOKUP_INVESTMENTGROUP_COLUMNCHANGED\",\r\n LOOKUP_INVESTMENTGROUP_PAGINATION = \"LOOKUP_INVESTMENTGROUP_PAGINATION\",\r\n LOOKUP_INVESTMENTGROUP_INITIALROWS = \"LOOKUP_INVESTMENTGROUP_INITIALROWS\",\r\n LOOKUP_INVESTMENTGROUP_FILTER = \"LOOKUP_INVESTMENTGROUP_FILTER\",\r\n LOOKUP_INVESTORCLASSIFICATION_GRID = \"LOOKUP_INVESTORCLASSIFICATION_GRID\",\r\n LOOKUP_INVESTORCLASSIFICATION_CONTROLLER = \"Lookup Investor Classification\",\r\n LOOKUP_INVESTORCLASSIFICATION_COLUMNCHANGED = \"LOOKUP_INVESTORCLASSIFICATION_COLUMNCHANGED\",\r\n LOOKUP_INVESTORCLASSIFICATION_PAGINATION = \"LOOKUP_INVESTORCLASSIFICATION_PAGINATION\",\r\n LOOKUP_INVESTORCLASSIFICATION_INITIALROWS = \"LOOKUP_INVESTORCLASSIFICATION_INITIALROWS\",\r\n LOOKUP_INVESTORCLASSIFICATION_FILTER = \"LOOKUP_INVESTORCLASSIFICATION_FILTER\",\r\n LOOKUP_INVESTORGROUP_GRID = \"LOOKUP_INVESTORGROUP_GRID\",\r\n LOOKUP_INVESTORGROUP_CONTROLLER = \"Lookup Investor Group\",\r\n LOOKUP_INVESTORGROUP_COLUMNCHANGED = \"LOOKUP_INVESTORGROUP_COLUMNCHANGED\",\r\n LOOKUP_INVESTORGROUP_PAGINATION = \"LOOKUP_INVESTORGROUP_PAGINATION\",\r\n LOOKUP_INVESTORGROUP_INITIALROWS = \"LOOKUP_INVESTORGROUP_INITIALROWS\",\r\n LOOKUP_INVESTORGROUP_FILTER = \"LOOKUP_INVESTORGROUP_FILTER\",\r\n LOOKUP_INVESTORVEHICLE_GRID = \"LOOKUP_INVESTORVEHICLE_GRID\",\r\n LOOKUP_INVESTORVEHICLE_CONTROLLER = \"Lookup Investor Vehicle\",\r\n LOOKUP_INVESTORVEHICLE_COLUMNCHANGED = \"LOOKUP_INVESTORVEHICLE_COLUMNCHANGED\",\r\n LOOKUP_INVESTORVEHICLE_PAGINATION = \"LOOKUP_INVESTORVEHICLE_PAGINATION\",\r\n LOOKUP_INVESTORVEHICLE_INITIALROWS = \"LOOKUP_INVESTORVEHICLE_INITIALROWS\",\r\n LOOKUP_INVESTORVEHICLE_FILTER = \"LOOKUP_INVESTORVEHICLE_FILTER\",\r\n LOOKUP_SUBACCOUNT_GRID = \"LOOKUP_SUBACCOUNT_GRID\",\r\n LOOKUP_SUBACCOUNT_CONTROLLER = \"Lookup Subaccount\",\r\n LOOKUP_SUBACCOUNT_COLUMNCHANGED = \"LOOKUP_SUBACCOUNT_COLUMNCHANGED\",\r\n LOOKUP_SUBACCOUNT_PAGINATION = \"LOOKUP_SUBACCOUNT_PAGINATION\",\r\n LOOKUP_SUBACCOUNT_INITIALROWS = \"LOOKUP_SUBACCOUNT_INITIALROWS\",\r\n LOOKUP_SUBACCOUNT_FILTER = \"LOOKUP_SUBACCOUNT_FILTER\",\r\n LOOKUP_TIERCOMPONENT_GRID = \"LOOKUP_TIERCOMPONENT_GRID\",\r\n LOOKUP_TIERCOMPONENT_CONTROLLER = \"Lookup Tiercomponent\",\r\n LOOKUP_TIERCOMPONENT_COLUMNCHANGED = \"LOOKUP_TIERCOMPONENT_COLUMNCHANGED\",\r\n LOOKUP_TIERCOMPONENT_PAGINATION = \"LOOKUP_TIERCOMPONENT_PAGINATION\",\r\n LOOKUP_TIERCOMPONENT_INITIALROWS = \"LOOKUP_TIERCOMPONENT_INITIALROWS\",\r\n LOOKUP_TIERCOMPONENT_FILTER = \"LOOKUP_TIERCOMPONENT_FILTER\",\r\n\r\n LOOKUP_DOMAIN_GRID = \"LOOKUP_DOMAIN_GRID\",\r\n LOOKUP_DOMAIN_CONTROLLER = \"Lookup Domain\",\r\n LOOKUP_DOMAIN_COLUMNCHANGED = \"LOOKUP_DOMAIN_COLUMNCHANGED\",\r\n LOOKUP_DOMAIN_PAGINATION = \"LOOKUP_DOMAIN_PAGINATION\",\r\n LOOKUP_DOMAIN_INITIALROWS = \"LOOKUP_DOMAIN_INITIALROWS\",\r\n LOOKUP_DOMAIN_FILTER = \"LOOKUP_DOMAIN_FILTER\",\r\n //#endregion\r\n //#region TRANSACTION\r\n TRANSACTION_LEVEL_GRID = \"TRANSACTION_LEVEL_GRID\",\r\n TRANSACTION_LEVEL_CONTROLLER = \"Transaction Level\",\r\n TRANSACTION_LEVEL_COLUMNCHANGED = \"TRANSACTION_LEVEL_COLUMNCHANGED\",\r\n TRANSACTION_LEVEL_PAGINATION = \"TRANSACTION_LEVEL_PAGINATION\",\r\n TRANSACTION_LEVEL_INITIALROWS = \"TRANSACTION_LEVEL_INITIALROWS\",\r\n TRANSACTION_LEVEL_FILTER = \"TRANSACTION_LEVEL_FILTER\",\r\n TRANSACTION_LEVEL_APPLIED_FILTER = \"TRANSACTION_LEVEL_APPLIED_FILTER\",\r\n TRANSACTION_LEVEL_POPUP_FILTER = \"TRANSACTION_LEVEL_POPUP_FILTER\",\r\n \r\n //TRANSACTION Checkboxes\r\n TRANSACTION_LEVEL_ACTIVE_CHECKBOX_FILTER = \"TRANSACTION_LEVEL_ACTIVE_CHECKBOX_FILTER\",\r\n TRANSACTION_LEVEL_LOCKED_CHECKBOX_FILTER = \"TRANSACTION_LEVEL_LOCKED_CHECKBOX_FILTER\",\r\n TRANSACTION_LEVEL_DELETED_CHECKBOX_FILTER = \"TRANSACTION_LEVEL_DELETED_CHECKBOX_FILTER\",\r\n TRANSACTION_LEVEL_DRAFT_CHECKBOX_FILTER = \"TRANSACTION_LEVEL_DRAFT_CHECKBOX_FILTER\",\r\n \r\n\r\n FUND_LEVEL_GRID = \"FUND_LEVEL_GRID\",\r\n FUND_LEVEL_CONTROLLER = \"Fund Level\",\r\n FUND_LEVEL_COLUMNCHANGED = \"FUND_LEVEL_COLUMNCHANGED\",\r\n FUND_LEVEL_PAGINATION = \"FUND_LEVEL_PAGINATION\",\r\n FUND_LEVEL_INITIALROWS = \"FUND_LEVEL_INITIALROWS\",\r\n FUND_LEVEL_FILTER = \"FUND_LEVEL_FILTER\",\r\n FUND_LEVEL_APPLIED_FILTER = \"FUND_LEVEL_APPLIED_FILTER\",\r\n FUND_LEVEL_POPUP_FILTER = \"FUND_LEVEL_POPUP_FILTER\",\r\n //#endregion\r\n //#region FUND IMPORTS\r\n TRANSACTION_IMPORT_GRID = \"TRANSACTION_IMPORT_GRID\",\r\n TRANSACTION_IMPORT_CONTROLLER = \"TransactionImport\",\r\n TRANSACTION_IMPORT_COLUMNCHANGED = \"TRANSACTION_IMPORT_COLUMNCHANGED\",\r\n TRANSACTION_IMPORT_PAGINATION = \"TRANSACTION_IMPORT_PAGINATION\",\r\n TRANSACTION_IMPORT_INITIALROWS = \"TRANSACTION_IMPORT_INITIALROWS\",\r\n TRANSACTION_IMPORT_FILTER = \"TRANSACTION_IMPORT_FILTER\",\r\n //#endregion\r\n //#region Administration\r\n //#region Roles\r\n ROLES_GRID = \"ROLES_GRID\",\r\n ROLES_CONTROLLER = \"Role\",\r\n FROLES_PAGINATION = \"FROLES_PAGINATION\",\r\n ROLES_COLUMNCHANGED = \"ROLES_COLUMNCHANGED\",\r\n ROLES_INITIALROWS = \"ROLES_INITIALROWS\",\r\n ROLES_FILTER = \"ROLES_FILTER\",\r\n ROLES_SHOW_DELETED = \"ROLES_SHOW_DELETED\",\r\n //#endregion\r\n //#region users\r\n USERS_GRID = \"USERS_GRID\",\r\n USERS_CONTROLLER = \"User\",\r\n USERS_PAGINATION = \"USERS_PAGINATION\",\r\n USERS_COLUMNCHANGED = \"USERS_COLUMNCHANGED\",\r\n USERS_INITIALROWS = \"USERS_INITIALROWS\",\r\n USERS_FILTER = \"USERS_FILTER\",\r\n USERS_SHOW_DELETED = \"USERS_SHOW_DELETED\",\r\n //#endregion\r\n //#region users\r\n USER_ROLES_GRID = \"USER_ROLES_GRID\",\r\n USER_ROLES_CONTROLLER = \"User Roles\",\r\n USER_ROLES_COLUMNCHANGED = \"USER_ROLES_COLUMNCHANGED\",\r\n USER_ROLES_PAGINATION = \"USER_ROLES_PAGINATION\",\r\n USER_ROLES_INITIALROWS = \"USER_ROLES_INITIALROWS\",\r\n USER_ROLES_FILTER = \"USER_ROLES_FILTER\",\r\n USER_SHOW_DELETED = \"USER_SHOW_DELETED\",\r\n //#endregio\r\n //#endregion\r\n //#region DROPDOWNS\r\n CALCULATION_DROPDOWN = \"CALCULATION_DROPDOWN\",\r\n CALCULATIONRULE_DROPDOWN = \"CALCULATIONRULE_DROPDOWN\",\r\n PERFORMANCERULE_DROPDOWN = \"PERFORMANCERULE_DROPDOWN\",\r\n CALCULATION_GROUP_DROPDOWN = \"CALCULATION_GROUP_DROPDOWN\",\r\n CALCULATION_TYPE_DROPDOWN = \"CALCULATION_TYPE_DROPDOWN\",\r\n CALCULATION_STATE_DROPDOWN = \"CALCULATION_STATE_DROPDOWN\",\r\n CATCHUP_TYPE_DROPDOWN = \"CATCHUP_TYPE_DROPDOWN\",\r\n DAY_BASIS_SETTING_DROPDOWN = \"DAY_BASIS_SETTING_DROPDOWN\",\r\n SUB_ACT_DROPDOWN = \"SUB_ACT_DROPDOWN\",\r\n LOCK_UNLOCK_STATUS_DROPDOWN = \"LOCK_UNLOCK_STATUS_DROPDOWN\",\r\n TIER_DROPDOWN = \"TIER_DROPDOWN\",\r\n NON_STSTEM_TIER_DROPDOWN = \"NON_STSTEM_TIER_DROPDOWN\",\r\n SYSTEM_TIERS = \"SYSTEM_TIERS\",\r\n LOOKUP_DROPDOWN = \"LOOKUP_DROPDOWN\",\r\n REPORT_DROPDOWN = \"REPORT_DROPDOWN\",\r\n REPORT_TYPE_DROPDOWN = \"REPORT_TYPE_DROPDOWN\",\r\n ROLLUP_LEVEL_DROPDOWN = \"ROLLUP_LEVEL_DROPDOWN\",\r\n INCLUDE_IN_BALANCE_DROPDOWN = \"INCLUDE_IN_BALANCE_DROPDOWN\",\r\n \r\n NUMERATOR_DENOMINATOR_DROPDOWN = \"NUMERATOR_DENOMINATOR_DROPDOWN\",\r\n USER_DROPDOWN = \"USER_DROPDOWN\",\r\n USER_GRID_DROPDOWN = \"USER_GRID_DROPDOWN\",\r\n ROLE_DROPDOWN = \"ROLE_DROPDOWN\",\r\n FILTER_FIELD_DROPDOWN = \"FILTER_FIELD_DROPDOWN\",\r\n HURDLE_DROPDOWN = \"HURDLE_DROPDOWN\",\r\n UDF_DROPDOWN = \"UDF_DROPDOWN\",\r\n FILTER_CRITERIA_DROPDOWN = \"FILTER_CRITERIA_DROPDOWN\",\r\n OPERATOR_DROPDOWN = \"OPERATOR_DROPDOWN\",\r\n CALCULATION_LEVEL_DROPDOWN = \"CALCULATION_LEVEL_DROPDOWN\",\r\n IMPORT_TYPE_DROPDOWN = \"IMPORT_TYPE_DROPDOWN\",\r\n PERMISSION_DROPDOWN = \"PERMISSION_DROPDOWN\",\r\n //#endregion\r\n //#region Permission\r\n PERMISSION_FUNDGROUP_GRID = \"PERMISSION_FUNDGROUP_GRID\",\r\n PERMISSION_FUNDGROUP_CONTROLLER = \"PERMISSION_FUNDGROUP_CONTROLLER\",\r\n PERMISSION_FUNDGROUP_COLUMNCHANGED = \"PERMISSION_FUNDGROUP_COLUMNCHANGED\",\r\n PERMISSION_FUNDGROUP_PAGINATION = \"PERMISSION_FUNDGROUP_PAGINATION\",\r\n PERMISSION_FUNDGROUP_INITIALROWS = \"PERMISSION_FUNDGROUP_INITIALROWS\",\r\n PERMISSION_FUNDGROUP_FILTER = \"PERMISSION_FUNDGROUP_FILTER\",\r\n PERMISSION_FORM_GRID = \"PERMISSION_FORM_GRID\",\r\n PERMISSION_FORM_CONTROLLER = \"PERMISSION_FORM_CONTROLLER\",\r\n PERMISSION_FORM_COLUMNCHANGED = \"PERMISSION_FORM_COLUMNCHANGED\",\r\n PERMISSION_FORM_PAGINATION = \"PERMISSION_FORM_PAGINATION\",\r\n PERMISSION_FORM_INITIALROWS = \"PERMISSION_FORM_INITIALROWS\",\r\n PERMISSION_FORM_FILTER = \"PERMISSION_FORM_FILTER\",\r\n\r\n PERMISSION_COLUMN_GRID = \"PERMISSION_COLUMN_GRID\",\r\n PERMISSION_COLUMN_CONTROLLER = \"PERMISSION_COLUMN_CONTROLLER\",\r\n PERMISSION_COLUMN_COLUMNCHANGED = \"PERMISSION_COLUMN_COLUMNCHANGED\",\r\n PERMISSION_COLUMN_PAGINATION = \"PERMISSION_COLUMN_PAGINATION\",\r\n PERMISSION_COLUMN_INITIALROWS = \"PERMISSION_COLUMN_INITIALROWS\",\r\n PERMISSION_COLUMN_FILTER = \"PERMISSION_COLUMN_FILTER\",\r\n PERMISSION_SHOW_DELETED = \"PERMISSION_SHOW_DELETED\",\r\n\r\n //#endregion\r\n\r\n\r\n //#region Calculations\r\n //#region Pref Ret Cals\r\n CALCULATIONS_PREF_RET_CALC_GRID = \"CALCULATIONS_PREF_RET_CALC_GRID\",\r\n CALCULATIONS_PREF_RET_CALC_CONTROLLER = \"Pref Ret Calc\",\r\n CALCULATIONS_PREF_RET_CALC_COLUMNCHANGED = \"CALCULATIONS_PREF_RET_CALC_COLUMNCHANGED\",\r\n CALCULATIONS_PREF_RET_CALC_PAGINATION = \"CALCULATIONS_PREF_RET_CALC_PAGINATION\",\r\n CALCULATIONS_PREF_RET_CALC_INITIALROWS = \"CALCULATIONS_PREF_RET_CALC_INITIALROWS\",\r\n CALCULATIONS_PREF_RET_CALC_FILTER = \"CALCULATIONS_PREF_RET_CALC_FILTER\",\r\n //CALCULATIONS_PREF_RET_CALC_SHOW_DELETED = \"FUNDADMIN_POSITIONS_SHOW_DELETED\",\r\n //#endregion\r\n\r\n //#region Pref Ret Cals Summary\r\n CALCULATIONS_PREF_RET_CALC_SUMMARY_GRID = \"CALCULATIONS_PREF_RET_CALC_SUMMARY_GRID\",\r\n CALCULATIONS_PREF_RET_CALC_SUMMARY_CONTROLLER = \"Pref Ret Calc Summary\",\r\n CALCULATIONS_PREF_RET_CALC_SUMMARY_COLUMNCHANGED = \"CALCULATIONS_PREF_RET_CALC_SUMMARY_COLUMNCHANGED\",\r\n CALCULATIONS_PREF_RET_CALC_SUMMARY_PAGINATION = \"CALCULATIONS_PREF_RET_CALC_SUMMARY_PAGINATION\",\r\n CALCULATIONS_PREF_RET_CALC_SUMMARY_INITIALROWS = \"CALCULATIONS_PREF_RET_CALC_SUMMARY_INITIALROWS\",\r\n CALCULATIONS_PREF_RET_CALC_SUMMARY_FILTER = \"CALCULATIONS_PREF_RET_CALC_SUMMARY_FILTER\",\r\n //#endregion\r\n\r\n //#region Tier Cals\r\n CALCULATIONS_TIER_CALC_GRID = \"CALCULATIONS_TIER_CALC_GRID\",\r\n CALCULATIONS_TIER_CALC_CONTROLLER = \"Tier Calc\",\r\n CALCULATIONS_TIER_CALC_COLUMNCHANGED = \"CALCULATIONS_TIER_CALC_COLUMNCHANGED\",\r\n CALCULATIONS_TIER_CALC_PAGINATION = \"CALCULATIONS_TIER_CALC_PAGINATION\",\r\n CALCULATIONS_TIER_CALC_INITIALROWS = \"CALCULATIONS_TIER_CALC_INITIALROWS\",\r\n CALCULATIONS_TIER_CALC_FILTER = \"CALCULATIONS_TIER_CALC_FILTER\",\r\n //#endregion\r\n\r\n //#region Tier Cals\r\n CALCULATIONS_TIER_CALC_SUMMARY_GRID = \"CALCULATIONS_TIER_CALC_SUMMARY_GRID\",\r\n CALCULATIONS_TIER_CALC_SUMMARY_CONTROLLER = \"Tier Calc Summary\",\r\n CALCULATIONS_TIER_CALC_SUMMARY_COLUMNCHANGED = \"CALCULATIONS_TIER_CALC_SUMMARY_COLUMNCHANGED\",\r\n CALCULATIONS_TIER_CALC_SUMMARY_PAGINATION = \"CALCULATIONS_TIER_CALC_SUMMARY_PAGINATION\",\r\n CALCULATIONS_TIER_CALC_SUMMARY_INITIALROWS = \"CALCULATIONS_TIER_CALC_SUMMARY_INITIALROWS\",\r\n CALCULATIONS_TIER_CALC_SUMMARY_FILTER = \"CALCULATIONS_TIER_CALC_SUMMARY_FILTER\",\r\n //#endregion\r\n\r\n //#region Tier Cals\r\n CALCULATIONS_ALLOCATIONS_GRID = \"CALCULATIONS_ALLOCATIONS_GRID\",\r\n CALCULATIONS_ALLOCATIONS_CONTROLLER = \"Allocations\",\r\n CALCULATIONS_ALLOCATIONS_COLUMNCHANGED = \"CALCULATIONS_ALLOCATIONS_COLUMNCHANGED\",\r\n CALCULATIONS_ALLOCATIONS_PAGINATION = \"CALCULATIONS_ALLOCATIONS_PAGINATION\",\r\n CALCULATIONS_ALLOCATIONS_INITIALROWS = \"CALCULATIONS_ALLOCATIONS_INITIALROWS\",\r\n CALCULATIONS_ALLOCATIONS_FILTER = \"CALCULATIONS_ALLOCATIONS_FILTER\",\r\n //#endregion\r\n\r\n //#region Tier Cals\r\n CALCULATIONS_ALLOCATIONS_SUMMARY_GRID = \"CALCULATIONS_ALLOCATIONS_SUMMARY_GRID\",\r\n CALCULATIONS_ALLOCATIONS_SUMMARY_CONTROLLER = \"Allocations Summary\",\r\n CALCULATIONS_ALLOCATIONS_SUMMARY_COLUMNCHANGED = \"CALCULATIONS_ALLOCATIONS_SUMMARY_COLUMNCHANGED\",\r\n CALCULATIONS_ALLOCATIONS_SUMMARY_PAGINATION = \"CALCULATIONS_ALLOCATIONS_SUMMARY_PAGINATION\",\r\n CALCULATIONS_ALLOCATIONS_SUMMARY_INITIALROWS = \"CALCULATIONS_ALLOCATIONS_SUMMARY_INITIALROWS\",\r\n CALCULATIONS_ALLOCATIONS_SUMMARY_FILTER = \"CALCULATIONS_ALLOCATIONS_SUMMARY_FILTER\",\r\n //#endregion\r\n\r\n //#region Tier Cals\r\n CALCULATIONS_JOURNAL_ENTRIES_GRID = \"CALCULATIONS_JOURNAL_ENTRIES_GRID\",\r\n CALCULATIONS_JOURNAL_ENTRIES_CONTROLLER = \"Journal Entries\",\r\n CALCULATIONS_JOURNAL_ENTRIES_COLUMNCHANGED = \"CALCULATIONS_JOURNAL_ENTRIES_COLUMNCHANGED\",\r\n CALCULATIONS_JOURNAL_ENTRIES_PAGINATION = \"CALCULATIONS_JOURNAL_ENTRIES_PAGINATION\",\r\n CALCULATIONS_JOURNAL_ENTRIES_INITIALROWS = \"CALCULATIONS_JOURNAL_ENTRIES_INITIALROWS\",\r\n CALCULATIONS_JOURNAL_ENTRIES_FILTER = \"CALCULATIONS_JOURNAL_ENTRIES_FILTER\",\r\n //#endregion\r\n\r\n //#region timer\r\n TIMER = \"TIMER\",\r\n //#endregion\r\n //#endregion\r\n\r\n}","export const MY_DATE_FORMATS = {\r\n parse: {\r\n dateInput: 'MM/DD/YYYY',\r\n },\r\n display: {\r\n dateInput: 'MM/DD/YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n },\r\n}; \r\nexport const MOMENT_DATE_FORMATE = \"MM/DD/yyyy\";","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { SharedModule } from '../../shared.module';\r\nimport { IconsComponent } from './icons.component';\r\n@NgModule({\r\n imports: [\r\n MatTooltipModule,\r\n CommonModule,\r\n FormsModule,\r\n ],\r\n declarations: [\r\n IconsComponent,\r\n ],\r\n providers: []\r\n})\r\nexport class IconModule { }","import { Component, OnInit } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { StorageName } from '../../common/enum';\r\nimport { StorageService } from '../../services/storage.service';\r\nimport { AgGridService } from '../ag-grid/ag-grid.service';\r\nimport { IconsService } from './icons.service';\r\nimport { NotificationService } from '../../services/notification.service';\r\nexport interface MyParams {\r\n eventOccurs?: any;\r\n}\r\n@Component({\r\n selector: 'app-icons',\r\n templateUrl: './icons.component.html',\r\n styleUrls: ['./icons.component.scss']\r\n})\r\nexport class IconsComponent implements OnInit, ICellRendererAngularComp {\r\n params;\r\n currentPageName: any;\r\n isVisible: boolean = true;\r\n canModify: boolean = false;\r\n canDelete: boolean = false;\r\n constructor(public agGridService: AgGridService,\r\n public iconService:IconsService,\r\n public notificationService: NotificationService,\r\n public storageService: StorageService) { }\r\n agInit(params: ICellRendererParams & MyParams): void {\r\n this.params = params;\r\n }\r\n refresh(params: ICellRendererParams): boolean {\r\n return true;\r\n }\r\n ngOnInit(): void {\r\n switch(this.params.colDef.headerComponentParams.gridName)\r\n {\r\n case StorageName.FUNDADMIN_FUNDS_CALCULATION_SETTINGS_GRID:\r\n case StorageName.FUNDADMIN_FUNDS_CALCULATIONS_GRID:\r\n case StorageName.GRID_ADMINISTRATION_UDFS_UDF:\r\n case StorageName.FUND_LEVEL_GRID: \r\n case StorageName.PERMISSION_FUNDGROUP_GRID:\r\n case StorageName.PERMISSION_FORM_GRID:\r\n this.isVisible = false;\r\n break;\r\n case StorageName.USERS_GRID:\r\n this.isVisible = !this.params.data.userName || this.params.data.userName.toLocaleLowerCase() != 'superadminuser';\r\n break; \r\n default:\r\n this.isVisible = true;\r\n }\r\n //set from permission\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if (formPermission) {\r\n this.canModify = formPermission.modifyPermission;\r\n this.canDelete = formPermission.deletePermission;\r\n }\r\n \r\n }\r\n onCopy() {\r\n this.params.node.setSelected(true);\r\n //this.params.node.data.id = 0;\r\n this.params.node.data.isEdited = false;\r\n this.params.node.data.isAdded = false;\r\n this.params.node.data.isDeleted = false;\r\n this.params.node.data.isPasteRow = false;\r\n this.storageService.store(this.params.colDef.headerComponentParams.initialRows,this.params.api.getModel().rowsToDisplay.map(a => a.data));\r\n }\r\n onPaste() {\r\n var rowIndex = this.params.rowIndex+1;\r\n this.params.api.getSelectedRows().forEach((item) => {\r\n let newSelectedRow = {...Object.assign({},item)};\r\n newSelectedRow.id = 0;\r\n newSelectedRow.isPasteRow = true;\r\n newSelectedRow.isAdded = true;\r\n newSelectedRow.isEdited = false;\r\n newSelectedRow.isDeleted = false;\r\n this.params.api.updateRowData({ add: [newSelectedRow], addIndex: rowIndex })\r\n rowIndex ++;\r\n });\r\n this.params.api.deselectAll();\r\n this.storageService.store(this.params.colDef.headerComponentParams.initialRows,this.params.api.getModel().rowsToDisplay.map(a => a.data));\r\n }\r\n onExport() {\r\n this.params.node.setSelected(true);\r\n this.agGridService.exportAll(this.params,this.params.colDef.headerComponentParams.controllerName,true);\r\n this.params.api.deselectAll();\r\n }\r\n onDelete($event) {\r\n if ($event.target.innerHTML?.trim() == \"delete_forever\")\r\n {\r\n this.setNodeOnDelete(true);\r\n }\r\n else\r\n {\r\n this.setNodeOnDelete(false);\r\n }\r\n }\r\n\r\n setNodeOnDelete(isTrue : boolean)\r\n {\r\n if(this.params.node.data.status == \"Locked\" && this.params.colDef.headerComponentParams.gridName == StorageName.TRANSACTION_LEVEL_GRID)\r\n {\r\n this.notificationService.warningpopup(\"Please unlock record to delete\");\r\n }\r\n else\r\n {\r\n this.params.node.setSelected(isTrue);\r\n this.params.node.data.isEdited = isTrue;\r\n this.params.node.data.isAdded = false;\r\n this.params.node.data.isDeleted = isTrue;\r\n this.params.node.data.isPasteRow = false;\r\n this.storageService.store(this.params.colDef.headerComponentParams.initialRows,this.params.api.getModel().rowsToDisplay.map(a => a.data));\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IconsService {\r\n public tabName = new BehaviorSubject(\"\");\r\n constructor() { }\r\n}\r\n","import { LicenseManager } from 'ag-grid-enterprise';\r\nimport {\r\n Component,\r\n OnInit,\r\n Input,\r\n Renderer2,\r\n EventEmitter,\r\n Output,\r\n OnDestroy,\r\n} from \"@angular/core\";\r\nimport {\r\n ColDef,\r\n ColGroupDef,\r\n SideBarDef,\r\n ExcelStyle,\r\n CellClassParams,\r\n ValueFormatterFunc,\r\n SuppressKeyboardEventParams,\r\n ColumnApi,\r\n GridApi,\r\n EditableCallbackParams,\r\n} from \"ag-grid-enterprise\";\r\nimport { Subscription, throwError } from \"rxjs\";\r\nimport \"ag-grid-enterprise\";\r\nimport { StorageService } from \"../../services/storage.service\";\r\nimport { CellEditorComponent } from \"../cell-editor/cell-editor.component\";\r\nimport { CustomeHeaderComponent } from \"../custome-header/custome-header.component\";\r\nimport { ICustomHeaderParams } from \"../custome-header/custome-header.interface\";\r\nimport { DropdownComponent } from \"../dropdown/dropdown.component\";\r\nimport { IconsComponent } from \"../actions/icons.component\";\r\nimport { sort } from \"../sort/sort.model\";\r\nimport { SortService } from \"../sort/sort.service\";\r\nimport { AgColDefsI, AgGridI, defaultColDef } from \"./ag-grid.interface\";\r\nimport { AgGridService } from \"./ag-grid.service\";\r\nimport { CustomeHeaderService } from \"../custome-header/custome-header.service\";\r\nimport { CommonFilterModel } from \"../../model/response.model\";\r\nimport { DatepickerComponent } from \"../datepicker/datepicker.component\";\r\nimport { DatepickerEditorComponent } from \"../datepicker-editor/datepicker-editor.component\";\r\nimport { NotificationService } from \"../../services/notification.service\";\r\nimport { RunComponent } from \"../run/run.component\";\r\nimport { CheckboxRendererComponent } from \"../checkbox-renderer/checkbox-renderer.component\";\r\nimport { NumericValueEditorComponent } from \"../numeric-value-editor/numeric-value-editor.component\";\r\nimport { NumericeditorComponent } from \"../numericeditor/numericeditor.component\";\r\nimport { StorageName } from \"../../common/enum\";\r\nimport { defaultPageLimit, Pagination } from \"../../model/pagination.model\";\r\nimport { CellEditorTransactionComponent } from \"../cell-editor-transaction/cell-editor-transaction.component\";\r\nimport { FundsService } from \"src/app/pages/fund-information/funds/funds.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { FirstDataRenderedEvent, RowSelectedEvent } from 'ag-grid-community';\r\nimport { CustomTooltip } from '../custom-tooltip/custom-tooltip.component';\r\nLicenseManager.setLicenseKey('Using_this_AG_Grid_Enterprise_key_( AG-041068 )_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_( legal@ag-grid.com )___For_help_with_changing_this_key_please_contact_( info@ag-grid.com )___( Sedna Inc )_is_granted_a_( Single Application )_Developer_License_for_the_application_( Northstar )_only_for_( 1 )_Front-End_JavaScript_developer___All_Front-End_JavaScript_developers_working_on_( Northstar )_need_to_be_licensed___( Northstar )_has_been_granted_a_Deployment_License_Add-on_for_( 1 )_Production_Environment___This_key_works_with_AG_Grid_Enterprise_versions_released_before_( 14 May 2024 )____[v2]_MTcxNTY0MTIwMDAwMA==0e95b5c4ab27ac8cc8adf26b0600a21c');\r\ndeclare var window: any;\r\n@Component({\r\n selector: \"app-ag-grid\",\r\n templateUrl: \"./ag-grid.component.html\",\r\n styleUrls: [\"./ag-grid.component.scss\"],\r\n})\r\nexport class AgGridComponent implements OnInit, OnDestroy {\r\n @Input() dataModel!: AgGridI;\r\n @Output() onFilter: EventEmitter = new EventEmitter();\r\n @Output() onAddrow: EventEmitter = new EventEmitter();\r\n @Output() changedData: EventEmitter = new EventEmitter();\r\n @Output() newAddedData: EventEmitter = new EventEmitter();\r\n @Output() gridReady: EventEmitter = new EventEmitter();\r\n @Output() onPagination: EventEmitter = new EventEmitter();\r\n @Output() onPageSizeUpdated: EventEmitter = new EventEmitter();\r\n // @Output() onChangeCellValue: EventEmitter = new EventEmitter();\r\n eventOccurs: EventEmitter<{ eventName: string; payload?: string }> =\r\n new EventEmitter();\r\n\r\n public tooltipShowDelay = 0;\r\n public tooltipHideDelay = 10000;\r\n rows: any[] = [];\r\n agColDefs: (ColDef | ColGroupDef)[] = [];\r\n defaultColDef: ColDef;\r\n columnTypes: {\r\n [key: string]: ColDef;\r\n };\r\n rowSelection: \"single\" | \"multiple\" = \"multiple\";\r\n rowStyle = \"redColor\";\r\n components: {\r\n [p: string]: any;\r\n } = {\r\n agColumnHeader: CustomeHeaderComponent,\r\n };\r\n // cold component properties\r\n selected: any[] = [];\r\n copiedRow: any;\r\n isMultipleCopied: boolean = false;\r\n pastedRows: any[] = [];\r\n deletedRows: any[] = [];\r\n calculationFooter = false;\r\n doChange = true;\r\n pagnationUpdated = false;\r\n // For Pagination\r\n pagination = new Pagination();\r\n // pagination.pageSize: number = defaultPageLimit;\r\n goToPageNumber: number;\r\n isBtnDisabled: boolean;\r\n public readonly pageLimitOptions = [\r\n { value: 25 },\r\n { value: 50 },\r\n { value: 75 },\r\n ];\r\n // getInvestorFilterListModel: any;\r\n // columnName: any;\r\n // exportService: any;\r\n public excelStyles: ExcelStyle[] = [\r\n {\r\n id: \"header\",\r\n alignment: {\r\n vertical: \"Center\",\r\n },\r\n interior: {\r\n color: \"#3b5998\",\r\n pattern: \"Solid\",\r\n patternColor: \"#dfe3ee\",\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n bold: true,\r\n color: \"#FFFFFF\",\r\n size : 9.5\r\n },\r\n // borders: {\r\n // borderBottom: {\r\n // color: \"#f44336\",\r\n // lineStyle: \"Continuous\",\r\n // weight: 1,\r\n // },\r\n // },\r\n },\r\n {\r\n id: 'cell',\r\n alignment: {\r\n vertical: 'Center',\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n color:\"black\",\r\n size : 9.5\r\n },\r\n },\r\n // {\r\n // id: \"cell\",\r\n // alignment: {\r\n // vertical: \"Center\",\r\n // horizontal: \"Left\"\r\n // }\r\n // },\r\n {\r\n id: \"skyBlueBackground\",\r\n interior: {\r\n color: \"#e8f3ff\",\r\n pattern: \"Solid\",\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n color:\"black\",\r\n size : 9.5\r\n },\r\n },\r\n {\r\n id: \"leftAlignment\",\r\n alignment: {\r\n horizontal: \"Left\",\r\n vertical: \"Bottom\",\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n color:\"black\",\r\n size : 9.5\r\n },\r\n },\r\n {\r\n id: \"rightAlignment\",\r\n alignment: {\r\n horizontal: \"Right\",\r\n vertical: \"Bottom\",\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n color:\"black\",\r\n size : 9.5\r\n },\r\n },\r\n {\r\n id: 'negativeInBrackets',\r\n numberFormat: {\r\n format: '#,##0.00; (#,##0.00)',\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n color:\"black\",\r\n size : 9.5\r\n },\r\n },\r\n {\r\n id: 'negativeInBrackets6Digits',\r\n numberFormat: {\r\n format: '#,##0.000000; (#,##0.000000)',\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n color:\"black\",\r\n size : 9.5\r\n },\r\n },\r\n\r\n {\r\n id: 'blueBackground',\r\n interior: {\r\n color: '#3b5998',\r\n pattern: 'Solid',\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n bold: true,\r\n color: \"#FFFFFF\",\r\n size : 9.5\r\n },\r\n },\r\n {\r\n id: 'purpleRow',\r\n // interior: {\r\n // color: 'purple',\r\n // pattern: 'Solid',\r\n // },\r\n font: {\r\n fontName: \"Calibri\",\r\n bold: true,\r\n color: \"#800080\",\r\n size : 9.5\r\n },\r\n },\r\n\r\n\r\n\r\n // addPercentSymbol(params) {\r\n // const formattedValue = params.value + '%';\r\n \r\n // if (params.node.rowPinned || params.node.group) {\r\n // return formattedValue;\r\n // } else {\r\n // // Format the value as a number with the percent symbol\r\n // return { value: formattedValue, style: { numberFormat: '#,##0.00%' } };\r\n // }\r\n // }\r\n\r\n {\r\n id: 'percentFormat',\r\n numberFormat: {\r\n format: '#,##0.00%',\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n color:\"black\",\r\n size : 9.5\r\n },\r\n },\r\n {\r\n id: 'percentFormatWith4Dec',\r\n numberFormat: {\r\n format: '#,##0.0000%',\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n color:\"black\",\r\n size : 9.5\r\n },\r\n },\r\n {\r\n id: 'currencyFormat',\r\n dataType : 'Number',\r\n numberFormat: {\r\n format: '#,##0.00',\r\n },\r\n alignment: {\r\n horizontal: \"Right\",\r\n vertical: \"Bottom\",\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n color:\"black\",\r\n size : 9.5\r\n },\r\n },\r\n {\r\n id: 'ExcelDate',\r\n dataType : 'DateTime',\r\n numberFormat: { format: \"yyyy-mm-dd\" },\r\n alignment: {\r\n horizontal: \"Right\",\r\n vertical: \"Bottom\",\r\n },\r\n font: {\r\n fontName: \"Calibri\",\r\n color:\"black\",\r\n size : 9.5\r\n },\r\n },\r\n\r\n \r\n // {\r\n // id: 'negativeInBrackets',\r\n // numberFormat: {\r\n // format: '$[blue] #,##0;$ [red](#,##0)',\r\n // },\r\n // },\r\n // {\r\n // id: 'booleanType',\r\n // dataType: 'Boolean',\r\n // },\r\n // {\r\n // id: 'stringType',\r\n // dataType: 'String',\r\n // },\r\n // {\r\n // id: 'dateType',\r\n // dataType: 'DateTime',\r\n // },\r\n // {\r\n // id: 'percentType',\r\n // numberFormat: {\r\n // format: '0%',\r\n // },\r\n // },\r\n ];\r\n sortList: sort[] = [];\r\n\r\n public sideBar: SideBarDef | string | string[] | boolean | null = {\r\n toolPanels: [\r\n {\r\n id: \"columns\",\r\n labelDefault: \"Columns\",\r\n labelKey: \"columns\",\r\n iconKey: \"columns\",\r\n toolPanel: \"agColumnsToolPanel\",\r\n toolPanelParams: {\r\n suppressRowGroups: true,\r\n suppressValues: true,\r\n suppressPivots: true,\r\n suppressPivotMode: true,\r\n //suppressColumnFilter: true,\r\n suppressColumnSelectAll: true,\r\n //suppressColumnExpandAll: true,\r\n },\r\n },\r\n ],\r\n defaultToolPanel: \"columns\",\r\n };\r\n\r\n frameworkComponents;\r\n totalPrefRate = 0;\r\n filterData: CommonFilterModel[] = [];\r\n tabsRowData: any = {};\r\n UDFList: any[];\r\n\r\n private _sortListSubscription!: Subscription;\r\n private _eventOccursSubscription!: Subscription;\r\n private _isEditedSunscription!: Subscription;\r\n private _allRowsSubscription!: Subscription;\r\n private _addRowsSubscription!: Subscription;\r\n private _resetFilterDataSubscription!: Subscription;\r\n\r\n constructor(\r\n renderer2: Renderer2,\r\n public agGridService: AgGridService,\r\n private sortService: SortService,\r\n public storageService: StorageService,\r\n public customeHeaderService: CustomeHeaderService,\r\n public fundsService: FundsService,\r\n public notificationService: NotificationService,\r\n private router: Router\r\n ) {\r\n this.UDFList = this.storageService.retrieve(\"UDFLIST\");\r\n // this.UDFList = [{nStarUDFName:\"transTxt1\",nStarTable: \"Transactions\",udfFieldName:\"Pranay\"}]\r\n this._sortListSubscription = this.sortService.sortList$.subscribe(\r\n (data) => {\r\n this.sortList = data;\r\n }\r\n );\r\n\r\n this._eventOccursSubscription = this.eventOccurs.subscribe(($event) => {\r\n this.customEvent($event);\r\n });\r\n this.frameworkComponents = {\r\n dropdown: CellEditorComponent,\r\n dropdownRenderer: DropdownComponent,\r\n datePickerEditor: DatepickerEditorComponent,\r\n datePickerRenderer: DatepickerComponent,\r\n checkboxRenderer: CheckboxRendererComponent,\r\n numericRenderer: NumericValueEditorComponent,\r\n };\r\n }\r\n ngOnInit(): void {\r\n this._isEditedSunscription = this.agGridService.isEdited.subscribe((res) => {\r\n if (res == true) {\r\n let dmcolDefs: any = [...this.agColDefs];\r\n for (let i = 0; i < dmcolDefs.length; i++) {\r\n dmcolDefs[i].editable = true\r\n }\r\n this.agColDefs = dmcolDefs\r\n }\r\n if (res == false) {\r\n let dmcolDefs: any = [...this.agColDefs];\r\n for (let i = 0; i < dmcolDefs.length; i++) {\r\n dmcolDefs[i].editable = false\r\n }\r\n this.agColDefs = dmcolDefs\r\n }\r\n })\r\n\r\n this._allRowsSubscription = this.agGridService.allRows.subscribe((pagination) => {\r\n if (this.dataModel.serversidepagination) {\r\n this.pagination.page = this.pagination.page;\r\n this.pagination.pageSize = pagination.pageSize;\r\n this.pagination.totalPages = pagination.totalPages;\r\n this.pagination.count = pagination.count;\r\n this.pagination.fromRecordNumber = ((this.pagination.page - 1) * this.pagination.pageSize) + 1;\r\n var lastRow = (this.pagination.fromRecordNumber - 1) + this.pagination.pageSize;\r\n this.pagination.toRecordNumber = (lastRow < this.pagination.count) ? (lastRow) : this.pagination.count;\r\n // this.pagination.fromRecordNumber = this.pagination.toRecordNumber ==0 ? 0 : this.pagination.fromRecordNumber;\r\n this.pagination.totalPages = this.pagination.totalPages == 0 ? this.pagination.page : this.pagination.totalPages;\r\n }\r\n // this.pagination.count = rows.rowData?.length;\r\n // if (!this.dataModel.serversidepagination)\r\n // this.pagination.count = this.rows?.length;\r\n // else this.pagination.count = this.rows?.length > 0 ? this.rows[0].total_rows : 0;\r\n // this.pagnationUpdated = true;\r\n });\r\n this._addRowsSubscription = this.agGridService.addRows.subscribe((row) => {\r\n this.pagination.count = this.pagination.count + 1;\r\n this.pagnationUpdated = true;\r\n // this.addRow(row);\r\n });\r\n this._resetFilterDataSubscription = this.agGridService.resetFilterData.subscribe((rows) => {\r\n this.resetFilter();\r\n this.rows = rows;\r\n this.changedData.emit(rows);\r\n this.gridApi.setRowData(this.rows);\r\n });\r\n // fOR TAB ROWS DATA\r\n // this.agGridService.rowsChanged.subscribe((data) => {\r\n // this.rows = data;\r\n // if (!this.dataModel.serversidepagination)\r\n // this.pagination.count = data?.length;\r\n // else this.pagination.count = data?.length > 0 ? data[0].total_rows : 0;\r\n // this.pagnationUpdated = true;\r\n // });\r\n\r\n // fOR TAB ROWS DATA\r\n // this.agGridService.sortChangeEmitter.subscribe((sortedrows) => {\r\n // this.rows = sortedrows;\r\n // })\r\n // this.tierTransactionsService.getExtraColumn().subscribe((data) => {\r\n // if (data.isSuccess && data.response) {\r\n // this.UDFList = data.response as UDFModel[];\r\n // }\r\n // });\r\n this.pagination.pageSize = this.pagination.pageSize == undefined ? defaultPageLimit : this.pagination.pageSize;\r\n this.bindColumnsToAgGrid();\r\n }\r\n bindColumnsToAgGrid(colDefss: AgColDefsI[] = []) {\r\n if (this.dataModel.colDefs) {\r\n const colDefs = [...this.dataModel.colDefs];\r\n this.agColDefs = [];\r\n colDefs.forEach((element) => {\r\n const coldef = this.assignValues(element);\r\n this.agColDefs.push(coldef);\r\n });\r\n }\r\n // this.defaultColDef.headerComponentParams.headerCellRendererParams = {\r\n // style: { whiteSpace: 'normal' },\r\n // };\r\n if (this.dataModel.columnTypes) {\r\n this.columnTypes = this.dataModel.columnTypes;\r\n }\r\n if (this.dataModel.defaultColDef) {\r\n this.defaultColDef = this.dataModel.defaultColDef;\r\n }\r\n else {\r\n this.defaultColDef = new defaultColDef();\r\n }\r\n\r\n this.defaultColDef.wrapHeaderText =true,\r\n // this.defaultColDef.headerhe= true,\r\n // this.headerhe\r\n this.defaultColDef.cellClassRules = {\r\n skyBlueBackground: function (params: CellClassParams) {\r\n return (params.node.rowIndex || 0) % 2 !== 0;\r\n },\r\n };\r\n\r\n this.defaultColDef.tooltipComponent = CustomTooltip;\r\n\r\n this.defaultColDef.cellClass = params => {\r\n return params.data.isDeleted === true && params.colDef.field != '' && params.colDef.field != 'actions' ? 'deletedRow' : '';\r\n }\r\n\r\n\r\n \r\n \r\n\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n\r\n this.defaultColDef.editable = (params: EditableCallbackParams) => {\r\n return formPermission.modifyPermission && (params.data.isDeleted === false && params.colDef.field != '' && params.colDef.field != 'actions')\r\n }\r\n\r\n \r\n\r\n this.defaultColDef.cellStyle = (params: CellClassParams) => {\r\n if (params.data.isDeleted === true) {\r\n return { color: 'deletedRow' };\r\n }\r\n }\r\n this.defaultColDef.editable = (params: EditableCallbackParams) => {\r\n return formPermission.modifyPermission && params.data.statusId !== 4 && params.data.isDeleted == false ;\r\n };\r\n this.defaultColDef.cellStyle= (params: CellClassParams) => {\r\n if ((params.data.isDeleted === true)) {\r\n return { color: '#f98a9c' };\r\n }\r\n }\r\n this.defaultColDef.singleClickEdit = false;\r\n // this.defaultColDef.comparator = this.customComparator\r\n // this.defaultColDef.autoHeight = true;\r\n }\r\n\r\n customComparator = (valueA, valueB) => {\r\n return valueA.toLowerCase().localeCompare(valueB.toLowerCase());\r\n };\r\n\r\n \r\n\r\n dateComparator(date1: string, date2: string) {\r\n if (date1 === undefined || date1 === null || date1.length !== 10) {\r\n return null;\r\n }\r\n var yearNumber = Number.parseInt(date1.substring(6, 10));\r\n var monthNumber = Number.parseInt(date1.substring(3, 5));\r\n var dayNumber = Number.parseInt(date1.substring(0, 2));\r\n var date1Number = yearNumber * 10000 + monthNumber * 100 + dayNumber;\r\n //var date1Number = this.agGridService.monthToComparableNumber(date1);\r\n\r\n\r\n if (date2 === undefined || date2 === null || date2.length !== 10) {\r\n return null;\r\n }\r\n var yearNumber2 = Number.parseInt(date2.substring(6, 10));\r\n var monthNumber2 = Number.parseInt(date2.substring(3, 5));\r\n var dayNumber2 = Number.parseInt(date2.substring(0, 2));\r\n var date2Number = yearNumber2 * 10000 + monthNumber2 * 100 + dayNumber2;\r\n //var date2Number = this.agGridService.monthToComparableNumber(date2);\r\n if (date1Number === null && date2Number === null) {\r\n return 0;\r\n }\r\n if (date1Number === null) {\r\n return -1;\r\n }\r\n if (date2Number === null) {\r\n return 1;\r\n }\r\n return date1Number - date2Number;\r\n }\r\n assignValues(element) {\r\n const coldef: ColDef | ColGroupDef = {};\r\n coldef.suppressKeyboardEvent = this.suppressNavigation;\r\n coldef.field = element.field;\r\n coldef.width = element.width;\r\n coldef.minWidth = element.minWidth;\r\n coldef.filter = false;\r\n coldef.filter = false;\r\n coldef.cellClassRules = element.cellClassRules;\r\n coldef.aggFunc = element.aggFunc;\r\n coldef.cellClass = element.cellClass;\r\n if(element.cellRenderer==\"datePickerRenderer\")\r\n {\r\n coldef.comparator = this.dateComparator;\r\n }\r\n if(element.valueFormatter == \"currencyFormat\")\r\n {\r\n coldef.cellClass = \"negativeInBrackets\";\r\n }\r\n if(element.valueFormatter == \"currencyFormatWith6Dec\")\r\n {\r\n coldef.cellClass = \"negativeInBrackets6Digits\";\r\n }\r\n if(element.valueFormatter == \"percentFormat\")\r\n {\r\n coldef.cellClass = \"percentFormat\";\r\n }\r\n if(element.valueFormatter == \"percentFormatWith4Dec\")\r\n {\r\n coldef.cellClass = \"percentFormatWith4Dec\";\r\n }\r\n var displayName = element.displayName;\r\n if (element.isUDFField)\r\n displayName = this.UDFList?.filter(el => el.nStarUDFName.toLowerCase() == displayName.toLowerCase() && el.nStarTable == 'Transactions')[0]?.udfFieldName ?? element.displayName;\r\n coldef.headerName = displayName;\r\n coldef.suppressMenu = false;\r\n coldef.lockPosition = element.lockPosition;\r\n coldef.lockPinned = element.lockPinned;\r\n if (element.hide != undefined) coldef.hide = element.hide;\r\n if (element.isUDFField) {\r\n coldef.hide = !(this.UDFList?.filter(el => el.nStarUDFName.toLowerCase() == element.displayName.toLowerCase() && el.nStarTable == 'Transactions')[0]?.active ?? true);\r\n }\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if (element.editable != undefined) coldef.editable = element.editable ;\r\n if(element.editable == true) coldef.editable = formPermission.modifyPermission ;\r\n if (element.sortable != undefined) coldef.sortable = element.sortable;\r\n if (element.headerCheckboxSelection != undefined)\r\n coldef.headerCheckboxSelection = element.headerCheckboxSelection;\r\n if (element.checkboxSelection != undefined)\r\n coldef.checkboxSelection = element.checkboxSelection;\r\n if (element.type != undefined) coldef.type = element.type;\r\n if (element.cellType != undefined) {\r\n coldef.cellRenderer = this.getCellComponent(element.cellType);\r\n coldef.cellEditor = this.getCellEditor(element.cellRenderer);\r\n coldef.cellRendererParams = element?.cellEditor?.cellRendererParams;\r\n coldef.cellRendererParams = { eventOccurs: this.eventOccurs, gridName: this.dataModel.gridName };\r\n if (coldef.cellRenderer == CheckboxRendererComponent) {\r\n coldef.cellRendererParams = this.dataModel.serversidepagination; // for checkbox check in transaction\r\n }\r\n }\r\n if(element.tooltipComponent != undefined)\r\n {\r\n coldef.tooltipComponent = this.getTooltipComponent();\r\n coldef.tooltipField = element.tooltipField;\r\n coldef.tooltipComponentParams = element;\r\n }\r\n coldef.cellEditor = this.getCellEditor(element.cellRenderer);\r\n if (element.valueFormatter)\r\n coldef.valueFormatter = this.getValueFormatter(element);\r\n if (element.field.toLowerCase().indexOf(\"date\") != -1)\r\n coldef.valueFormatter = this.getValueFormatter(element);\r\n \r\n \r\n\r\n if (element.cellStyle)\r\n coldef.cellStyle = this.getCellStyle(element.cellStyle);\r\n // if (element.cellType==\"dropdown\") {\r\n // // coldef.cellEditor = element.cellEditor.cellEditor;\r\n // coldef.cellEditorParams = {\r\n // values: this.setDropdownDatasource(coldef.field)\r\n // // Ids: element.cellEditor.cellEditorId,\r\n // };\r\n // }\r\n coldef.headerComponentParams = {\r\n displayName: coldef.headerName, // add displayName\r\n columnName: coldef.field,\r\n gridName: this.dataModel.gridName,\r\n isSort: coldef.field && coldef.field != \"actions\" ? true : false,\r\n eventOccurs: this.eventOccurs,\r\n isRequired: element.isRequired, // add isRequired\r\n isFilter: element.isfilter,\r\n floatingFilter: element.floatingFilter,\r\n floatingDropDown: element.floatingDropDown,\r\n filterValueColumnName: element.filterValueColumnName,\r\n filterIdColumnName: element.filterIdColumnName,\r\n initialRows: this.dataModel.initialRows,\r\n filterStorageName: this.dataModel.filterStorageName,\r\n cellDisplayType: element.cellDisplayFormat,\r\n isDateFilterShow: element.isDateFilterShow,\r\n isServerSidepagination: this.dataModel.serversidepagination,\r\n controllerName: this.dataModel.controllerName\r\n\r\n } as ICustomHeaderParams;\r\n return coldef;\r\n }\r\n\r\n public gridApi !: GridApi;\r\n private gridColumnApi!: ColumnApi;\r\n onGridReady(params) {\r\n this.clearPaginationElements();\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n this.gridReady.emit(params);\r\n this.closeToolPanel();\r\n // For Column Save State\r\n var colState = this.storageService.retrieve(this.dataModel.storageName);\r\n // if (colState != undefined) {\r\n // colState.forEach(col => {\r\n // col.colId = this.UDFList?.filter(el => el.nStarUDFName.toLowerCase() == col.colId.toLowerCase() && el.nStarTable == 'Transactions')[0]?.udfFieldName ?? col.colId;\r\n // })\r\n // }\r\n if (!colState) {\r\n return;\r\n }\r\n this.gridColumnApi.applyColumnState({\r\n state: colState,\r\n applyOrder: true,\r\n });\r\n\r\n // var value = (document.getElementById('page-size') as HTMLInputElement)\r\n // .value;\r\n // For Column Save State\r\n }\r\n clearPaginationElements() {\r\n this.pagination.count = 0;\r\n this.pagination.totalPages = 1;\r\n this.pagination.page = 1;\r\n this.pagination.pageSize = defaultPageLimit;\r\n // this.pagnationUpdated = true;\r\n }\r\n customEvent($event) {\r\n let row = $event.payload;\r\n // this.agGridService.setgridApi(row.api);\r\n // this.agGridService.setColumnApi(row.columnApi);\r\n switch ($event.eventName) {\r\n // case \"copy\":\r\n // this.copyRow(row.data, row.rowIndex);\r\n // break;\r\n // case \"paste\":\r\n // this.pasteRow(row.rowIndex, row);\r\n // break;\r\n // case \"export\":\r\n // this.exportItems(this.dataModel.gridName, row.rowIndex);\r\n // break;\r\n case \"delete\":\r\n this.onDelete(row);\r\n break;\r\n case \"undo\":\r\n this.onUndo(row);\r\n break;\r\n case \"sort\":\r\n this.dataModel.gridName;\r\n this.agGridService.allRows.next(row.rowData)\r\n this.agGridService.allRows.emit(row);\r\n break;\r\n case \"hidesort\":\r\n this.hideColumn($event);\r\n break;\r\n case \"onfilter\":\r\n this.onFilter.emit($event);\r\n break;\r\n case \"addingRow\":\r\n this.onAddrow.emit($event);\r\n break;\r\n case \"run\":\r\n this.onRun($event);\r\n break;\r\n case \"reset-transfer\":\r\n this.resetTransfer($event);\r\n break;\r\n }\r\n }\r\n onFirstDataRendered(params: FirstDataRenderedEvent) {\r\n // var start = parseInt((selectedPage - 1) * resultsPerPage);\r\n // var end = parseInt(selectedPage * resultsPerPage);\r\n\r\n if (this.dataModel.storageName == StorageName.USERS_USERCOLUMNCHANGED\r\n || this.dataModel.storageName == StorageName.USERS_USERROLECOLUMNCHANGED) {\r\n params.columnApi.setColumnVisible('id', false);\r\n }\r\n if (this.dataModel.storageName == StorageName.ROLES_ROLESCOLUMNCHANGED) {\r\n params.columnApi.setColumnVisible('id', false);\r\n }\r\n }\r\n redrawAllRows() {\r\n this.gridApi.redrawRows();\r\n }\r\n onSelectionChanged() {\r\n this.gridApi.redrawRows();\r\n }\r\n\r\n onRowSelected(event: RowSelectedEvent) {\r\n\r\n this.storageService.store(StorageName.CALCULATION_FUNDID, event.data.fundId);\r\n this.storageService.store(StorageName.CALCULATION_ID, event.data.calcId);\r\n const url = '/#/calculation';\r\n if (this.dataModel.gridName == StorageName.FUNDADMIN_FUNDS_CALCULATIONS_GRID && event.node.isSelected()) {\r\n window.open(url, '_blank')\r\n }\r\n }\r\n closeToolPanel() {\r\n this.gridApi.closeToolPanel();\r\n }\r\n resetFilter() {\r\n this.customeHeaderService.isResetFilterIcon.emit(true);\r\n }\r\n \r\n\r\n onDelete(row: any) {\r\n this.pagination.count = this.pagination.count - 1;\r\n let selectedRows = this.gridApi.getSelectedRows();\r\n // row.isDeleted = true;\r\n this.rows[row.rowIndex].isDeleted = true;\r\n this.rows[row.rowIndex].isEdited = true;\r\n this.rows[row.rowIndex].isAdded = false;\r\n this.redrawAllRows();\r\n this.changedData.emit(this.rows);\r\n this.pagnationUpdated = true;\r\n\r\n }\r\n onUndo(row: any) {\r\n this.pagination.count = this.pagination.count + 1;\r\n this.rows[row.rowIndex].isDeleted = false;\r\n this.rows[row.rowIndex].isEdited = false;\r\n // this.rows[row.rowIndex].Deleted = false;\r\n this.redrawAllRows();\r\n this.pagnationUpdated = true;\r\n }\r\n\r\n onRun(event) {\r\n let result = this.fundsService.runPtrTransfer(\r\n event.payload.data?.ptrTransNameId\r\n );\r\n result.subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.notificationService.sucesspopup(res.message);\r\n } else {\r\n this.notificationService.errorpopup(res.message);\r\n }\r\n });\r\n }\r\n resetTransfer(event) {\r\n let result = this.fundsService.revertPtrTransfer(\r\n event.payload.data?.ptrTransNameId\r\n );\r\n result.subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.notificationService.sucesspopup(res.message);\r\n } else {\r\n this.notificationService.errorpopup(res.message);\r\n }\r\n });\r\n }\r\n getRowClass = (row) => {\r\n if (row.data.statusId == 4 && row.node._objectid != 0) {\r\n return \"lockedRow\";\r\n }\r\n else if(row.data.statusId == 1)\r\n {\r\n return \"draftRow\";\r\n }\r\n else if(row.data.isDraft == true)\r\n {\r\n return \"draftRow\";\r\n }\r\n else if(row.data.isSumRow == true)\r\n {\r\n return \"sumRow\";\r\n }\r\n else if(row.data.finalRow == true)\r\n {\r\n return \"finalRow\";\r\n }\r\n \r\n // else if (row.data.isPermanentDelete) {\r\n // return \"deletedRow\";\r\n // }\r\n else if (row.data?.isCopiedRow && !row.data?.isPasteRow && !row.data?.isDeleted) {\r\n return \"copiedRow\";\r\n } else if (row.data?.isPasteRow && !row.data?.isDeleted) {\r\n return \"pasteRowColor\";\r\n }\r\n else if (\r\n row.node.selected &&\r\n !row.data.isDeleted &&\r\n !row.data.isPasteRow\r\n ) {\r\n return \"checkedRow\";\r\n } else if (row.data?.isAdded && !row.data?.isDeleted) {\r\n return \"AddedRowColor\";\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n private handleError(error: any) {\r\n // this.toaster.error(error.error.message);\r\n return throwError(error);\r\n }\r\n //export\r\n\r\n\r\n //#region PaginationisBtnDisabled\r\n updateServersidePaginationData(totalRows, totalPages, page,pageSize) {\r\n this.pagination.page = page;\r\n this.pagination.pageSize = pageSize;\r\n this.pagination.totalPages = totalPages;\r\n this.pagination.count = totalRows;\r\n this.pagination.fromRecordNumber = ((this.pagination.page - 1) * this.pagination.pageSize) + 1;\r\n var lastRow = (this.pagination.fromRecordNumber - 1) + this.pagination.pageSize;\r\n this.pagination.toRecordNumber = (lastRow < this.pagination.count) ? (lastRow) : this.pagination.count;\r\n this.pagination.fromRecordNumber = this.pagination.toRecordNumber == 0 ? 0 : this.pagination.fromRecordNumber;\r\n this.pagination.totalPages = this.pagination.totalPages == 0 ? this.pagination.page : this.pagination.totalPages;\r\n }\r\n setInputValue() {\r\n if (this.goToPageNumber == 0 || this.goToPageNumber > this.pagination.totalPages)\r\n this.isBtnDisabled = true;\r\n else\r\n this.isBtnDisabled = false;\r\n }\r\n\r\n // updatePageSize(pageSize)\r\n // {\r\n // this.gridApi.paginationSetPageSize(this.pagination.pageSize)\r\n // }\r\n\r\n onPageSizeChanged(index) {\r\n if (this.dataModel.serversidepagination)\r\n this.onPagination.emit(this.pagination)\r\n else\r\n {\r\n this.gridApi.paginationSetPageSize(index);\r\n this.onPageSizeUpdated.emit(this.pagination.pageSize)\r\n //this.updatePageSize(this.pagination.pageSize)\r\n }\r\n }\r\n onBtFirst() {\r\n if (this.dataModel.serversidepagination) {\r\n this.pagination.page = 1;\r\n this.onPagination.emit(this.pagination)\r\n }\r\n else\r\n this.gridApi.paginationGoToFirstPage();\r\n }\r\n onBtLast() {\r\n if (this.dataModel.serversidepagination) {\r\n this.pagination.page = this.pagination.totalPages;\r\n this.onPagination.emit(this.pagination)\r\n }\r\n else\r\n this.gridApi.paginationGoToLastPage();\r\n }\r\n onBtNext() {\r\n if (this.dataModel.serversidepagination) {\r\n if (this.pagination.page < this.pagination.totalPages) {\r\n this.pagination.page++;\r\n this.onPagination.emit(this.pagination)\r\n }\r\n else\r\n this.notificationService.warningpopup(\"You reached last page\");\r\n }\r\n else\r\n this.gridApi.paginationGoToNextPage();\r\n }\r\n onBtPrevious() {\r\n if (this.dataModel.serversidepagination) {\r\n if (this.pagination.page > 1) {\r\n this.pagination.page--;\r\n this.onPagination.emit(this.pagination)\r\n }\r\n else\r\n this.notificationService.warningpopup(\"You reached first page\");\r\n }\r\n else\r\n this.gridApi.paginationGoToPreviousPage();\r\n }\r\n onPaginationChanged(event) {\r\n if (!this.dataModel.serversidepagination) {\r\n this.pagination.page = event.api.paginationGetCurrentPage() + 1;\r\n this.pagination.pageSize = event.api.paginationGetPageSize();\r\n this.pagination.totalPages = event.api.paginationGetTotalPages();\r\n this.pagination.count = event.api.paginationGetRowCount();\r\n this.pagination.fromRecordNumber = (event.api.paginationGetCurrentPage() * this.pagination.pageSize) + 1;\r\n var lastRow = (this.pagination.fromRecordNumber - 1) + this.pagination.pageSize;\r\n this.pagination.toRecordNumber = (lastRow < this.pagination.count) ? (lastRow) : this.pagination.count;\r\n this.pagination.fromRecordNumber = this.pagination.toRecordNumber == 0 ? 0 : this.pagination.fromRecordNumber;\r\n this.pagination.totalPages = this.pagination.totalPages == 0 ? this.pagination.page : this.pagination.totalPages;\r\n }\r\n }\r\n goToPage() {\r\n if (this.dataModel.serversidepagination) {\r\n if (this.goToPageNumber <= this.pagination.totalPages) {\r\n this.pagination.page = this.goToPageNumber;\r\n this.onPagination.emit(this.pagination)\r\n }\r\n else\r\n this.notificationService.warningpopup(\"Page number does not exist\");\r\n }\r\n else\r\n this.gridApi.paginationGoToPage(this.goToPageNumber - 1);\r\n }\r\n //#endregion Pagination\r\n private getValueFormatter(element: AgColDefsI): ValueFormatterFunc {\r\n if (element?.valueFormatter == \"currencyFormat\") {\r\n return (params) =>\r\n this.agGridService?.currencyFormatter(params?.data[element?.field],\"\",2);\r\n }\r\n else if (element?.valueFormatter == \"currencyFormatWith6Dec\") {\r\n return (params) =>\r\n this.agGridService?.currencyFormatter(params?.data[element?.field],\"\",6);\r\n } else if (element?.valueFormatter == \"percentFormat\") {\r\n return (params) =>\r\n this.agGridService.percentColumnFormatter(\r\n params?.data[element?.field],\r\n \"\");}\r\n else if (element?.valueFormatter == \"percentFormatWith4Dec\") {\r\n return (params) =>\r\n this.agGridService.percentColumnFormatterWith4dec(\r\n params?.data[element?.field],\r\n \"\");}\r\n\r\n\r\n if (element.field.toLowerCase().indexOf(\"date\") != -1) {\r\n return (params) =>\r\n this.agGridService.dateColumnFormatter(params);}\r\n }\r\n // setLastButtonDisabled(disabled: boolean) {\r\n // (document.querySelector('#btLast') as any).disabled = disabled;\r\n // }\r\n // setNextButtonDisabled(disabled: boolean) {\r\n // (document.querySelector('#btNext') as any).disabled = disabled;\r\n // }\r\n private getCellStyle(cellStyle) {\r\n switch (cellStyle) {\r\n case \"text-align-center\":\r\n return { \"text-align\": \"center\" };\r\n case \"text-align-right\":\r\n return { \"text-align\": \"right\" };\r\n default:\r\n return null;\r\n }\r\n }\r\n private getCellComponent(cellType) {\r\n switch (cellType) {\r\n case \"icons\":\r\n return IconsComponent;\r\n case \"dropdown\":\r\n return DropdownComponent;\r\n case \"checkbox\":\r\n return CheckboxRendererComponent;\r\n case \"datePickerEditor\":\r\n return DatepickerComponent;\r\n case \"run\":\r\n return RunComponent;\r\n case \"number\":\r\n return NumericeditorComponent;\r\n default:\r\n return null;\r\n }\r\n }\r\n private getCellEditor(cellType) {\r\n switch (cellType) {\r\n case \"dropdownRenderer\":\r\n return CellEditorComponent;\r\n case \"transactionDropdownRenderer\":\r\n return CellEditorTransactionComponent;\r\n case \"datePickerRenderer\":\r\n return DatepickerEditorComponent;\r\n case \"checkboxRenderer\":\r\n return CheckboxRendererComponent;\r\n case \"numericRenderer\":\r\n return NumericValueEditorComponent;\r\n }\r\n }\r\n private getTooltipComponent()\r\n {\r\n return CustomTooltip;\r\n }\r\n onColumnVisible(event) {\r\n window.colState = event.columnApi.getColumnState(); // For getting Column State\r\n this.storageService.store(this.dataModel.storageName, window.colState);\r\n }\r\n onColumnResized(event) {\r\n window.colState = event.columnApi.getColumnState(); // For getting Column State\r\n this.storageService.store(this.dataModel.storageName, window.colState);\r\n }\r\n columnMoved(event) {\r\n window.colState = event.columnApi.getColumnState(); // For getting Column State\r\n this.storageService.store(this.dataModel.storageName, window.colState);\r\n }\r\n\r\n\r\n suppressNavigation(params: SuppressKeyboardEventParams) {\r\n if (params.event.code == \"Space\") return true;\r\n if (params.event.code == \"Tab\") {\r\n //if (params.editing == true)\r\n params.api.tabToNextCell();\r\n }\r\n\r\n if (params.event.code == \"ArrowRight\")\r\n {\r\n var col = params.column;\r\n var id = col.getColId();\r\n var currentColIndex = params.columnApi.getAllDisplayedColumns().findIndex(col => col.getColId() === id);\r\n var rowIndex = params.node.rowIndex + 1;\r\n var allColumns = params.columnApi.getAllDisplayedColumns();\r\n var maxColIndex = allColumns.length -1;\r\n if(currentColIndex == maxColIndex)\r\n {\r\n var currentColumn = allColumns[0];\r\n var colId = currentColumn.getColId();\r\n params.api.setFocusedCell(rowIndex, colId);\r\n }\r\n }\r\n\r\n if (params.event.code == \"ArrowLeft\")\r\n {\r\n var col = params.column;\r\n var id = col.getColId();\r\n var currentColIndex = params.columnApi.getAllDisplayedColumns().findIndex(col => col.getColId() === id);\r\n var rowIndex = params.node.rowIndex -1;\r\n var allColumns = params.columnApi.getAllDisplayedColumns();\r\n var maxColIndex = allColumns.length -1;\r\n if(currentColIndex == 0)\r\n {\r\n var currentColumn = allColumns[maxColIndex];\r\n var colId = currentColumn.getColId();\r\n params.api.setFocusedCell(rowIndex, colId);\r\n }\r\n }\r\n\r\n // if (params.event.code == \"ArrowRight\" || params.event.code == \"Tab\" || params.event.code == \"ArrowLeft\") {\r\n \r\n // // instanceId\r\n // var col = params.column;\r\n // // var colmn = this.getColumnIndexByColId( params.columnApi,);\r\n // //var col : any = \"\";\r\n // var id = col.getColId();\r\n // var currentColIndex = params.columnApi.getAllDisplayedColumns().findIndex(col => col.getColId() === id);\r\n // var maxColIndex = params.columnApi.getAllDisplayedColumns().length -1;\r\n // var columntest = params.columnApi.getColumn(id);\r\n // var coldef = columntest.getColDef();\r\n // var headerParams = coldef.headerComponentParams;\r\n // if (params.editing == true && headerParams.cellDisplayType == \"textFilter\")\r\n // return false;\r\n // //var currentColIndex = getColumnIndexByColId(params.columnApi,id);\r\n // if(currentColIndex == maxColIndex)\r\n // currentColIndex = 0;\r\n // // sets focus into the first grid cell\r\n // if (params.editing && params.colDef.cellEditor == DatepickerEditorComponent) \r\n // return true;\r\n // else {\r\n // var allColumns = params.columnApi.getAllDisplayedColumns();\r\n // // var instanceId = params.column.getInstanceId();\r\n // if (params.event.code == \"ArrowLeft\") {\r\n // var rowIndex = params.node.rowIndex - 1;\r\n // if(currentColIndex == 0)\r\n // var currentColumn = allColumns[maxColIndex];\r\n // else\r\n // var currentColumn = allColumns[currentColIndex - 1];\r\n // }\r\n // else\r\n // {\r\n // var rowIndex = params.node.rowIndex + 1;\r\n // if(currentColIndex == maxColIndex)\r\n // var currentColumn = allColumns[0];\r\n // else\r\n // var currentColumn = allColumns[currentColIndex + 1];\r\n // }\r\n \r\n // var colId = currentColumn.getColId();\r\n // params.api.setFocusedCell(rowIndex, colId);\r\n // }\r\n \r\n //}\r\n }\r\n\r\n \r\n onCellValueChanged(event) {\r\n if(event.newValue != null)\r\n {\r\n var values = this.getCellDatasource(event.colDef.field,event.colDef.headerComponentParams.gridName);\r\n if( values != undefined && values.length != 0 && values != null && event.colDef.headerComponentParams.gridName != StorageName.TRANSACTION_LEVEL_GRID && event.colDef.headerComponentParams.gridName != StorageName.FUND_LEVEL_GRID)\r\n {\r\n var selectedItem = values.filter(a=>a.name==event.newValue)[0];\r\n // this.value = selectedItem.name;\r\n \r\n if(event.oldValue != event.newValue)\r\n {\r\n var idColumn = event.colDef.headerComponentParams.filterIdColumnName;\r\n var valueColumn = event.colDef.headerComponentParams.filterValueColumnName;\r\n //event.data.isEdited = true;\r\n if (event.data.isAdded != true) {\r\n event.data.isEdited = true;\r\n } \r\n if(selectedItem != undefined)\r\n {\r\n event.data[idColumn] = selectedItem.id;\r\n event.data[valueColumn] = selectedItem.name;\r\n }\r\n // this.storageService.store(event.colDef.headerComponentParams.initialRows,this.params.api.getModel().rowsToDisplay.map(a => a.data));\r\n }\r\n }\r\n else\r\n {\r\n \r\n event.data[event.colDef.field] =event.newValue;\r\n \r\n // this.storageService.store(event.colDef.headerComponentParams.initialRows,this.params.api.getModel().rowsToDisplay.map(a => a.data));\r\n \r\n if (event.data.isAdded != true) {\r\n event.data.isEdited = true;\r\n } \r\n }\r\n}\r\nelse\r\n{\r\n event.data[event.colDef.field] = ((event.oldValue == true || event.oldValue == false) && event.newValue == null) ? event.oldValue : event.newValue;\r\n}\r\nthis.storageService.store(event.colDef.headerComponentParams.initialRows,event.api.getModel().rowsToDisplay.map(a => a.data));\r\n\r\n // this.onAddrow.emit(event);\r\n // this.onChangeCellValue.emit(event);\r\n }\r\n\r\n public getCellDatasource(fieldName: string, gridName : any) : any[]\r\n {\r\n var dropdownData : any[] =[];\r\n switch(fieldName)\r\n {\r\n \r\n case \"vehicleInvestorName\": dropdownData =this.storageService.retrieve(StorageName.VEHICLE_INVESTOR_DROPDOWN); break;\r\n //case \"leAssociation\": dropdownData =this.storageService.retrieve(StorageName.LE_ASSOCIATION_DROPDOWN); break;\r\n case \"investorName\": dropdownData =this.storageService.retrieve(StorageName.INVESTOR_DROPDOWN); break;\r\n case \"investmentName\": dropdownData =this.storageService.retrieve(StorageName.INVESTMENT_DROPDOWN); break;\r\n case \"positionName\": dropdownData =this.storageService.retrieve(StorageName.POSITION_GRID_DROPDOWN); break;\r\n case \"carryPtrDesignation\": dropdownData =this.storageService.retrieve(StorageName.CARRY_PARTNER_DESIGNATION_LEVEL_GRID_DROPDOWN); break;\r\n case \"allocCalcLevel\": dropdownData =this.storageService.retrieve(StorageName.CALCULATION_LEVEL_GRID_DROPDOWN); break;\r\n case \"transferType\": dropdownData =this.storageService.retrieve(StorageName.TRANSFER_TYPE_GRID_DROPDOWN); break;\r\n case \"status\": \r\n if(gridName == \"FUNDADMIN_FUNDS_PTR_TRANSFER_GRID\") \r\n dropdownData =this.storageService.retrieve(StorageName.STATUS_GRID_DROPDOWN); \r\n else\r\n dropdownData =this.storageService.retrieve(StorageName.STATUS_GRID_DROPDOWN); \r\n break;\r\n case \"leAssociationName\": dropdownData =this.storageService.retrieve(StorageName.FILTERFUND_DROPDOWN); break;\r\n case \"allocate\": dropdownData =this.storageService.retrieve(StorageName.ALLOCATE_DROPDOWN); break;\r\n case \"fundName\": dropdownData =this.storageService.retrieve(StorageName.FUND_DROPDOWN); break;\r\n case \"tierName\":\r\n case \"comparisonTierName\":\r\n case \"tier\": dropdownData =this.storageService.retrieve(StorageName.TIER_DROPDOWN); break;\r\n case \"TransSetForUploadName\":dropdownData =this.storageService.retrieve(StorageName.NON_STSTEM_TIER_DROPDOWN); break;\r\n \r\n case \"rollupLevelName\": dropdownData =this.storageService.retrieve(StorageName.ROLLUP_LEVEL_DROPDOWN); break;\r\n case \"includeinBalanceName\":dropdownData =this.storageService.retrieve(StorageName.INCLUDE_IN_BALANCE_DROPDOWN); break;\r\n case \"roleName\": dropdownData =this.storageService.retrieve(StorageName.ROLE_DROPDOWN); break;\r\n case \"userName\": dropdownData =this.storageService.retrieve(StorageName.USER_GRID_DROPDOWN); break;\r\n case \"hurdleRetLocation\": dropdownData =this.storageService.retrieve(StorageName.HURDLE_DROPDOWN); break;\r\n case \"lpaSubActName\": dropdownData =this.storageService.retrieve(StorageName.SUB_ACT_DROPDOWN); break;\r\n case \"filterField\": dropdownData =this.storageService.retrieve(StorageName.FILTER_FIELD_DROPDOWN); break;\r\n case \"filterCriteria\": dropdownData =this.storageService.retrieve(StorageName.FILTER_CRITERIA_DROPDOWN); break;\r\n case \"udfFieldName\": dropdownData =this.storageService.retrieve(StorageName.UDF_DROPDOWN); break;\r\n case \"subActName\": dropdownData =this.storageService.retrieve(StorageName.SUB_ACT_DROPDOWN); break;\r\n // case \"operator\": dropdownData =this.storageService.retrieve(StorageName.OPERATOR_DROPDOWN); break;\r\n case \"prefReturnRuleName\": dropdownData =this.storageService.retrieve(StorageName.PERFORMANCERULE_DROPDOWN); break;\r\n }\r\n \r\n // var blankval = {id: null , name: ''};\r\n // //adds one or more elements to the beginning of an array\r\n // dropdownData.unshift(blankval);\r\n \r\n return dropdownData;\r\n //return dropdownData;\r\n }\r\n\r\n setSelected(item){\r\n \r\n }\r\n\r\n hideColumn(event) {\r\n window.colState = event.payload.columnApi.setColumnsVisible(\r\n [event.payload.columnName],\r\n false\r\n );\r\n this.storageService.store(this.dataModel.storageName, window.colState);\r\n }\r\n onCellKeyPress(event) {\r\n if (event.event.code == \"Space\") {\r\n event.api.startEditingCell({\r\n rowIndex: event.rowIndex,\r\n colKey: event.column.getId(),\r\n });\r\n }\r\n }\r\n //#region SortEvents\r\n onSortChanged(e) {\r\n }\r\n onColumnPivotChanged(e) {\r\n }\r\n onColumnRowGroupChanged(e) {\r\n }\r\n onColumnValueChanged(e) {\r\n }\r\n onColumnMoved(e) {\r\n }\r\n onColumnPinned(e) {\r\n }\r\n //#endregion\r\n\r\n ngOnDestroy(): void {\r\n if (this._sortListSubscription) {\r\n this._sortListSubscription.unsubscribe();\r\n }\r\n if (this._eventOccursSubscription) {\r\n this._eventOccursSubscription.unsubscribe();\r\n }\r\n if (this._isEditedSunscription) {\r\n this._isEditedSunscription.unsubscribe();\r\n }\r\n if (this._allRowsSubscription) {\r\n this._allRowsSubscription.unsubscribe();\r\n }\r\n if (this._addRowsSubscription) {\r\n this._addRowsSubscription.unsubscribe();\r\n }\r\n if (this._resetFilterDataSubscription) {\r\n this._resetFilterDataSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n\r\n","import { ISelectCellEditorParams } from \"ag-grid-community/dist/lib/rendering/cellEditors/selectCellEditor\";\r\nimport { StorageName } from \"../../common/enum\";\r\nimport { CustomTooltip } from \"../custom-tooltip/custom-tooltip.component\";\r\nimport { ITooltipParams } from \"ag-grid-community\";\r\nexport class AgGridI {\r\n // rows: [];\r\n masterIdStorageName?: string;\r\n colDefs: AgColDefsI[];\r\n columnTypes?: any;\r\n defaultColDef?: defaultColDef;\r\n rowSelection: \"single\" | \"multiple\";\r\n gridName?: string;\r\n controllerName?: string;\r\n storageName?: StorageName;\r\n paginationStore?: StorageName;\r\n tabIndex?: number;\r\n initialRows?: string;\r\n filterStorageName?: string;\r\n serversidepagination?: boolean = false;\r\n gridApi?: any;\r\n showDeleted? : false;\r\n showDeleteStatusStorageName? : string;\r\n isSelecte? : boolean;\r\n suppressClipboardPasteVariable? : boolean = false;\r\n}\r\n\r\nexport class defaultColDef {\r\n constructor() {\r\n this.sortable = true;\r\n this.filter = false;\r\n this.floatingFilter = false;\r\n this.editable = true;\r\n this.resizable = true;\r\n }\r\n sortable?: boolean = true;\r\n filter?: boolean = false;\r\n floatingFilter?: boolean = false;\r\n editable?: boolean = true;\r\n resizable?: boolean = true;\r\n headerCellRendererParams : any;\r\n}\r\n\r\n\r\nexport class AgColDefsI {\r\n isUDFField ?:boolean = false;\r\n field: string;\r\n lockPosition?: boolean;\r\n lockPinned?: boolean;\r\n displayName?: string;\r\n filterValueColumnName?: string;\r\n filterIdColumnName?: string;\r\n property?: string;\r\n isRequired?: boolean | false;\r\n isDateFilterShow?: boolean = false;\r\n width?: number;\r\n minWidth?: number;\r\n cellDisplayFormat?: string;\r\n cellType?: 'icons' | 'dropdown' | 'checkbox' | 'run' | 'datePickerEditor' | 'number';\r\n cellRenderer?: 'dropdownRenderer' | 'datePickerRenderer' | 'checkboxRenderer' | 'numericRenderer' | 'transactionDropdownRenderer';\r\n type?: string; //for editable function \r\n // cellRenderer?: cellRendererI;\r\n editable?: any;\r\n sortable?: boolean | false;\r\n isfilter?: boolean | false; // to display filter icon in header\r\n // filter?: any;\r\n // filterParams?: any;\r\n // suppressMenu?: boolean = false;\r\n cellStyle?: 'text-align-center' | 'text-align-right'\r\n pinned?: boolean | 'left' | 'right' | null;\r\n cellEditor?: cellEditorI;\r\n cellEditorParams?: ISelectCellEditorParams;\r\n headerCheckboxSelection?: boolean | false;\r\n checkboxSelection?: boolean | false;\r\n valueFormatter?: \"currencyFormat\" | \"percentFormat\" | \"currencyFormatWith6Dec\" | \"percentFormatWith4Dec\"| \"dateFormat\" | null;\r\n cellClass?: string;\r\n aggFunc?: string = 'sum';\r\n valueParser?: string = \"Number(newValue)\";\r\n floatingFilter?: boolean | false;\r\n floatingDropDown?: boolean | false;\r\n hide?: boolean;\r\n cellClassRules?:any;\r\n isSelecte? : boolean;\r\n tooltipComponent?: 'CustomTooltip';\r\n tooltipField?: string;\r\n tooltipComponentParams?: ITooltipParams;\r\n}\r\nexport interface cellEditorI {\r\n cellEditor?: 'agSelectCellEditor' | 'dropdownRenderer' | 'datePickerEditor' | 'numericValueEditor' | null;\r\n cellEditorData?: any;\r\n cellEditorParams?: any;\r\n values?: any;\r\n cellEditorId?: any;\r\n}\r\nexport interface cellRendererI {\r\n cellType?: 'icons' | 'dropdown' | 'checkbox';\r\n cellRendererParams?: any;\r\n}\r\nconst cellClassRulesforSpecialAlloc = {\r\n \"opacity_4\": params => params.data.specialAlloc == false,\r\n };\r\n const cellClassRulesforSpecialPrefRetRate = {\r\n \"opacity_4\": params => params.data.specialPrefRetRate == false\r\n };\r\nconst SelectColumn : AgColDefsI ={\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n };\r\n const ActionColumn : AgColDefsI = {\r\n displayName: \"Actions\",\r\n field: \"actions\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"icons\",\r\n editable: false,\r\n sortable: false,\r\n lockPinned: true,\r\n }\r\n const FundNameColumn : AgColDefsI = {\r\n displayName: \"Fund\",\r\n field: \"fundName\",\r\n width: 150,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n isRequired: true,\r\n //floatingFilter: true,\r\n filterValueColumnName: \"fundName\",\r\n filterIdColumnName: \"fundId\",\r\n cellDisplayFormat: \"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n hide : true,\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n }\r\n\r\n const FundNameColumnFundLevel : AgColDefsI = {\r\n displayName: \"Fund\",\r\n field: \"fundName\",\r\n width: 150,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n isRequired: true,\r\n //floatingFilter: true,\r\n filterValueColumnName: \"fundName\",\r\n filterIdColumnName: \"fundId\",\r\n cellDisplayFormat: \"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n hide : true,\r\n isfilter: true\r\n}\r\n const DropdownFundNameColumn : AgColDefsI = {\r\n field: \"fundName\",\r\n displayName: \"Fund\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n filterValueColumnName: \"fundName\",\r\n filterIdColumnName: \"fundId\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n cellEditor: {\r\n // cellEditorData: carryPtrDesignationFilter\r\n },\r\n isRequired: true,\r\n isfilter: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\nconst InvestmentFundNameColumn : AgColDefsI = {\r\n field: \"fundName\",\r\n displayName: \"Fund\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n filterValueColumnName: \"fundName\",\r\n filterIdColumnName: \"fundsId\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n cellEditor: {\r\n // cellEditorData: carryPtrDesignationFilter\r\n },\r\n isRequired: true,\r\n isfilter: true,\r\n editable: true,\r\n lockPinned: true,\r\n \r\n}\r\n const VehicleInvestorColumn : AgColDefsI = {\r\n field: \"vehicleInvestorName\",\r\n displayName: \"Investor Group\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n filterValueColumnName: \"vehicleInvestorName\",\r\n filterIdColumnName: \"vehicleInvestorId\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n cellEditor: {\r\n // cellEditorData: carryPtrDesignationFilter\r\n },\r\n isRequired: true,\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n }\r\n const LEAssociationColumn : AgColDefsI = {\r\n field: \"leAssociationName\",\r\n displayName: \"LE Association\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n filterValueColumnName: \"leAssociationName\",\r\n filterIdColumnName: \"leAssociationId\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n cellEditor: {\r\n // cellEditorData: carryPtrDesignationFilter\r\n },\r\n isRequired: false,\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n}\r\n const InvestorColumn : AgColDefsI ={\r\n field: \"investorName\",\r\n displayName: \"Investor\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellEditor: {\r\n // cellEditorData: carryPtrDesignationFilter\r\n },\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"investorName\",\r\n filterIdColumnName: \"investorId\",\r\n isRequired: true,\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n }\r\n const InvestorInvestorColumn : AgColDefsI = {\r\n displayName: \"Investor\",\r\n field: \"investorName\",\r\n width: 150,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n isRequired: true,\r\n filterValueColumnName: \"investorName\",\r\n filterIdColumnName: \"investorId\",\r\n cellDisplayFormat: \"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n hide : true,\r\n isfilter: true,\r\n}\r\n const InvestorCommitmentColumn : AgColDefsI ={\r\n field: \"investorCommitment\",\r\n displayName: \"Commitment\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"investorCommitment\",\r\n cellDisplayFormat: \"textFilter\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellClass: \"rightAlignment\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const CommitPerColumn : AgColDefsI ={\r\n field: \"commitPer\",\r\n displayName: \"Commit %\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"commitPer\",\r\n cellDisplayFormat: \"textFilter\",\r\n valueFormatter: \"percentFormat\",\r\n cellClass: \"rightAlignment\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const RecCarryColumn : AgColDefsI ={\r\n field: \"recCarry\",\r\n displayName: \"Receives Carry\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellClass: \"leftAlignment\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n floatingDropDown: true,\r\n filterValueColumnName: \"recCarry\",\r\n cellDisplayFormat: \"textFilter\",\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const FeeEligibleColumn : AgColDefsI ={\r\n field: \"feeEligible\",\r\n displayName: \"Fee Eligible\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n floatingDropDown: true,\r\n filterValueColumnName: \"feeEligible\",\r\n cellDisplayFormat: \"textFilter\",\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const SpecialAllocColumn : AgColDefsI ={\r\n field: \"specialAlloc\",\r\n displayName: \"Special Alloc\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName: \"specialAlloc\",\r\n cellDisplayFormat: \"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n }\r\n const SideLetterColumn : AgColDefsI ={\r\n field: \"sideLetter\",\r\n displayName: \"Side Letter Agreement\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName: \"sideLetter\",\r\n cellDisplayFormat: \"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n}\r\n const SpecialGPAllocPercentColumn : AgColDefsI ={\r\n field: \"specialGPAllocPercent\",\r\n displayName: \"Special GP Alloc\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n filterValueColumnName: \"specialGPAllocPercent\",\r\n cellDisplayFormat: \"textFilter\",\r\n valueFormatter: \"percentFormat\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: (params) => params.data.specialAlloc == true,\r\n lockPinned: true,\r\n cellClassRules: cellClassRulesforSpecialAlloc,\r\n }\r\n const SideLetterPromote1Column : AgColDefsI ={\r\n field: \"sideLetterPromote1\",\r\n displayName: \"Side Letter Promote for 1st Hurdle\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n filterValueColumnName: \"sideLetterPromote1\",\r\n cellDisplayFormat: \"textFilter\",\r\n valueFormatter: \"percentFormatWith4Dec\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: (params) => params.data.sideLetter == true,\r\n lockPinned: true,\r\n cellClassRules: cellClassRulesforSpecialAlloc,\r\n type: \"editableColumn\",\r\n}\r\nconst SideLetterPromote2Column : AgColDefsI ={\r\n field: \"sideLetterPromote2\",\r\n displayName: \"Side Letter Promote for 2nd Hurdle\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n filterValueColumnName: \"sideLetterPromote2\",\r\n cellDisplayFormat: \"textFilter\",\r\n valueFormatter: \"percentFormatWith4Dec\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: (params) => params.data.sideLetter == true,\r\n lockPinned: true,\r\n cellClassRules: cellClassRulesforSpecialAlloc,\r\n type: \"editableColumn\",\r\n}\r\nconst SideLetterPromote3Column : AgColDefsI ={\r\n field: \"sideLetterPromote3\",\r\n displayName: \"Side Letter Promote for 3rd Hurdle\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n filterValueColumnName: \"sideLetterPromote3\",\r\n cellDisplayFormat: \"textFilter\",\r\n valueFormatter: \"percentFormatWith4Dec\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: (params) => params.data.sideLetter == true,\r\n lockPinned: true,\r\n cellClassRules: cellClassRulesforSpecialAlloc,\r\n type: \"editableColumn\",\r\n}\r\n const SideLetterPref1Column : AgColDefsI ={\r\n field: \"sideLetterPref1\",\r\n displayName: \"Side Letter Pref Ret for 1st Hurdle\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormatWith4Dec\",\r\n filterValueColumnName: \"sideLetterPref1\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: (params) => params.data.sideLetter == true,\r\n lockPinned: true,\r\n cellClassRules: cellClassRulesforSpecialPrefRetRate,\r\n type: \"editableColumn\",\r\n}\r\nconst SideLetterPref2Column : AgColDefsI ={\r\n field: \"sideLetterPref2\",\r\n displayName: \"Side Letter Pref Ret for 2nd Hurdle\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormatWith4Dec\",\r\n filterValueColumnName: \"sideLetterPref2\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: (params) => params.data.sideLetter == true,\r\n lockPinned: true,\r\n cellClassRules: cellClassRulesforSpecialPrefRetRate,\r\n type: \"editableColumn\",\r\n}\r\nconst SideLetterPref3Column : AgColDefsI ={\r\n field: \"sideLetterPref3\",\r\n displayName: \"Side Letter Pref Ret for 3rd Hurdle\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormatWith4Dec\",\r\n filterValueColumnName: \"sideLetterPref3\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: (params) => params.data.sideLetter == true,\r\n lockPinned: true,\r\n cellClassRules: cellClassRulesforSpecialPrefRetRate,\r\n type: \"editableColumn\",\r\n}\r\n const ActiveColumn : AgColDefsI ={\r\n field: \"active\",\r\n displayName: \"Active\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName: \"active\",\r\n cellDisplayFormat: \"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const FundInvestorExtIdColumn : AgColDefsI ={\r\n field: \"fundInvestorExtId\",\r\n displayName: \"External ID\",\r\n width: 100,\r\n filterValueColumnName: \"fundInvestorExtId\",\r\n cellDisplayFormat: \"textFilter\",\r\n minWidth: 30,\r\n cellStyle: \"text-align-right\",\r\n cellClass: \"rightAlignment\",\r\n floatingFilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const CommentsColumn : AgColDefsI ={\r\n field: \"comments\",\r\n cellClass: \"leftAlignment\",\r\n displayName: \"Comments\",\r\n filterValueColumnName: \"comments\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 100,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const PositionColumn : AgColDefsI ={\r\n field: \"positionName\",\r\n displayName: \"Position\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellEditor: {\r\n // cellEditorData: carryPtrDesignationFilter\r\n },\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"positionName\",\r\n filterIdColumnName: \"positionId\",\r\n isRequired: true,\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n }\r\n const PositionColumnFundLevel : AgColDefsI ={\r\n field: \"positionName\",\r\n displayName: \"Position\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellEditor: {\r\n // cellEditorData: carryPtrDesignationFilter\r\n },\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"positionName\",\r\n filterIdColumnName: \"positionId\",\r\n isRequired: true,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n}\r\n\r\n const PositionFormColumn : AgColDefsI ={\r\n field: \"positionName\",\r\n cellClass: \"leftAlignment\",\r\n displayName: \"Position\",\r\n filterValueColumnName: \"positionName\",\r\n filterIdColumnName: \"id\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 100,\r\n minWidth: 30,\r\n //floatingFilter: true,\r\n lockPinned: true,\r\n isfilter:true\r\n}\r\n\r\n const InvestmentColumn : AgColDefsI ={\r\n field: \"investmentName\",\r\n displayName: \"Investment\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellEditor: {\r\n // cellEditorData: carryPtrDesignationFilter\r\n },\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"investmentName\",\r\n filterIdColumnName: \"investmentId\",\r\n isRequired: true,\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n }\r\n\r\n const InvestmentInvestmentColumn : AgColDefsI ={\r\n field: \"investmentName\",\r\n displayName: \"Investment\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"investmentName\",\r\n filterIdColumnName: \"investmentId\",\r\n cellDisplayFormat: \"textFilter\",\r\n // cellStyle: \"text-align-left\",\r\n cellClass: \"leftAlignment\",\r\n //floatingFilter: true,\r\n isfilter:true,\r\n lockPinned: true,\r\n hide : true,\r\n editable: false\r\n}\r\n const InvestmentColumnFundLevel : AgColDefsI ={\r\n field: \"investmentName\",\r\n displayName: \"Investment\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellEditor: {\r\n // cellEditorData: carryPtrDesignationFilter\r\n },\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"investmentName\",\r\n filterIdColumnName: \"investmentId\",\r\n isRequired: true,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n}\r\n\r\n const FundInvestmentExtIdColumn : AgColDefsI ={\r\n field: \"fundInvestmentExtId\",\r\n displayName: \"External ID\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"fundInvestmentExtId\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellStyle: \"text-align-right\",\r\n cellClass: \"rightAlignment\",\r\n floatingFilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n\r\n const PositionExternalIdColumn : AgColDefsI ={\r\n field: \"positionExternalId\",\r\n displayName: \"External ID\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"positionExternalId\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellStyle: \"text-align-right\",\r\n cellClass: \"rightAlignment\",\r\n floatingFilter: true,\r\n lockPinned: true,\r\n}\r\n \r\n const FundInvestmentAmtColumn : AgColDefsI =\r\n {\r\n field: \"fundInvestmentAmt\",\r\n displayName: \"Amount\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n filterValueColumnName: \"fundInvestmentAmt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellRenderer: \"numericRenderer\",\r\n valueFormatter: \"currencyFormat\",\r\n cellStyle: \"text-align-right\",\r\n cellClass: \"rightAlignment\",\r\n floatingFilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const InvestmentVintageDateColumn : AgColDefsI =\r\n {\r\n field: \"strInvestmentVintageDate\",\r\n displayName: \"Vintage Date\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"datePickerEditor\",\r\n filterValueColumnName: \"strInvestmentVintageDate\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClass : \"datePickerRenderer\",\r\n cellRenderer: \"datePickerRenderer\",\r\n type: \"editableColumn\",\r\n cellStyle: \"text-align-center\",\r\n floatingFilter: true,\r\n lockPinned: true,\r\n \r\n }\r\n const CalcColumn : AgColDefsI =\r\n {\r\n displayName: \"Calc Name\",\r\n field: \"calcName\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"calcName\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClass: \"leftAlignment\",\r\n isRequired: false,\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const CalcRuleColumn : AgColDefsI =\r\n {\r\n field: \"calcRuleName\",\r\n displayName: \"Calc Rule\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"calcRuleName\",\r\n filterIdColumnName: \"calcRuleId\",\r\n cellClass: \"leftAlignment\",\r\n isRequired: false,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const CalcDateColumn : AgColDefsI =\r\n {\r\n field: \"strCalcDate\",\r\n displayName: \"Date\",\r\n width: 100,\r\n minWidth: 30,\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"strCalcDate\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClass: \"leftAlignment\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n valueFormatter : \"dateFormat\",\r\n type: \"editableColumn\",\r\n }\r\n const CalcDescColumn : AgColDefsI =\r\n {\r\n field: \"calcDesc\",\r\n displayName: \"Description\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"calcDesc\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClass: \"leftAlignment\",\r\n editable: false,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const CalcDataSetColumn : AgColDefsI =\r\n {\r\n field: \"calcDataSet\",\r\n displayName: \"Data Set\",\r\n cellClass: \"leftAlignment\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"calcDataSet\",\r\n cellDisplayFormat: \"textFilter\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const DistIncomeNumColumn : AgColDefsI =\r\n {\r\n field: \"distIncomeNum\",\r\n cellClass: \"leftAlignment\",\r\n displayName: \"Dist Income Num\",\r\n width: 100,\r\n cellType: \"number\",\r\n minWidth: 30,\r\n filterValueColumnName: \"distIncomeNum\",\r\n cellDisplayFormat: \"textFilter\",\r\n editable: false,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const CalcStatusColumn : AgColDefsI =\r\n {\r\n field: \"calcStatus\",\r\n cellClass: \"leftAlignment\",\r\n displayName: \"Status\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"calcStatus\",\r\n filterIdColumnName: \"calcStatusId\",\r\n editable: false,\r\n isfilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const DistReAllocEntriesColumn : AgColDefsI =\r\n {\r\n field: \"distReAllocEntries\",\r\n displayName: \"Dist Reallocation Entries\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName: \"distReAllocEntries\",\r\n cellDisplayFormat: \"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const LpaEntriesColumn : AgColDefsI =\r\n {\r\n field: \"lpaEntries\",\r\n displayName: \"LPA Entries\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName: \"lpaEntries\",\r\n cellDisplayFormat: \"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const IncomeReAllocEntriesColumn : AgColDefsI =\r\n {\r\n field: \"incomeReAllocEntries\",\r\n displayName: \"Income Reallocation Entries\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName: \"incomeReAllocEntries\",\r\n cellDisplayFormat: \"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const UnrealizedEntriesColumn : AgColDefsI =\r\n {\r\n field: \"unrealizedEntries\",\r\n displayName: \"Unrealized Entries\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName: \"unrealizedEntries\",\r\n cellDisplayFormat: \"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const RunColumn : AgColDefsI =\r\n {\r\n displayName: \"Run\",\r\n field: \"run\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"run\",\r\n cellStyle: \"text-align-center\",\r\n editable: false,\r\n sortable: false,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const PtrTransNameIdColumn : AgColDefsI =\r\n {\r\n field: \"ptrTransNameId\",\r\n displayName: \"Transfer ID\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"ptrTransNameId\",\r\n cellDisplayFormat: \"textFilter\",\r\n isRequired: true,\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\n const PtrTransferNameColumn : AgColDefsI =\r\n {\r\n field: \"ptrTransferName\",\r\n displayName: \"Transfer Name\",\r\n width: 100,\r\n minWidth: 30,\r\n filterValueColumnName: \"ptrTransferName\",\r\n cellDisplayFormat: \"textFilter\",\r\n isRequired: true,\r\n floatingFilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n \r\n }\r\n const TransferDateColumn : AgColDefsI =\r\n {\r\n field: \"strTransferDate\",\r\n displayName: \"Transfer Date\",\r\n width: 100,\r\n minWidth: 30,\r\n isRequired: true,\r\n cellType: \"datePickerEditor\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"strTransferDate\",\r\n filterIdColumnName: \"transferDate\",\r\n isDateFilterShow: true,\r\n cellDisplayFormat: \"dateFilter\",\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n }\r\n const TransferTypeColumn : AgColDefsI =\r\n {\r\n field: \"transferType\",\r\n displayName: \"Transfer Type\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellEditor: {\r\n // cellEditorData: carryPtrDesignationFilter\r\n },\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"transferType\",\r\n filterIdColumnName: \"transferTypeId\",\r\n // cellEditor: {\r\n // // cellEditor: \"dropdownRenderer\",\r\n // cellEditorData: this.transferTypeNameFilter\r\n // },\r\n isRequired: true,\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n }\r\n const TransferPerColumn : AgColDefsI =\r\n {\r\n field: \"transferPer\",\r\n displayName: \"Transfer %\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n filterValueColumnName: \"transferPer\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellRenderer: \"numericRenderer\",\r\n valueFormatter: \"currencyFormat\",\r\n isRequired: true,\r\n floatingFilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n }\r\n const StatusColumn : AgColDefsI =\r\n {\r\n field: \"status\",\r\n displayName: \"Status\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"status\",\r\n filterIdColumnName: \"statusId\",\r\n cellEditor: {\r\n \r\n },\r\n isRequired: true,\r\n isfilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n }\r\nexport const ColDefsInvestor: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n FundNameColumn,\r\n InvestorColumn,\r\n VehicleInvestorColumn,\r\n LEAssociationColumn,\r\n InvestorCommitmentColumn,\r\n CommitPerColumn,\r\n RecCarryColumn,\r\n FeeEligibleColumn,\r\n SideLetterColumn,\r\n SideLetterPromote1Column,\r\n SideLetterPromote2Column,\r\n SideLetterPromote3Column,\r\n SideLetterPref1Column,\r\n SideLetterPref2Column,\r\n SideLetterPref3Column,\r\n ActiveColumn,\r\n FundInvestorExtIdColumn,\r\n CommentsColumn\r\n ];\r\n export const ColDefsInvestment: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n FundNameColumn,\r\n InvestmentColumn,\r\n PositionColumn,\r\n FundInvestmentExtIdColumn,\r\n FundInvestmentAmtColumn,\r\n ActiveColumn,\r\n InvestmentVintageDateColumn,\r\n CommentsColumn\r\n ];\r\n export const ColDefsInvestmentMaster: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n InvestmentFundNameColumn,\r\n InvestmentInvestmentColumn,\r\n PositionColumn,\r\n FundInvestmentExtIdColumn,\r\n FundInvestmentAmtColumn,\r\n ActiveColumn,\r\n InvestmentVintageDateColumn,\r\n CommentsColumn\r\n];\r\n export const ColDefsPositions: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n PositionFormColumn,\r\n ActiveColumn,\r\n PositionExternalIdColumn,\r\n CommentsColumn\r\n];\r\n export const ColDefsCalculations: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n FundNameColumn,\r\n CalcColumn,\r\n CalcRuleColumn,\r\n CalcDateColumn,\r\n CalcDescColumn,\r\n CalcDataSetColumn,\r\n DistIncomeNumColumn,\r\n CalcStatusColumn\r\n ];\r\n export const ColDefsCalculationSetting: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n FundNameColumn,\r\n DistReAllocEntriesColumn,\r\n LpaEntriesColumn,\r\n IncomeReAllocEntriesColumn,\r\n UnrealizedEntriesColumn,\r\n CommentsColumn\r\n ];\r\n export const ColDefsPtrTransfer: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n FundNameColumn,\r\n RunColumn,\r\n PtrTransNameIdColumn,\r\n PtrTransferNameColumn,\r\n VehicleInvestorColumn,\r\n InvestorColumn,\r\n TransferDateColumn,\r\n TransferTypeColumn,\r\n TransferPerColumn,\r\n StatusColumn,\r\n CommentsColumn,\r\n ];\r\n export const ColDefsFundCommitments: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n DropdownFundNameColumn,\r\n InvestorInvestorColumn,\r\n VehicleInvestorColumn,\r\n LEAssociationColumn,\r\n InvestorCommitmentColumn,\r\n CommitPerColumn,\r\n RecCarryColumn,\r\n FeeEligibleColumn,\r\n SideLetterColumn,\r\n SideLetterPromote1Column,\r\n SideLetterPromote2Column,\r\n SideLetterPromote3Column,\r\n SideLetterPref1Column,\r\n SideLetterPref2Column,\r\n SideLetterPref3Column,\r\n ActiveColumn,\r\n FundInvestorExtIdColumn,\r\n CommentsColumn\r\n];\r\n//#region Calculation rules only\r\nconst TierOrderColumn : AgColDefsI =\r\n{\r\n displayName: \"Tier Order\",\r\n field: \"tierOrder\",\r\n width: 100,\r\n minWidth: 30,\r\n // cellType: \"number\",\r\n filterValueColumnName:\"tierOrder\",\r\n cellDisplayFormat:\"textFilter\",\r\n cellRenderer: \"numericRenderer\",\r\n cellClass: \"rightAlignment\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n lockPinned: true,\r\n}\r\nconst TierColumn : AgColDefsI =\r\n{\r\n displayName: \"Tier\",\r\n field: \"tierName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterIdColumnName:\"tierId\",\r\n filterValueColumnName:\"tierName\",\r\n cellEditor: {\r\n },\r\n isfilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\"\r\n}\r\n\r\nconst TransSetForUploadColumn : AgColDefsI =\r\n{\r\n displayName: \"Trans Set For Upload\",\r\n field: \"transSetForUploadName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterIdColumnName:\"transSetForUploadId\",\r\n filterValueColumnName:\"transSetForUploadName\",\r\n cellEditor: {\r\n },\r\n isfilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\"\r\n}\r\n\r\nconst PrefReturnRuleColumn : AgColDefsI =\r\n{\r\n displayName: \"Pref Return Rule\",\r\n field: \"prefReturnRuleName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterIdColumnName:\"prefReturnRuleId\",\r\n filterValueColumnName:\"prefReturnRuleName\",\r\n cellEditor: {\r\n },\r\n isfilter: true,\r\n lockPinned: true,\r\n}\r\nconst ParticipantAlloc : AgColDefsI ={\r\n field: \"participantAlloc\",\r\n displayName: \"ParticipantAlloc\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormat\",\r\n filterValueColumnName: \"participantAlloc\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: true,\r\n lockPinned: true\r\n};\r\nconst CarriedInterest : AgColDefsI ={\r\n field: \"carriedInterest\",\r\n displayName: \"CarriedInterest\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormat\",\r\n filterValueColumnName: \"carriedInterest\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: true,\r\n lockPinned: true\r\n};\r\nconst AllocateColumn : AgColDefsI =\r\n{\r\n displayName: \"Allocate\",\r\n field: \"allocate\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterIdColumnName:\"allocate\",\r\n filterValueColumnName:\"allocate\",\r\n cellEditor: {\r\n },\r\n isfilter: true,\r\n lockPinned: true,\r\n}\r\n\r\nconst TransactionSetColumn : AgColDefsI =\r\n{\r\n displayName: \"Transaction Set\",\r\n field: \"tierName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterIdColumnName:\"transactionSet\",\r\n filterValueColumnName:\"tierName\",\r\n cellEditor: {\r\n },\r\n isfilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n}\r\nconst TransactionSetColumnFundLevel : AgColDefsI =\r\n{\r\n displayName: \"Transaction Set\",\r\n field: \"tierName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterIdColumnName:\"tierId\",\r\n filterValueColumnName:\"tierName\",\r\n cellEditor: {\r\n },\r\n isfilter: true,\r\n lockPinned: true,\r\n type: \"editableColumn\"\r\n}\r\nconst ComparisonTierColumn : AgColDefsI =\r\n{\r\n displayName: \"Comparison Tier\",\r\n field: \"comparisonTierName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterIdColumnName:\"comparisonTierId\",\r\n filterValueColumnName:\"comparisonTierName\",\r\n cellEditor: {\r\n \r\n },\r\n type: \"editableColumn\",\r\n isfilter: true,\r\n lockPinned: true,\r\n}\r\nconst RollupLevelColumn : AgColDefsI =\r\n{\r\n displayName: \"Rollup Level\",\r\n field: \"rollupLevelName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n cellDisplayFormat:\"textFilter\",\r\n filterIdColumnName: \"rollupLevelId\",\r\n filterValueColumnName: \"rollupLevelName\",\r\n cellEditor: {},\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n}\r\n\r\nconst ApplyForColumn : AgColDefsI =\r\n{\r\n displayName: \"Apply For\",\r\n field: \"applyForName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n cellDisplayFormat:\"textFilter\",\r\n filterIdColumnName: \"applyForId\",\r\n filterValueColumnName: \"applyForName\",\r\n cellEditor: {\r\n \r\n },\r\n floatingDropDown: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\n\r\nconst ExpAllocationTierColumn : AgColDefsI =\r\n{\r\n displayName: \"Update Proportional %\",\r\n field: \"expAllocationTierName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n cellDisplayFormat:\"textFilter\",\r\n filterIdColumnName: \"expAllocationTierId\",\r\n filterValueColumnName: \"expAllocationTierName\",\r\n cellEditor: {\r\n \r\n },\r\n floatingDropDown: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\n\r\nconst NumeratorDenominatorColumn : AgColDefsI =\r\n{\r\n displayName: \"Numerator / Denominator\",\r\n field: \"numDenom\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterIdColumnName:\"numDenom\",\r\n filterValueColumnName:\"numDenom\",\r\n cellEditor: {\r\n },\r\n isfilter: true,\r\n lockPinned: true,\r\n}\r\n\r\nconst IncludeinBalanceColumn : AgColDefsI =\r\n{\r\n displayName: \"Include in Calc Balance\",\r\n field: \"includeinBalanceName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n cellDisplayFormat:\"textFilter\",\r\n filterIdColumnName: \"includeinBalanceId\",\r\n filterValueColumnName: \"includeinBalanceName\",\r\n cellEditor: {},\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n}\r\nconst SystemTierColumn : AgColDefsI =\r\n{\r\n displayName: \"Customized Tier\",\r\n field: \"systemTier\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName:\"systemTier\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n}\r\nconst PrefRetTierColumn : AgColDefsI =\r\n{\r\n displayName: \"Pref. Ret. Tier\",\r\n field: \"prefRetTier\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName:\"prefRetTier\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\n\r\nconst CheckBalAmtColumn : AgColDefsI =\r\n{\r\n displayName: \"Check CF Amt\",\r\n field: \"checkBalAmt\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName:\"checkBalAmt\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n}\r\n\r\nconst DistProceedAmtColumn : AgColDefsI =\r\n{\r\n displayName: \"Gross Distribution Proceeds\",\r\n field: \"distProceedAmt\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName:\"distProceedAmt\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\n\r\nconst AllocateCarryPromoteAmtColumn : AgColDefsI =\r\n{\r\n displayName: \"Include in Total Carry / Promote\",\r\n field: \"allocateCarryPromoteAmt\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName:\"allocateCarryPromoteAmt\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\n\r\nconst TierCarryPerColumn : AgColDefsI =\r\n{\r\n displayName: \"Carried Interest % / Promote %\",\r\n field: \"tierCarryPer\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n valueFormatter: \"percentFormat\",\r\n cellRenderer: \"numericRenderer\",\r\n filterValueColumnName:\"tierCarryPer\",\r\n cellDisplayFormat:\"textFilter\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: true, //(params) =>( params.data.applyTierCarryPer == true),\r\n lockPinned: true,\r\n}\r\nconst HurdleRateColumn : AgColDefsI =\r\n{\r\n displayName: \"Pref Ret / Hurdle Rate\",\r\n field: \"hurdleRate\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n valueFormatter: \"percentFormatWith4Dec\",\r\n cellRenderer: \"numericRenderer\",\r\n filterValueColumnName:\"hurdleRate\",\r\n cellDisplayFormat:\"textFilter\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\n\r\nconst TerminationTierColumn : AgColDefsI =\r\n{\r\n displayName: \"Termination Tier\",\r\n field: \"terminationTier\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName:\"terminationTier\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\nconst CatchupFeatureColumn : AgColDefsI =\r\n{\r\n displayName: \"Catch up Feature\",\r\n field: \"catchUpFeature\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"catchUpFeature\",\r\n cellDisplayFormat:\"textFilter\",\r\n cellRenderer: \"checkboxRenderer\",\r\n floatingDropDown: true,\r\n editable: (params) => params.data.prefRetTier == true,\r\n lockPinned: true,\r\n}\r\nconst CatchUpPercentColumn : AgColDefsI =\r\n{\r\n displayName: \"Catch-up %\",\r\n field: \"catchUpPercent\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n valueFormatter: \"percentFormat\",\r\n cellRenderer: \"numericRenderer\",\r\n filterValueColumnName:\"catchUpPercent\",\r\n cellDisplayFormat:\"textFilter\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\nconst SwitchSignTierAmtColumn : AgColDefsI =\r\n{\r\n displayName: \"Switch Sign-Tier Amt\",\r\n field: \"switchSignTierAmt\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName:\"switchSignTierAmt\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\nconst SwitchSignTierCompAmtColumn : AgColDefsI =\r\n{\r\n displayName: \"Switch Sign-Tier Comp.Amt\",\r\n field: \"switchSignTierCompAmt\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName:\"switchSignTierCompAmt\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\nconst LPASubActColumn : AgColDefsI =\r\n{\r\n displayName: \"LPA Sub Act\",\r\n field: \"lpaSubActName\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterIdColumnName:\"lpaSubActID\",\r\n filterValueColumnName:\"lpaSubActName\",\r\n cellEditor: {\r\n \r\n },\r\n isRequired: true,\r\n isfilter: true,\r\n editable: true,\r\n lockPinned: true,\r\n}\r\n\r\n// const OperatorColumn : AgColDefsI =\r\n// {\r\n// displayName: \"Operator\",\r\n// field: \"operator\",\r\n// width: 100,\r\n// minWidth: 30,\r\n// cellType: \"dropdown\",\r\n// filterValueColumnName:\"operator\",\r\n// cellRenderer: \"dropdownRenderer\",\r\n// cellClass: \"leftAlignment\",\r\n// cellEditor: {\r\n \r\n// },\r\n// isfilter: true,\r\n// type: \"editableColumn\",\r\n// lockPinned: true,\r\n// cellClassRules: {\r\n// blueBackground: (params) => {\r\n// return params.data.isSumRow == true;\r\n// }\r\n// },\r\n// }\r\n\r\nexport const colDefsTier: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n TierOrderColumn,\r\n TierColumn,\r\n TransSetForUploadColumn,\r\n ComparisonTierColumn,\r\n RollupLevelColumn,\r\n\r\n ExpAllocationTierColumn,\r\n IncludeinBalanceColumn,\r\n PrefRetTierColumn,\r\n HurdleRateColumn,\r\n // ApplyTierCarryPerColumn,\r\n TierCarryPerColumn,\r\n TerminationTierColumn,\r\n CatchupFeatureColumn,\r\n CatchUpPercentColumn,\r\n SwitchSignTierAmtColumn,\r\n SwitchSignTierCompAmtColumn,\r\n LPASubActColumn,\r\n CommentsColumn,\r\n // OperatorColumn,\r\n PrefReturnRuleColumn,\r\n CheckBalAmtColumn,\r\n DistProceedAmtColumn,\r\n AllocateCarryPromoteAmtColumn,\r\n AllocateColumn\r\n];\r\nexport const colDefsTierFilter: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Tier\",\r\n field: \"tier\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterIdColumnName:\"tierId\",\r\n filterValueColumnName:\"tier\",\r\n cellEditor: {\r\n \r\n },\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n },\r\n ApplyForColumn,\r\n {\r\n displayName: \"Filter Field\",\r\n field: \"filterField\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n filterValueColumnName:\"filterField\",\r\n filterIdColumnName:\"filterFieldId\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n cellEditor: {\r\n \r\n },\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Filter Criteria\",\r\n field: \"filterCriteria\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"dropdown\",\r\n filterValueColumnName:\"filterCriteria\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n cellEditor: {\r\n \r\n },\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Value\",\r\n field: \"value\",\r\n width: 100,\r\n filterValueColumnName:\"value\",\r\n cellDisplayFormat:\"textFilter\",\r\n minWidth: 30,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n },\r\n];\r\n\r\n\r\nexport const colDefsPrefRetStructure: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n \r\n displayName: \"Preferred Return Information\",\r\n field: \"prefRetInfo\",\r\n width: 100,\r\n filterValueColumnName:\"prefRetInfo\",\r\n cellDisplayFormat:\"textFilter\",\r\n minWidth: 30,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n },\r\n \r\n {\r\n displayName: \"Level\",\r\n field: \"prefRetLevel\",\r\n width: 100,\r\n minWidth: 30,\r\n // cellType: \"number\",\r\n filterValueColumnName:\"prefRetLevel\",\r\n cellDisplayFormat:\"textFilter\",\r\n cellRenderer: \"numericRenderer\",\r\n cellClass: \"rightAlignment\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Begin Hurdle Rate\",\r\n field: \"beginHurdleRate\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n valueFormatter: \"percentFormatWith4Dec\",\r\n cellRenderer: \"numericRenderer\",\r\n filterValueColumnName:\"hurdleRate\",\r\n cellDisplayFormat:\"textFilter\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: true,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"End Hurdle Rate\",\r\n field: \"endHurdleRate\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n valueFormatter: \"percentFormatWith4Dec\",\r\n cellRenderer: \"numericRenderer\",\r\n filterValueColumnName:\"hurdleRate\",\r\n cellDisplayFormat:\"textFilter\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: true,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Promote / Carry %\",\r\n field: \"promoteCarryPer\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n valueFormatter: \"percentFormatWith4Dec\",\r\n cellRenderer: \"numericRenderer\",\r\n filterValueColumnName:\"promoteCarryPer\",\r\n cellDisplayFormat:\"textFilter\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: true,\r\n lockPinned: true,\r\n }\r\n];\r\n\r\n//#endregion calculation rules only\r\n//#region tier only\r\nexport const colDefsTierComponents: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Tier ID\",\r\n field: \"tierId\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"tierId\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n hide : true\r\n },\r\n {\r\n displayName: \"Tier Sub Act ID\",\r\n field: \"id\",\r\n width: 150,\r\n filterValueColumnName: 'id',\r\n cellDisplayFormat:\"textFilter\",\r\n floatingFilter: true,\r\n lockPinned: true,\r\n hide : true\r\n },\r\n {\r\n displayName: \"Sub Act\",\r\n field: \"subActName\",\r\n width: 150,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n filterValueColumnName: \"subActName\",\r\n filterIdColumnName: \"subActId\",\r\n cellEditor: {\r\n \r\n },\r\n cellClass: \"leftAlignment\",\r\n isfilter: true,\r\n lockPinned: true,\r\n },\r\n];\r\n//#endregion\r\n//#region performance rules only\r\nexport const colDefsTransactionSet: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n TierColumn,\r\n RollupLevelColumn,\r\n NumeratorDenominatorColumn,\r\n {\r\n displayName: \"Switch Pos / Neg Sign\",\r\n field: \"switchSign\",\r\n width: 150,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"switchSign\",\r\n cellDisplayFormat:\"textFilter\",\r\n cellType: \"checkbox\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n },\r\n \r\n CommentsColumn\r\n];\r\n\r\nexport const colDefsTransactionSetFilter: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n TierColumn,\r\n {\r\n displayName: \"Filter Field\",\r\n field: \"filterField\",\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"filterField\",\r\n filterIdColumnName: \"filterFieldId\",\r\n cellEditor: {\r\n \r\n },\r\n width: 150,\r\n isfilter: true,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Filter Criteria\",\r\n field: \"filterCriteria\",\r\n width: 150,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n filterValueColumnName: \"filterCriteria\",\r\n filterIdColumnName: \"\",\r\n cellEditor: {\r\n \r\n },\r\n cellClass: \"leftAlignment\",\r\n isfilter: true,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Value\",\r\n field: \"filterValue\",\r\n width: 150,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"filterValue\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingFilter: true,\r\n lockPinned: true,\r\n },\r\n];\r\n//#endregion \r\n//#region lookups\r\nexport const colDefsLookupDayBasisSetting: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Day Basic Setting\",\r\n field: \"dayBasisSettingName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"dayBasisSettingName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n },\r\n];\r\nexport const colDefsLookupFundCurrency: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"ISOCode\",\r\n field: \"isoCode\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"isoCode\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n },\r\n {\r\n displayName: \"Currency Name\",\r\n field: \"currencyName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"currencyName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n },\r\n];\r\nexport const colDefsLookupFundGroup: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Fund Group\",\r\n field: \"fundGroupName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"fundGroupName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n },\r\n];\r\nexport const colDefsLookupFundType: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Fund Type\",\r\n field: \"fundTypeName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"fundTypeName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n },\r\n];\r\nexport const colDefsLookupInvestmentClassification: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Investment Classification\",\r\n field: \"investmentClassificationName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"investmentClassificationName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n }\r\n];\r\nexport const colDefsLookupInvestmentGroup: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Investment Group\",\r\n field: \"investmentGroupName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"investmentGroupName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n }\r\n];\r\nexport const colDefsLookupInvestorClassification: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Investor Classification\",\r\n field: \"investorClassificationName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"investorClassificationName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n }\r\n];\r\nexport const colDefsLookupInvestorGroup: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Investor Group\",\r\n field: \"investorGroupName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"investorGroupName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n }\r\n];\r\nexport const colDefsLookupInvestorVehicle: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Fund Investor Group\",\r\n field: \"vehicleInvestorName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"vehicleInvestorName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n }\r\n];\r\nexport const colDefsLookupSubAccount: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Sub Act Name\",\r\n field: \"subActName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"subActName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n },\r\n {\r\n displayName: \"IsLPA\",\r\n field: \"isLPA\",\r\n floatingFilter: true,\r\n cellType: \"checkbox\",\r\n filterValueColumnName: \"isLPA\",\r\n // cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n },\r\n {\r\n displayName: \"GLAct\",\r\n field: \"glAct\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"glAct\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n }\r\n];\r\nexport const colDefsLookupTierComponent: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"TierComponent\",\r\n field: \"tierComponentName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"tierComponentName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n }\r\n \r\n];\r\nexport const colDefsLookupDoamin: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Domain\",\r\n field: \"domainName\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"domainName\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 150,\r\n }\r\n \r\n];\r\n//#region Transactions defs\r\nconst TransIdColumn : AgColDefsI =\r\n{\r\n displayName: \"TransID\",\r\n field: \"id\",\r\n width: 120,\r\n minWidth: 30,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"id\",\r\n cellDisplayFormat: \"textFilter\"\r\n}\r\nconst JournalIdColumn : AgColDefsI =\r\n{\r\n displayName: \"Journal ID\",\r\n field: \"journalId\",\r\n width: 120,\r\n minWidth: 30,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"journalId\",\r\n cellDisplayFormat: \"textFilter\"\r\n}\r\nconst SubJournalIdColumn : AgColDefsI =\r\n{\r\n displayName: \"Sub Journal ID\",\r\n field: \"subJournalId\",\r\n width: 120,\r\n minWidth: 30,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"subJournalId\",\r\n cellDisplayFormat: \"textFilter\"\r\n}\r\nconst VehicleInvestorNameColumn : AgColDefsI =\r\n{\r\n displayName: \"Investor Group\",\r\n field: \"vehicleInvestorName\",\r\n width: 120,\r\n minWidth: 30,\r\n isfilter: true,\r\n isRequired: true,\r\n type: \"editableColumn\",\r\n cellType: \"dropdown\",\r\n cellRenderer: 'transactionDropdownRenderer',\r\n cellClass: 'leftAlignment',\r\n filterValueColumnName: \"vehicleInvestorName\",\r\n filterIdColumnName: \"vehicleInvestorId\",\r\n cellEditor: {\r\n // // cellEditor: \"dropdownRenderer\",\r\n // cellEditorData: this.agvehicalData,\r\n // cellEditorId: this.agvehicalId,\r\n },\r\n}\r\nconst TransactionInvestorColumn : AgColDefsI =\r\n{\r\n displayName: \"Investor\",\r\n field: \"investorName\",\r\n width: 120,\r\n minWidth: 30,\r\n isfilter: true,\r\n isRequired: true,\r\n type: \"editableColumn\",\r\n cellType: \"dropdown\",\r\n cellRenderer: 'transactionDropdownRenderer',\r\n cellClass: 'leftAlignment',\r\n filterValueColumnName: \"investorName\",\r\n filterIdColumnName: \"investorId\",\r\n cellEditor: { },\r\n}\r\nconst CalculationNameColumn : AgColDefsI =\r\n{\r\n displayName: \"Calculation Name\",\r\n field: \"calculationName\",\r\n width: 120,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n //floatingFilter: true,\r\n filterValueColumnName: \"calculationName\",\r\n filterIdColumnName: \"calcId\",\r\n cellDisplayFormat: \"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n hide : false,\r\n isfilter: true\r\n}\r\nconst TransactionInvestmentColumn : AgColDefsI =\r\n{\r\n displayName: \"Investment\",\r\n field: \"investmentName\",\r\n width: 120,\r\n minWidth: 30,\r\n isfilter: true,\r\n isRequired: true,\r\n type: \"editableColumn\",\r\n cellType: \"dropdown\",\r\n cellRenderer: 'transactionDropdownRenderer',\r\n cellClass: 'leftAlignment',\r\n filterValueColumnName: \"investmentName\",\r\n filterIdColumnName: \"investmentId\",\r\n cellEditor: {},\r\n}\r\nconst TransactionPositionColumn : AgColDefsI =\r\n{\r\n displayName: \"Position\",\r\n field: \"positionName\",\r\n width: 120,\r\n minWidth: 30,\r\n isfilter: true,\r\n isRequired: true,\r\n type: \"editableColumn\",\r\n cellType: \"dropdown\",\r\n cellRenderer: 'transactionDropdownRenderer',\r\n cellClass: 'leftAlignment',\r\n filterValueColumnName: \"positionName\",\r\n filterIdColumnName: \"positionId\",\r\n cellEditor: {\r\n }\r\n}\r\nconst TransactionDateColumn : AgColDefsI =\r\n{\r\n displayName: \"Transaction Date\",\r\n field: \"transactionDate\",\r\n width: 120,\r\n minWidth: 30,\r\n cellType: \"datePickerEditor\",\r\n cellRenderer: 'datePickerRenderer',\r\n type: \"editableColumn\",\r\n isfilter: true,\r\n floatingFilter: true,\r\n // cellStyle: \"text-align-center\",\r\n // cellClass: \"ExcelDate\",\r\n filterValueColumnName: \"transactionDate\",\r\n cellDisplayFormat: \"textFilter\",\r\n isDateFilterShow: true\r\n}\r\n\r\nconst TransactionDistIncomeNumColumn : AgColDefsI =\r\n{\r\n displayName: \"Dist Income Num\",\r\n field: \"distIncomeNum\",\r\n valueFormatter: \"currencyFormat\",\r\n width: 120,\r\n minWidth: 30,\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n cellClass: \"rightAlignment\",\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"distIncomeNum\",\r\n cellDisplayFormat: \"textFilter\",\r\n}\r\nconst TransactionAmountColumn : AgColDefsI =\r\n{\r\n displayName: \"Amount\",\r\n field: \"amt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: 'negativeInBrackets',\r\n filterValueColumnName: \"amt\",\r\n cellDisplayFormat: \"textFilter\"\r\n}\r\n\r\nconst TransactionImportAmountColumn : AgColDefsI =\r\n{\r\ndisplayName: \"Amount\",\r\nfield: \"amt\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"rightAlignment\",\r\nfilterValueColumnName: \"amt\",\r\ncellDisplayFormat: \"textFilter\"\r\n}\r\n\r\nconst LocalAmtImportColumn : AgColDefsI =\r\n{\r\ndisplayName: \"Local Amount\",\r\nfield: \"localAmt\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"rightAlignment\",\r\nfilterValueColumnName: \"localAmt\",\r\ncellDisplayFormat: \"textFilter\"\r\n}\r\nconst LocalAmtColumn : AgColDefsI =\r\n{\r\n displayName: \"Local Amount\",\r\n field: \"localAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"localAmt\",\r\n cellDisplayFormat: \"textFilter\",\r\n}\r\nconst FXRateImportColumn : AgColDefsI =\r\n{\r\ndisplayName: \"FX Rate\",\r\nfield: \"fxRate\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"rightAlignment\",\r\nfilterValueColumnName: \"fxRate\",\r\ncellDisplayFormat: \"textFilter\"\r\n}\r\nconst FXRateColumn : AgColDefsI =\r\n{\r\n displayName: \"FX Rate\",\r\n field: \"fxRate\",\r\n valueFormatter: \"currencyFormatWith6Dec\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"fxRate\",\r\n cellDisplayFormat: \"textFilter\",\r\n}\r\nconst ImportuserIdColumn : AgColDefsI =\r\n{\r\n displayName: \"Created By\",\r\n field: \"importUserId\",\r\n width: 120,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n editable: false,\r\n type: \"editableColumn\",\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"importUserId\",\r\n cellDisplayFormat: \"textFilter\",\r\n}\r\nconst ImportDateColumn : AgColDefsI =\r\n{\r\n displayName: \"Created Date\",\r\n field: \"importDate\",\r\n width: 120,\r\n minWidth: 30,\r\n cellType: \"datePickerEditor\",\r\n cellRenderer: 'datePickerRenderer',\r\n type: \"editableColumn\",\r\n isfilter: true,\r\n floatingFilter: true,\r\n // cellStyle: \"text-align-center\",\r\n // cellClass: \"ExcelDate\",\r\n filterValueColumnName: \"importDate\",\r\n cellDisplayFormat: \"dateFilter\",\r\n isDateFilterShow: true,\r\n \r\n }\r\nconst LotColumn : AgColDefsI =\r\n{\r\ndisplayName: \"Lot\",\r\nfield: \"lot\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\nfilterValueColumnName: \"lot\",\r\ncellDisplayFormat: \"textFilter\"\r\n}\r\nconst BookingDateColumn : AgColDefsI =\r\n{\r\ndisplayName: \"GL Date\",\r\n field: \"glDate\",\r\n width: 120,\r\n minWidth: 30,\r\n cellType: \"datePickerEditor\",\r\n cellRenderer: 'datePickerRenderer',\r\n type: \"editableColumn\",\r\n isfilter: true,\r\n floatingFilter: true,\r\n // cellStyle: \"text-align-center\",\r\n // cellClass: \"ExcelDate\",\r\n filterValueColumnName: \"glDate\",\r\n cellDisplayFormat: \"dateFilter\",\r\n isDateFilterShow: true,\r\n\r\n}\r\nconst PtrTransColumn : AgColDefsI =\r\n{\r\ndisplayName: \"Ptr Trans\",\r\nfield: \"ptrTrans\",\r\ncellType: \"checkbox\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingDropDown: true,\r\ncellClass: \"leftAlignment\",\r\ntype: \"editableColumn\",\r\ncellRenderer: 'checkboxRenderer',\r\nfilterValueColumnName: \"ptrTrans\",\r\ncellDisplayFormat: \"textFilter\",\r\n}\r\nconst TransTxt1Column : AgColDefsI =\r\n{\r\ndisplayName: \"transTxt1\",\r\nfield: \"transTxt1\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\nfilterValueColumnName: \"transTxt1\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransTxt2Column : AgColDefsI =\r\n{\r\ndisplayName: \"transTxt2\",\r\nfield: \"transTxt2\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\nfilterValueColumnName: \"transTxt2\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransTxt3Column : AgColDefsI =\r\n{\r\ndisplayName: \"transTxt3\",\r\nfield: \"transTxt3\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\nfilterValueColumnName: \"transTxt3\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransTxt4Column : AgColDefsI =\r\n{\r\ndisplayName: \"transTxt4\",\r\nfield: \"transTxt4\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\nfilterValueColumnName: \"transTxt4\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransTxt5Column : AgColDefsI =\r\n{\r\ndisplayName: \"transTxt5\",\r\nfield: \"transTxt5\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\nfilterValueColumnName: \"transTxt5\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransTxt6Column : AgColDefsI =\r\n{\r\ndisplayName: \"transTxt6\",\r\nfield: \"transTxt6\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\nfilterValueColumnName: \"transTxt6\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransNum1Column : AgColDefsI =\r\n{\r\ndisplayName: \"transNum1\",\r\nfield: \"transNum1\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\ncellRenderer: 'numericRenderer',\r\nvalueFormatter: \"currencyFormat\",\r\nfilterValueColumnName: \"transNum1\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransNum2Column : AgColDefsI =\r\n{\r\ndisplayName: \"transNum2\",\r\nfield: \"transNum2\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\ncellRenderer: 'numericRenderer',\r\nvalueFormatter: \"currencyFormat\",\r\nfilterValueColumnName: \"transNum2\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransNum3Column : AgColDefsI =\r\n{\r\ndisplayName: \"transNum3\",\r\nfield: \"transNum3\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\ncellRenderer: 'numericRenderer',\r\nvalueFormatter: \"currencyFormat\",\r\nfilterValueColumnName: \"transNum3\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransNum4Column : AgColDefsI =\r\n{\r\ndisplayName: \"transNum4\",\r\nfield: \"transNum4\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\ncellRenderer: 'numericRenderer',\r\nvalueFormatter: \"currencyFormat\",\r\nfilterValueColumnName: \"transNum4\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransNum5Column : AgColDefsI =\r\n{\r\ndisplayName: \"transNum5\",\r\nfield: \"transNum5\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\ncellRenderer: 'numericRenderer',\r\nvalueFormatter: \"currencyFormat\",\r\nfilterValueColumnName: \"transNum5\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransNum6Column : AgColDefsI =\r\n{\r\ndisplayName: \"transNum6\",\r\nfield: \"transNum6\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\ncellRenderer: 'numericRenderer',\r\nvalueFormatter: \"currencyFormat\",\r\nfilterValueColumnName: \"transNum6\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\nconst TransDate1Column : AgColDefsI =\r\n{\r\ndisplayName: \"transDate1\",\r\n field: \"transDate1\",\r\n width: 120,\r\n minWidth: 30,\r\n cellType: \"datePickerEditor\",\r\n cellRenderer: 'datePickerRenderer',\r\n type: \"editableColumn\",\r\n isfilter: true,\r\n floatingFilter: true,\r\n // cellStyle: \"text-align-center\",\r\n // cellClass: \"ExcelDate\",\r\n filterValueColumnName: \"transDate1\",\r\n cellDisplayFormat: \"dateFilter\",\r\n isDateFilterShow: true,\r\n isUDFField: true,\r\n}\r\nconst TransDate2Column : AgColDefsI =\r\n{\r\n displayName: \"transDate2\",\r\n field: \"transDate2\",\r\n width: 120,\r\n minWidth: 30,\r\n cellType: \"datePickerEditor\",\r\n cellRenderer: 'datePickerRenderer',\r\n type: \"editableColumn\",\r\n isfilter: true,\r\n floatingFilter: true,\r\n // cellStyle: \"text-align-center\",\r\n // cellClass: \"ExcelDate\",\r\n filterValueColumnName: \"transDate2\",\r\n cellDisplayFormat: \"dateFilter\",\r\n isDateFilterShow: true,\r\n isUDFField: true,\r\n}\r\nconst TransDate3Column : AgColDefsI =\r\n{\r\n displayName: \"transDate3\",\r\n field: \"transDate3\",\r\n width: 120,\r\n minWidth: 30,\r\n cellType: \"datePickerEditor\",\r\n cellRenderer: 'datePickerRenderer',\r\n type: \"editableColumn\",\r\n isfilter: true,\r\n floatingFilter: true,\r\n // cellStyle: \"text-align-center\",\r\n // cellClass: \"ExcelDate\",\r\n filterValueColumnName: \"transDate3\",\r\n cellDisplayFormat: \"dateFilter\",\r\n isDateFilterShow: true,\r\n isUDFField: true,\r\n}\r\nconst TransDate4Column : AgColDefsI =\r\n{\r\n displayName: \"transDate4\",\r\n field: \"transDate4\",\r\n width: 120,\r\n minWidth: 30,\r\n cellType: \"datePickerEditor\",\r\n cellRenderer: 'datePickerRenderer',\r\n type: \"editableColumn\",\r\n isfilter: true,\r\n floatingFilter: true,\r\n // cellStyle: \"text-align-center\",\r\n // cellClass: \"ExcelDate\",\r\n filterValueColumnName: \"transDate4\",\r\n cellDisplayFormat: \"dateFilter\",\r\n isDateFilterShow: true,\r\n isUDFField: true,\r\n}\r\nconst ErrorMessageColumn : AgColDefsI =\r\n{\r\n displayName: \"Error Message\",\r\n field: \"errorMessage\",\r\n cellClass: \"colorRed\",\r\n width: 400,\r\n editable: false,\r\n sortable: false,\r\n floatingFilter: true,\r\n filterValueColumnName:\"errorMessage\",\r\n cellDisplayFormat:\"textFilter\"\r\n}\r\nconst TransUploadIdColumn : AgColDefsI =\r\n{\r\n displayName: \"TransUploadID\",\r\n field: \"id\",\r\n width: 120,\r\n editable: false,\r\n // cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n filterValueColumnName:\"id\",\r\n cellDisplayFormat:\"textFilter\"\r\n}\r\n\r\nconst DataSetColumn : AgColDefsI =\r\n{\r\ndisplayName: \"Dataset\",\r\nfield: \"dataSet\",\r\nwidth: 120,\r\nminWidth: 30,\r\nfloatingFilter: true,\r\ntype: \"editableColumn\",\r\ncellClass: \"leftAlignment\",\r\nfilterValueColumnName: \"dataSet\",\r\ncellDisplayFormat: \"textFilter\",\r\nisUDFField: true\r\n}\r\n\r\n\r\n//#endregion\r\n\r\nexport const ColDefsTransactionLevel: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n TransIdColumn,\r\n CalculationNameColumn,\r\n JournalIdColumn,\r\n SubJournalIdColumn,\r\n FundNameColumn,\r\n VehicleInvestorNameColumn,\r\n TransactionInvestorColumn,\r\n TransactionInvestmentColumn,\r\n TransactionPositionColumn,\r\n TransactionSetColumn,\r\n TransactionDateColumn,\r\n TransactionDistIncomeNumColumn,\r\n TransactionAmountColumn,\r\n DataSetColumn,\r\n LocalAmtColumn,\r\n FXRateColumn,\r\n StatusColumn,\r\n ImportuserIdColumn,\r\n ImportDateColumn,\r\n CommentsColumn,\r\n LotColumn,\r\n BookingDateColumn,\r\n PtrTransColumn,\r\n TransTxt1Column,\r\n TransTxt2Column,\r\n TransTxt3Column,\r\n TransTxt4Column,\r\n TransTxt5Column,\r\n TransTxt6Column,\r\n TransNum1Column,\r\n TransNum2Column,\r\n TransNum3Column, \r\n TransNum4Column,\r\n TransNum5Column,\r\n TransNum6Column,\r\n TransDate1Column,\r\n TransDate2Column,\r\n TransDate3Column,\r\n TransDate4Column,\r\n {\r\n field: \"isFromCalcJE\",\r\n displayName: \"From Calculation JE\",\r\n width: 120,\r\n minWidth:30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"isFromCalcJE\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable:false,\r\n },\r\n];\r\nexport const ColDefsFundLevel: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n JournalIdColumn,\r\n FundNameColumnFundLevel,\r\n InvestmentColumnFundLevel,\r\n PositionColumnFundLevel,\r\n TransactionSetColumnFundLevel,\r\n TransactionDateColumn,\r\n DistIncomeNumColumn,\r\n TransactionAmountColumn,\r\n LocalAmtColumn,\r\n FXRateColumn,\r\n StatusColumn,\r\n ImportuserIdColumn,\r\n ImportDateColumn,\r\n CommentsColumn,\r\n LotColumn,\r\n BookingDateColumn,\r\n PtrTransColumn,\r\n TransTxt1Column,\r\n TransTxt2Column,\r\n TransTxt3Column,\r\n TransTxt4Column,\r\n TransTxt5Column,\r\n TransTxt6Column,\r\n TransNum1Column,\r\n TransNum2Column,\r\n TransNum3Column, \r\n TransNum4Column,\r\n TransNum5Column,\r\n TransNum6Column,\r\n TransDate1Column,\r\n TransDate2Column,\r\n TransDate3Column,\r\n TransDate4Column\r\n];\r\n//#endregion\r\n//#region fund module impoorts\r\nexport const colDefsInvestorImport: AgColDefsI[] = [\r\n {\r\n displayName: \"Error Message\",\r\n field: \"errorMessage\",\r\n cellClass: \"colorRed\",\r\n filterValueColumnName:\"errorMessage\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 120,\r\n minWidth:30,\r\n editable: false,\r\n sortable: false,\r\n floatingFilter: true,\r\n },\r\n {\r\n displayName: \"Fund InvestorID\",\r\n field: \"fundInvestorExtId\",\r\n width: 120,\r\n filterValueColumnName:\"fundInvestorExtId\",\r\n minWidth:30,\r\n editable: false,\r\n sortable: false,\r\n floatingFilter: true,\r\n cellDisplayFormat:\"textFilter\",\r\n cellClass: \"leftAlignment\",\r\n hide : true\r\n },\r\n {\r\n displayName: \"Fund\",\r\n field: \"fundName\",\r\n width: 120,\r\n minWidth:30,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName:'fundName',\r\n filterIdColumnName:\"fundName\",\r\n editable: false,\r\n sortable: false,\r\n isfilter: true,\r\n },\r\n {\r\n field: \"investorName\",\r\n displayName: \"Investor\",\r\n width: 120,\r\n minWidth:30,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName:\"investorName\",\r\n filterIdColumnName:\"investorName\",\r\n editable: false,\r\n sortable: false,\r\n isfilter: true,\r\n },\r\n {\r\n field: \"investorGroup\",\r\n displayName: \"Investor Group\",\r\n width: 120,\r\n minWidth:30,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName:'investorGroup',\r\n filterIdColumnName:\"investorGroup\",\r\n editable: false,\r\n sortable: false,\r\n isfilter: true,\r\n },\r\n {\r\n field: \"commitment\",\r\n displayName: \"Commitment\",\r\n cellClass: \"leftAlignment\",\r\n valueFormatter: \"currencyFormat\",\r\n width: 120,\r\n filterValueColumnName:\"commitment\",\r\n cellDisplayFormat:\"textFilter\",\r\n minWidth:30,\r\n cellStyle: \"text-align-center\",\r\n floatingFilter: true,\r\n },\r\n {\r\n field: \"recCarry\",\r\n displayName: \"Receives Carry\",\r\n width: 120,\r\n minWidth:30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"recCarry\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable:false,\r\n },\r\n {\r\n field: \"feeEligible\",\r\n displayName: \"Fee Eligible\",\r\n width: 120,\r\n minWidth:30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"feeEligible\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable:false,\r\n },\r\n {\r\n field: \"sideLetter\",\r\n displayName: \"Special Alloc\",\r\n width: 120,\r\n minWidth:30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"sideLetter\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable: false,\r\n },\r\n {\r\n field: \"sideLetterPromote1\",\r\n displayName: \"Side Letter Promote for 1st Hurdle\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n valueFormatter:\"currencyFormat\",\r\n floatingFilter: true,\r\n filterValueColumnName:\"sideLetterPromote1\",\r\n cellDisplayFormat:\"percentFilter\",\r\n },\r\n {\r\n field: \"sideLetterPromote2\",\r\n displayName: \"Side Letter Promote for 2nd Hurdle\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n valueFormatter:\"currencyFormat\",\r\n floatingFilter: true,\r\n filterValueColumnName:\"sideLetterPromote2\",\r\n cellDisplayFormat:\"percentFilter\",\r\n },\r\n {\r\n field: \"sideLetterPromote3\",\r\n displayName: \"Side Letter Promote for 3rd Hurdle\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n valueFormatter:\"currencyFormat\",\r\n floatingFilter: true,\r\n filterValueColumnName:\"sideLetterPromote3\",\r\n cellDisplayFormat:\"percentFilter\",\r\n },\r\n {\r\n field: \"sideLetterPref1\",\r\n displayName: \"Side Letter Pref Ret for 1st Hurdle\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n valueFormatter:\"currencyFormat\",\r\n filterValueColumnName:\"sideLetterPref1\",\r\n cellDisplayFormat:\"percentFilter\",\r\n floatingFilter: true,\r\n editable: false,\r\n },\r\n {\r\n field: \"sideLetterPref2\",\r\n displayName: \"Side Letter Pref Ret for 2nd Hurdle\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n valueFormatter:\"currencyFormat\",\r\n filterValueColumnName:\"sideLetterPref2\",\r\n cellDisplayFormat:\"percentFilter\",\r\n floatingFilter: true,\r\n editable: false,\r\n },\r\n {\r\n field: \"sideLetterPref3\",\r\n displayName: \"Side Letter Pref Ret for 3rd Hurdle\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n valueFormatter:\"currencyFormat\",\r\n filterValueColumnName:\"sideLetterPref3\",\r\n cellDisplayFormat:\"percentFilter\",\r\n floatingFilter: true,\r\n editable: false,\r\n },\r\n {\r\n field: \"active\",\r\n displayName: \"Active\",\r\n width: 120,\r\n minWidth:30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"active\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable: false,\r\n },\r\n {\r\n field: \"fundInvestorExtId\",\r\n displayName: \"Fund Investor Ext. ID\",\r\n valueFormatter:\"currencyFormat\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n filterValueColumnName:\"fundInvestorExtId\",\r\n cellDisplayFormat:\"textFilter\",\r\n editable: false,\r\n },\r\n {\r\n field: \"comments\",\r\n displayName: \"Comments\",\r\n width: 120,\r\n minWidth:30,\r\n floatingFilter: true,\r\n filterValueColumnName:\"comments\",\r\n cellDisplayFormat:\"textFilter\",\r\n editable: false,\r\n },\r\n {\r\n field: \"importDate\",\r\n displayName: \"Created Date\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n cellRenderer: \"datePickerRenderer\",\r\n floatingFilter: true,\r\n filterValueColumnName:\"importDate\",\r\n cellDisplayFormat:\"textFilter\",\r\n editable: false,\r\n },\r\n];\r\n\r\nexport const colDefsInvestmentImport: AgColDefsI[] = [\r\n {\r\n displayName: \"Error Message\",\r\n field: \"errorMessage\",\r\n cellClass: \"colorRed\",\r\n width: 120,\r\n filterValueColumnName:\"errorMessage\",\r\n cellDisplayFormat:\"textFilter\",\r\n minWidth:30,\r\n editable: false,\r\n sortable: false,\r\n floatingFilter: true,\r\n },\r\n {\r\n displayName: \"fundInvestmentId\",\r\n field: \"fundInvestmentId\",\r\n filterValueColumnName:\"fundInvestmentId\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 120,\r\n minWidth:30,\r\n editable: false,\r\n sortable: false,\r\n floatingFilter: true,\r\n hide : true\r\n },\r\n {\r\n displayName: \"Fund\",\r\n field: \"fundName\",\r\n width: 120,\r\n minWidth:30,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName:\"fundName\",\r\n filterIdColumnName:\"fundName\",\r\n editable:false,\r\n isfilter: true,\r\n },\r\n {\r\n field: \"investmentName\",\r\n displayName: \"Investment\",\r\n width: 120,\r\n minWidth:30,\r\n filterValueColumnName:\"investmentName\",\r\n filterIdColumnName:\"investmentName\",\r\n cellClass: \"leftAlignment\",\r\n editable:false,\r\n isfilter: true,\r\n },\r\n {\r\n field: \"positionName\",\r\n displayName: \"Position\",\r\n property:\"\",\r\n width: 120,\r\n filterValueColumnName:\"positionName\",\r\n filterIdColumnName:\"positionName\",\r\n minWidth:30,\r\n cellClass: \"leftAlignment\",\r\n editable:false,\r\n isfilter: true,\r\n },\r\n \r\n {\r\n field: \"fundInvestmentExtId\",\r\n displayName: \"External ID\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n editable:false,\r\n valueFormatter:\"currencyFormat\",\r\n filterValueColumnName:\"fundInvestmentExtId\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingFilter: true,\r\n },\r\n {\r\n field: \"fundInvestmentAmt\",\r\n displayName: \"Amount\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n editable:false,\r\n valueFormatter:\"currencyFormat\",\r\n filterValueColumnName:\"fundInvestmentAmt\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingFilter: true,\r\n },\r\n {\r\n field: \"active\",\r\n displayName: \"Active\",\r\n width: 120,\r\n minWidth:30,\r\n cellType: \"checkbox\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"active\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n editable:false,\r\n },\r\n {\r\n field: \"investmentVintageDate\",\r\n displayName: \"Vintage Date\",\r\n width: 120,\r\n minWidth:30,\r\n cellStyle: \"text-align-right\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName:\"investmentVintageDate\",\r\n cellDisplayFormat:\"textFilter\",\r\n isfilter: true,\r\n editable:false,\r\n },\r\n {\r\n field: \"comments\",\r\n displayName: \"Comments\",\r\n filterValueColumnName:\"comments\",\r\n cellDisplayFormat:\"textFilter\",\r\n width: 120,\r\n minWidth:30,\r\n floatingFilter: true,\r\n editable:false,\r\n },\r\n {\r\n field: \"importDate\",\r\n displayName: \"Created Date\",\r\n width: 120,\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName:\"importDate\",\r\n cellDisplayFormat:\"textFilter\",\r\n minWidth:30,\r\n editable:false,\r\n },\r\n];\r\n//#endregion\r\n//#region Import Transactions\r\nexport const ColDefsTransactionImport: AgColDefsI[] = [\r\n ErrorMessageColumn,\r\n TransUploadIdColumn,\r\n TransIdColumn,\r\n JournalIdColumn,\r\n SubJournalIdColumn,\r\n {\r\n displayName: \"Fund\",\r\n field: \"fund\",\r\n width: 120,\r\n isfilter: true,\r\n isRequired: true,\r\n editable: false,\r\n filterValueColumnName:\"fund\",\r\n filterIdColumnName:\"fundId\"\r\n },\r\n {\r\n displayName: \"Fund Investor\",\r\n field: \"fundInvestor\",\r\n width: 120,\r\n isfilter: true,\r\n isRequired: true,\r\n editable: false,\r\n floatingFilter: true,\r\n filterValueColumnName:\"fundInvestor\",\r\n cellDisplayFormat:\"textFilter\"\r\n },\r\n {\r\n displayName: \"Investor Group\",\r\n field: \"vehicleInvestor\",\r\n width: 120,\r\n isfilter: true,\r\n isRequired: true,\r\n editable: false,\r\n floatingFilter: true,\r\n filterValueColumnName:\"vehicleInvestor\",\r\n cellDisplayFormat:\"textFilter\"\r\n },\r\n {\r\n displayName: \"Fund Investment\",\r\n field: \"fundInvestment\",\r\n width: 120,\r\n isfilter: true,\r\n isRequired: true,\r\n editable: false,\r\n floatingFilter: true,\r\n filterValueColumnName:\"fundInvestment\",\r\n cellDisplayFormat:\"textFilter\"\r\n },\r\n {\r\n displayName: \"Position\",\r\n field: \"position\",\r\n width: 120,\r\n isfilter: true,\r\n isRequired: true,\r\n editable: false,\r\n floatingFilter: true,\r\n filterValueColumnName:\"position\",\r\n cellDisplayFormat:\"textFilter\"\r\n },\r\n {\r\n displayName: \"Transaction Set\",\r\n field: \"tier\",\r\n width: 120,\r\n isfilter: true,\r\n isRequired: true,\r\n editable: false,\r\n floatingFilter: true,\r\n filterValueColumnName:\"tier\",\r\n cellDisplayFormat:\"textFilter\"\r\n },\r\n {\r\n displayName: \"Transaction Date\",\r\n field: \"transactionDate\",\r\n width: 120,\r\n minWidth: 30,\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n cellClass: \"leftAlignment\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"transactionDate\",\r\n valueFormatter : \"dateFormat\"\r\n },\r\n TransactionDistIncomeNumColumn,\r\n TransactionImportAmountColumn,\r\n LocalAmtImportColumn,\r\n FXRateImportColumn,\r\n StatusColumn,\r\n ImportuserIdColumn,\r\n {\r\n displayName: \"Created Date\",\r\n field: \"importDate\",\r\n width: 120,\r\n minWidth: 30,\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n cellClass: \"leftAlignment\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"importDate\",\r\n },\r\n CommentsColumn,\r\n LotColumn,\r\n {\r\n displayName: \"GL Date\",\r\n field: \"glDate\",\r\n width: 120,\r\n minWidth: 30,\r\n isfilter: true,\r\n type: \"editableColumn\",\r\n cellClass: \"leftAlignment\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"glDate\",\r\n },\r\n PtrTransColumn,\r\n TransTxt1Column,\r\n TransTxt2Column,\r\n TransTxt3Column,\r\n TransTxt4Column,\r\n TransTxt5Column,\r\n TransTxt6Column,\r\n TransNum1Column,\r\n TransNum2Column,\r\n TransNum3Column, \r\n TransNum4Column,\r\n TransNum5Column,\r\n TransNum6Column,\r\n {\r\n displayName: \"transDate1\",\r\n field: \"transDate1\",\r\n width: 120,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n type: \"editableColumn\",\r\n cellClass: \"leftAlignment\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"transDate1\",\r\n cellDisplayFormat: \"dateFilter\",\r\n isDateFilterShow: true,\r\n isUDFField: true\r\n },\r\n {\r\n displayName: \"transDate2\",\r\n field: \"transDate2\",\r\n width: 120,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n type: \"editableColumn\",\r\n cellClass: \"leftAlignment\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"transDate2\",\r\n cellDisplayFormat: \"dateFilter\",\r\n isDateFilterShow: true,\r\n isUDFField: true\r\n },\r\n {\r\n displayName: \"transDate3\",\r\n field: \"transDate3\",\r\n width: 120,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n type: \"editableColumn\",\r\n cellClass: \"leftAlignment\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"transDate3\",\r\n cellDisplayFormat: \"dateFilter\",\r\n isDateFilterShow: true,\r\n isUDFField: true\r\n },\r\n {\r\n displayName: \"transDate4\",\r\n field: \"transDate4\",\r\n width: 120,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n type: \"editableColumn\",\r\n cellClass: \"leftAlignment\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"transDate4\",\r\n cellDisplayFormat: \"dateFilter\",\r\n isDateFilterShow: true,\r\n isUDFField: true\r\n },\r\n {\r\n displayName: \"Dataset\",\r\n field: \"dataSet\",\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"dataSet\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 100,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n },\r\n];\r\n//#region lookups\r\nexport const colDefsPermissionFundGroup: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Domain - RoleName\",\r\n field: \"fundDomainName\",\r\n width: 245,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n isfilter: true,\r\n filterValueColumnName:\"fundDomainName\",\r\n filterIdColumnName: \"fundDomainName\",\r\n cellDisplayFormat:\"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n sortable:true\r\n },\r\n {\r\n displayName: \"Fund Group\",\r\n field: \"fundGroupName\",\r\n width: 245,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n isfilter: true,\r\n filterValueColumnName:\"fundGroupName\",\r\n filterIdColumnName: \"groupId\",\r\n cellDisplayFormat:\"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n sortable:true\r\n },\r\n {\r\n displayName: \"Role Name\",\r\n field: \"roleName\",\r\n width: 245,\r\n minWidth: 30,\r\n isfilter: true,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName:\"roleName\",\r\n cellDisplayFormat:\"textFilter\",\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n hide: true,\r\n },\r\n {\r\n field: \"viewPermission\",\r\n displayName: \"View\",\r\n width: 130,\r\n minWidth: 110,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"viewPermission\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n editable: true,\r\n },\r\n {\r\n field: \"modifyPermission\",\r\n displayName: \"Modify\",\r\n width: 130,\r\n minWidth: 110,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"modifyPermission\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n editable:true,\r\n },\r\n {\r\n field: \"deletePermission\",\r\n displayName: \"Delete\",\r\n width: 130,\r\n minWidth: 110,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"deletePermission\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n editable:true,\r\n }\r\n];\r\nexport const colDefsPermissionForm: AgColDefsI[] = [\r\n SelectColumn,\r\n ActionColumn,\r\n {\r\n displayName: \"Role Name\",\r\n field: \"roleName\",\r\n width: 155,\r\n minWidth: 30,\r\n isfilter: true,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName:\"roleName\",\r\n filterIdColumnName: \"roleId\",\r\n cellDisplayFormat:\"textFilter\",\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Module Name\",\r\n field: \"moduleName\",\r\n width: 180,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n isfilter: true,\r\n filterValueColumnName:\"moduleName\",\r\n filterIdColumnName: \"moduleId\",\r\n cellDisplayFormat:\"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n sortable:true\r\n },\r\n {\r\n displayName: \"Form Name\",\r\n field: \"formName\",\r\n width: 155,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n isfilter: true,\r\n filterValueColumnName:\"formName\",\r\n filterIdColumnName: \"menuId\",\r\n // cellDisplayFormat:\"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n sortable:true\r\n },\r\n {\r\n field: \"viewPermission\",\r\n displayName: \"View\",\r\n width: 130,\r\n minWidth: 110,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"viewPermission\",\r\n cellDisplayFormat:\"textFilter\",\r\n editable: (params) => params.data.viewPermissionId > 0,\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"modifyPermission\",\r\n displayName: \"Modify\",\r\n width: 130,\r\n minWidth: 110,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"modifyPermission\",\r\n cellDisplayFormat:\"textFilter\",\r\n //editable: false,\r\n editable: (params) => params.data.modifyPermissionId > 0,\r\n //editable: (params) => params.data.specialPrefRetRate == true,\r\n // editable: (params) => {\r\n // console.log(params.data.modifyPermissionId);\r\n // return params.data.modifyPermissionId == 0\r\n // },\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"deletePermission\",\r\n displayName: \"Delete\",\r\n width: 130,\r\n minWidth: 110,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"deletePermission\",\r\n cellDisplayFormat:\"textFilter\",\r\n editable: (params) => params.data.deletePermissionId > 0,\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n }\r\n];\r\nexport const colDefsPermissionColumn: AgColDefsI[] = [\r\n SelectColumn,\r\n // ActionColumn,\r\n {\r\n displayName: \"Role Name\",\r\n field: \"roleName\",\r\n width: 180,\r\n minWidth: 30,\r\n isfilter: true,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName:\"roleName\",\r\n cellDisplayFormat:\"textFilter\",\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Module Name\",\r\n field: \"formName\",\r\n width: 230,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n isfilter: true,\r\n filterValueColumnName:\"formName\",\r\n filterIdColumnName: \"menuId\",\r\n cellDisplayFormat:\"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n sortable:true\r\n },\r\n {\r\n displayName: \"Column Name\",\r\n field: \"columnName\",\r\n width: 180,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n isfilter: true,\r\n filterValueColumnName:\"columnName\",\r\n cellDisplayFormat:\"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n sortable:true\r\n },\r\n {\r\n field: \"permissions\",\r\n displayName: \"Modify Permission\",\r\n width: 130,\r\n minWidth: 110,\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n cellStyle: \"text-align-center\",\r\n filterValueColumnName:\"permissions\",\r\n cellDisplayFormat:\"textFilter\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n editable:true,\r\n }\r\n];\r\n//#endregion\r\n\r\n//#region User\r\n\r\nexport const colDefsUsers: AgColDefsI[] = [\r\n {\r\n field: \"id\",\r\n width: 40,\r\n cellDisplayFormat:\"textFilter\",\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n sortable:true,\r\n hide : true\r\n },\r\n {\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n sortable:true\r\n },\r\n {\r\n displayName: \"Actions\",\r\n field: \"actions\",\r\n width: 180,\r\n minWidth: 30,\r\n pinned: \"left\",\r\n cellType: \"icons\",\r\n \r\n cellDisplayFormat:\"textFilter\",\r\n editable: false,\r\n sortable: false,\r\n lockPinned: true,\r\n lockPosition: true,\r\n },\r\n\r\n {\r\n displayName: \"Username\",\r\n field: \"userName\",\r\n width: 180,\r\n \r\n minWidth: 30,\r\n //cellClass: \"leftAlignment\",\r\n //cellClass: 'ag-header-cell-comp-wrapper-user',\r\n //cellStyle: { 'width': '90% !important' },\r\n floatingFilter: true,\r\n isfilter: true,\r\n //isRequired: true,\r\n //floatingFilter: true,\r\n filterValueColumnName:\"userName\",\r\n filterIdColumnName: \"id\",\r\n //editable: (params) => params.data.isAdded == true,\r\n editable: (params) => !params.data.userName || params.data.userName.toLocaleLowerCase() != 'superadminuser',\r\n cellDisplayFormat:\"textFilter\",\r\n //editable: true,\r\n lockPinned: true,\r\n sortable:true\r\n },\r\n \r\n {\r\n field: \"passwordHash\",\r\n displayName: \"Password\",\r\n width: 180,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n // cellType: \"dropdown\",\r\n // cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n // cellEditor: {\r\n // cellEditorData: this.agvehicalData,\r\n // cellEditorId: this.agvehicalId,\r\n // },\r\n //isRequired: true,\r\n //isfilter: true,\r\n filterValueColumnName:\"passwordHash\",\r\n cellDisplayFormat:\"textFilter\",\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"confirmPassword\",\r\n displayName:\"Confirm Password\",\r\n width: 180,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n // cellType: \"dropdown\",\r\n // cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n // cellEditor: {\r\n // cellEditorData: this.agInvestorName,\r\n // cellEditorId: this.agInvestorId,\r\n // },\r\n //isRequired: true,\r\n //isfilter: true,\r\n filterValueColumnName:\"confirmPassword\",\r\n cellDisplayFormat:\"textFilter\",\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"email\",\r\n displayName: \"Email\",\r\n width: 180,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n isfilter: true,\r\n // valueFormatter: \"currencyFormat\",\r\n // cellType: \"number\",\r\n // cellRenderer: \"numericRenderer\",\r\n cellClass: \"leftAlignment\",\r\n // valueFormatter: params => this.agGridService.currencyFormatter(params.data.investorCommitment, ''),\r\n // filterParams: {\r\n // buttons: [\"apply\"],\r\n // },\r\n //cellStyle: \"text-align-left\",\r\n //floatingFilter: true,\r\n editable: (params) => !params.data.userName || params.data.userName.toLocaleLowerCase() != 'superadminuser',\r\n filterValueColumnName:\"email\",\r\n filterIdColumnName: \"id\",\r\n cellDisplayFormat:\"textFilter\",\r\n lockPinned: true,\r\n }\r\n];\r\n\r\nexport const colDefsUserRole: AgColDefsI[] = [\r\n\r\n\r\n {\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n sortable:true\r\n },\r\n {\r\n field: \"id\",\r\n width: 40,\r\n cellDisplayFormat:\"textFilter\",\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n sortable:true,\r\n hide : true\r\n },\r\n {\r\n displayName: \"Actions\",\r\n field: \"actions\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"icons\",\r\n editable: false,\r\n sortable: false,\r\n lockPinned: true,\r\n lockPosition: true\r\n },\r\n {\r\n field: \"roleName\",\r\n displayName: \"Role Name\",\r\n width: 150,\r\n minWidth: 80,\r\n cellType: \"dropdown\",\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n floatingFilter: true,\r\n filterValueColumnName: \"roleName\",\r\n filterIdColumnName: \"roleId\",\r\n cellEditor: {\r\n\r\n },\r\n //isRequired: true,\r\n //isfilter: true,\r\n isfilter: true,\r\n cellDisplayFormat:\"textFilter\",\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"User Name\",\r\n field: \"userName\",\r\n width: 150,\r\n minWidth: 80,\r\n cellType: \"dropdown\",\r\n floatingFilter: true,\r\n cellRenderer: \"dropdownRenderer\",\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"userName\",\r\n filterIdColumnName: \"userId\",\r\n cellEditor: {\r\n\r\n },\r\n //isRequired: true,\r\n //isfilter: true,\r\n isfilter: true,\r\n cellDisplayFormat:\"textFilter\",\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n }]\r\n//#endregion\r\n\r\n//#region Roles\r\nexport const colDefsRole: AgColDefsI[] = [\r\n {\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n sortable:true\r\n },\r\n {\r\n displayName: \"Actions\",\r\n field: \"actions\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"icons\",\r\n editable: false,\r\n sortable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Role\",\r\n field: \"name\",\r\n width: 180,\r\n minWidth: 30,\r\n filterValueColumnName:\"name\",\r\n cellDisplayFormat:\"textFilter\",\r\n filterIdColumnName: \"id\",\r\n isfilter: true,\r\n //isRequired: true,\r\n floatingFilter: true,\r\n // editable: (params) => params.data.isAdded == true,\r\n editable:true,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Description\",\r\n field: \"description\",\r\n width: 180,\r\n minWidth: 30,\r\n filterValueColumnName:\"description\",\r\n cellDisplayFormat:\"textFilter\",\r\n filterIdColumnName: \"id\",\r\n isfilter: true,\r\n //isRequired: true,\r\n floatingFilter: true,\r\n type: \"editableColumn\",\r\n lockPinned: true,\r\n },\r\n \r\n];\r\n//#endregion\r\n\r\n//#region calculations\r\n\r\nconst CalculationDateColumn : AgColDefsI ={\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n};\r\n\r\n\r\nconst PRRateColumn : AgColDefsI ={\r\n field: \"prRate\",\r\n displayName: \"PR Rate\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormat\",\r\n filterValueColumnName: \"prRate\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true\r\n};\r\nconst PRRateColumnPrefReturnCal : AgColDefsI ={\r\n field: \"prRate\",\r\n displayName: \"PR Rate\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormat\",\r\n filterValueColumnName: \"prRate\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n};\r\nconst CashFlowAmountColumnPrefReturnCal : AgColDefsI ={\r\n displayName: \"Cash Flow Amt\",\r\n field: \"cashFlowAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"amt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n};\r\n\r\nconst CashFlowAmountColumn : AgColDefsI ={\r\n displayName: \"Cash Flow Amt\",\r\n field: \"cashFlowAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"amt\",\r\n cellDisplayFormat: \"textFilter\"\r\n};\r\nconst CashFlowDateColumn : AgColDefsI =\r\n{\r\n displayName: \"Cash Flow Date\",\r\n field: \"cashFlowDate\",\r\n width: 150,\r\n minWidth: 30,\r\n cellRenderer: \"datePickerRenderer\",\r\n // cellClass: \"ExcelDate\",\r\n filterValueColumnName: \"cashFlowDate\",\r\n filterIdColumnName: \"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n valueFormatter : \"dateFormat\"\r\n \r\n};\r\nconst CashFlowDateColumnPrfReturnCal : AgColDefsI =\r\n{\r\n displayName: \"Cash Flow Date\",\r\n field: \"cashFlowDate\",\r\n width: 150,\r\n minWidth: 30,\r\n cellRenderer: \"datePickerRenderer\",\r\n // cellClass: \"ExcelDate\",\r\n filterValueColumnName: \"cashFlowDate\",\r\n filterIdColumnName: \"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n valueFormatter : \"dateFormat\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n \r\n};\r\nconst RunDateColumn : AgColDefsI =\r\n{\r\n displayName: \"Run Date\",\r\n field: \"runDate\",\r\n width: 150,\r\n minWidth: 30,\r\n // cellClass: \"ExcelDate\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"runDate\",\r\n filterIdColumnName: \"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n};\r\nconst RunDateColumnPrefReturnCal : AgColDefsI =\r\n{\r\n displayName: \"Run Date\",\r\n field: \"runDate\",\r\n width: 150,\r\n minWidth: 30,\r\n // cellClass: \"ExcelDate\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"runDate\",\r\n filterIdColumnName: \"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n};\r\nconst TierAmountColumn : AgColDefsI =\r\n{\r\n displayName: \"Tier Amt\",\r\n field: \"tierAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"tierAmt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n}\r\nconst ComparisonTierAmountColumn : AgColDefsI =\r\n{\r\n displayName: \"Comparison Amt\",\r\n field: \"comparisionAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"comparisionAmt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n}\r\n\r\nconst TierCalcColumn : AgColDefsI =\r\n{\r\n displayName: \"Tier Calc\",\r\n field: \"tierCalc\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"tierCalc\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n tooltipComponent: 'CustomTooltip',\r\n tooltipField : 'tierCalc'\r\n}\r\nconst BalanceColumn : AgColDefsI =\r\n{\r\n displayName: \"Balance\",\r\n field: \"balance\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"balance\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n tooltipComponent: 'CustomTooltip',\r\n tooltipField : 'balance'\r\n}\r\n\r\nexport const colDefsPrefRetCalc: AgColDefsI[] = [\r\n {\r\n displayName: \"Fund\",\r\n field: \"fund\",\r\n width: 150,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"fund\",\r\n filterIdColumnName: \"fund\",\r\n editable: false,\r\n isfilter: true,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n field: \"calculationName\",\r\n displayName: \"Calculation Name\",\r\n width: 150,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"calculationName\",\r\n filterIdColumnName: \"calculationName\",\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n CalculationDateColumn,\r\n {\r\n field: \"prRuleName\",\r\n displayName: \"PR Rule Name\",\r\n filterValueColumnName: \"prRuleName\",\r\n filterIdColumnName: \"prRuleName\",\r\n isfilter: true,\r\n width: 150,\r\n minWidth: 30,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n {\r\n field: \"calculationMethod\",\r\n displayName: \"Calculation Method\",\r\n filterValueColumnName: \"calculationMethod\",\r\n filterIdColumnName: \"calculationMethod\",\r\n isfilter: true,\r\n width: 150,\r\n minWidth: 30,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n {\r\n field: \"investor\",\r\n displayName: \"Investor\",\r\n filterValueColumnName: \"investor\",\r\n filterIdColumnName: \"investor\",\r\n width: 150,\r\n minWidth: 30,\r\n editable: false,\r\n isfilter: true,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n {\r\n field: \"investorGroup\",\r\n displayName: \"Investor Group\",\r\n filterValueColumnName: \"investorGroup\",\r\n filterIdColumnName: \"investorGroup\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n {\r\n field: \"tier\",\r\n displayName: \"Tier\",\r\n filterValueColumnName: \"tier\",\r\n filterIdColumnName: \"tier\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n PRRateColumnPrefReturnCal,\r\n CashFlowAmountColumnPrefReturnCal,\r\n CashFlowDateColumnPrfReturnCal,\r\n {\r\n field: \"coumpoundInterestPeriod\",\r\n displayName: \"Compound Interest Period\",\r\n filterValueColumnName: \"coumpoundInterestPeriod\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 170,\r\n minWidth: 30,\r\n editable: false,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n {\r\n field: \"daysCapital\",\r\n displayName: \"Days Capital\",\r\n filterValueColumnName: \"daysCapital\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n editable: false,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n {\r\n field: \"frequency\",\r\n displayName: \"Frequency\",\r\n filterValueColumnName: \"frequency\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n editable: false,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n {\r\n field: \"daysCalc\",\r\n displayName: \"Days Calc\",\r\n filterValueColumnName: \"daysCalc\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 140,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n {\r\n displayName: \"Pref. Ret. Amount\",\r\n field: \"prefRetAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"prefRetAmt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n RunDateColumnPrefReturnCal,\r\n {\r\n field: \"ptrTrans\",\r\n displayName: \"Ptr Trans\",\r\n filterValueColumnName: \"ptrTrans\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n {\r\n field: \"termValueRow\",\r\n displayName: \"Term Values Row\",\r\n filterValueColumnName: \"termValueRow\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n floatingDropDown: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n }\r\n },\r\n];\r\n\r\n/* Start of Pref Summary */\r\nexport const colDefsPrefRetCalcSummary: AgColDefsI[] = [\r\n {\r\n displayName: \"Fund\",\r\n field: \"fund\",\r\n width: 150,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"fund\",\r\n filterIdColumnName: \"fund\",\r\n editable: false,\r\n isfilter: true,\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"calculationName\",\r\n displayName: \"Calculation Name\",\r\n width: 150,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n filterValueColumnName: \"calculationName\",\r\n filterIdColumnName: \"calculationName\",\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n CalculationDateColumn,\r\n {\r\n field: \"prRuleName\",\r\n displayName: \"PR Rule Name\",\r\n filterValueColumnName: \"prRuleName\",\r\n filterIdColumnName: \"prRuleName\",\r\n isfilter: true,\r\n width: 150,\r\n minWidth: 30,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"calculationMethod\",\r\n displayName: \"Calculation Method\",\r\n filterValueColumnName: \"calculationMethod\",\r\n filterIdColumnName: \"calculationMethod\",\r\n isfilter: true,\r\n width: 150,\r\n minWidth: 30,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"tier\",\r\n displayName: \"Tier\",\r\n filterValueColumnName: \"tier\",\r\n filterIdColumnName: \"tier\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n type: \"editableColumn\",\r\n },\r\n PRRateColumn,\r\n CashFlowAmountColumn,\r\n CashFlowDateColumn,\r\n {\r\n field: \"coumpoundInterestPeriod\",\r\n displayName: \"Compound Interest Period\",\r\n filterValueColumnName: \"coumpoundInterestPeriod\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 170,\r\n minWidth: 30,\r\n editable: false,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"daysCapital\",\r\n displayName: \"Days Capital\",\r\n filterValueColumnName: \"daysCapital\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n editable: false,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"frequency\",\r\n displayName: \"Frequency\",\r\n filterValueColumnName: \"frequency\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n editable: false,\r\n floatingFilter: true,\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"daysCalc\",\r\n displayName: \"Days Calc\",\r\n filterValueColumnName: \"daysCalc\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 140,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Pref. Ret. Amount\",\r\n field: \"prefRetAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"prefRetAmt\",\r\n cellDisplayFormat: \"textFilter\"\r\n },\r\n RunDateColumn,\r\n {\r\n field: \"ptrTrans\",\r\n displayName: \"Ptr Trans\",\r\n filterValueColumnName: \"ptrTrans\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 100,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n floatingDropDown: true,\r\n lockPinned: true,\r\n },\r\n {\r\n field: \"termValueRow\",\r\n displayName: \"Term Values Row\",\r\n filterValueColumnName: \"termValueRow\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n cellType: \"checkbox\",\r\n floatingDropDown: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n];\r\n\r\nexport const colDefsTierCalc: AgColDefsI[] = [\r\n {\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n tooltipComponent: 'CustomTooltip',\r\n \r\n },\r\n IncludeinBalanceColumn,\r\n SystemTierColumn,\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Fund\",\r\n field: \"fund\",\r\n filterValueColumnName: \"fund\",\r\n filterIdColumnName: \"fund\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n \r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Calculation Name\",\r\n field: \"calculationName\",\r\n filterValueColumnName: \"calculationName\",\r\n filterIdColumnName: \"calculationName\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Investor\",\r\n field: \"investor\",\r\n filterValueColumnName: \"investor\",\r\n filterIdColumnName: \"investor\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Investor Group\",\r\n field: \"investorGroup\",\r\n filterValueColumnName: \"investorGroup\",\r\n filterIdColumnName: \"investorGroup\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Investment\",\r\n field: \"investment\",\r\n filterValueColumnName: \"investment\",\r\n filterIdColumnName: \"investment\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Position\",\r\n field: \"position\",\r\n filterValueColumnName: \"position\",\r\n filterIdColumnName: \"position\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n type : 'editableColumn',\r\n displayName: \"Tier\",\r\n field: \"tier\",\r\n filterValueColumnName: \"tier\",\r\n filterIdColumnName: \"tier\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n editable: false,\r\n displayName: \"Tier Order\",\r\n field: \"tierOrder\",\r\n filterValueColumnName: \"tierOrder\",\r\n cellDisplayFormat: \"textFilter\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n type : 'editableColumn',\r\n displayName: \"Comparison Tier\",\r\n field: \"comparisonTier\",\r\n filterValueColumnName: \"comparisonTier\",\r\n filterIdColumnName: \"comparisonTier\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n TierAmountColumn,\r\n ComparisonTierAmountColumn,\r\n {\r\n field: \"allocPercent\",\r\n displayName: \"Proportional %\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormat\",\r\n filterValueColumnName: \"allocPercent\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n tooltipComponent: 'CustomTooltip',\r\n tooltipField : 'tierCalc'\r\n },\r\n TierCalcColumn,\r\n // OperatorColumn,\r\n BalanceColumn,\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Calculation Rule\",\r\n field: \"calculationRule\",\r\n filterValueColumnName: \"calculationRule\",\r\n filterIdColumnName: \"calculationRule\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n displayName: \"Pref. Ret. Tier\",\r\n field: \"prefRetTier\",\r\n filterValueColumnName: \"prefRetTier\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"checkbox\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n displayName: \"Termination Tier\",\r\n field: \"terminationTier\",\r\n filterValueColumnName: \"terminationTier\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"checkbox\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Calculation Type\",\r\n field: \"calculationType\",\r\n filterValueColumnName: \"calculationType\",\r\n\r\n filterIdColumnName: \".\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n displayName: \"Ptr Trans\",\r\n field: \"ptrTrans\",\r\n cellType: \"checkbox\",\r\n filterValueColumnName: \"ptrTrans\",\r\n cellDisplayFormat: \"textFilter\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n field: \"tierCarryPer\",\r\n displayName: \"Carried Interest % / Promote %\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormat\",\r\n filterValueColumnName: \"tierCarryPer\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Allocate\",\r\n field: \"allocate\",\r\n filterValueColumnName: \"allocate\",\r\n filterIdColumnName: \"allocate\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Carried Interest\",\r\n field: \"carriedInterest\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"carriedInterest\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Participant allocation\",\r\n field: \"participantAlloc\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"participantAlloc\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n field: \"hurdleRate\",\r\n displayName: \"Pref Ret / Hurdle Rate\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormat\",\r\n filterValueColumnName: \"hurdleRate\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n CheckBalAmtColumn\r\n \r\n];\r\n\r\nexport const colDefsTierCalcSummary: AgColDefsI[] = [\r\n {\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n tooltipComponent: 'CustomTooltip',\r\n \r\n },\r\n IncludeinBalanceColumn,\r\n SystemTierColumn,\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Fund\",\r\n field: \"fund\",\r\n filterValueColumnName: \"fund\",\r\n filterIdColumnName: \"fund\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n \r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Calculation Name\",\r\n field: \"calculationName\",\r\n filterValueColumnName: \"calculationName\",\r\n filterIdColumnName: \"calculationName\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Investment\",\r\n field: \"investment\",\r\n filterValueColumnName: \"investment\",\r\n filterIdColumnName: \"investment\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Position\",\r\n field: \"position\",\r\n filterValueColumnName: \"position\",\r\n filterIdColumnName: \"position\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n type : 'editableColumn',\r\n displayName: \"Tier\",\r\n field: \"tier\",\r\n filterValueColumnName: \"tier\",\r\n filterIdColumnName: \"tier\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n editable: false,\r\n displayName: \"Tier Order\",\r\n field: \"tierOrder\",\r\n filterValueColumnName: \"tierOrder\",\r\n cellDisplayFormat: \"textFilter\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n type : 'editableColumn',\r\n displayName: \"Comparison Tier\",\r\n field: \"comparisonTier\",\r\n filterValueColumnName: \"comparisonTier\",\r\n filterIdColumnName: \"comparisonTier\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n TierAmountColumn,\r\n ComparisonTierAmountColumn,\r\n {\r\n field: \"allocPercent\",\r\n displayName: \"Proportional %\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormat\",\r\n filterValueColumnName: \"allocPercent\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n TierCalcColumn,\r\n // OperatorColumn,\r\n BalanceColumn,\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Calculation Rule\",\r\n field: \"calculationRule\",\r\n filterValueColumnName: \"calculationRule\",\r\n filterIdColumnName: \"calculationRule\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n displayName: \"Pref. Ret. Tier\",\r\n field: \"prefRetTier\",\r\n filterValueColumnName: \"prefRetTier\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"checkbox\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n displayName: \"Termination Tier\",\r\n field: \"terminationTier\",\r\n filterValueColumnName: \"terminationTier\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"checkbox\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Calculation Type\",\r\n field: \"calculationType\",\r\n filterValueColumnName: \"calculationType\",\r\n\r\n filterIdColumnName: \".\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n displayName: \"Ptr Trans\",\r\n field: \"ptrTrans\",\r\n cellType: \"checkbox\",\r\n filterValueColumnName: \"ptrTrans\",\r\n cellDisplayFormat: \"textFilter\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n field: \"tierCarryPer\",\r\n displayName: \"Carried Interest % / Promote %\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormat\",\r\n filterValueColumnName: \"tierCarryPer\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n displayName: \"Allocate\",\r\n field: \"allocate\",\r\n filterValueColumnName: \"allocate\",\r\n filterIdColumnName: \"allocate\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Carried Interest\",\r\n field: \"carriedInterest\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"carriedInterest\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Participant allocation\",\r\n field: \"participantAlloc\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"participantAlloc\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n {\r\n field: \"hurdleRate\",\r\n displayName: \"Pref Ret / Hurdle Rate\",\r\n width: 100,\r\n minWidth: 30,\r\n valueFormatter: \"percentFormat\",\r\n filterValueColumnName: \"hurdleRate\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellType: \"number\",\r\n cellRenderer: \"numericRenderer\",\r\n cellStyle: \"text-align-right\",\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n blueBackground: (params) => {\r\n return params.data.isSumRow == true;\r\n }\r\n },\r\n },\r\n CheckBalAmtColumn\r\n \r\n];\r\n\r\nexport const colDefsAllocation: AgColDefsI[] = [\r\n {\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Calculation Name\",\r\n field: \"calculationName\",\r\n filterValueColumnName: \"calculationName\",\r\n filterIdColumnName: \"calculationName\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Fund\",\r\n field: \"fund\",\r\n filterValueColumnName: \"fund\",\r\n filterIdColumnName: \"fund\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Investor\",\r\n field: \"investor\",\r\n filterValueColumnName: \"investor\",\r\n filterIdColumnName: \"investor\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Investor Group\",\r\n field: \"investorGroup\",\r\n filterValueColumnName: \"investorGroup\",\r\n filterIdColumnName: \"investorGroup\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Gross Proceeds Amt\",\r\n field: \"amt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"amt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Carry / Promote Amt\",\r\n field: \"carryPromoteAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"carryPromoteAmt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Proceeds Net of Carry\",\r\n field: \"allocAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"allocAmt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Calc Type\",\r\n field: \"calcType\",\r\n filterValueColumnName: \"calcType\",\r\n filterIdColumnName: \"calcType\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Max LTD Carry Amt\",\r\n field: \"maxLTDCarry\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"maxLTDCarry\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Catchup\",\r\n field: \"catchUp\",\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName: \"catchUp\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Receives Carry\",\r\n field: \"recCarry\",\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName: \"recCarry\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Ptr Trans\",\r\n field: \"ptrTrans\",\r\n filterValueColumnName: \"ptrTrans\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n cellType: \"checkbox\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n];\r\n\r\nexport const colDefsAllocationsSummary: AgColDefsI[] = [\r\n {\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Calculation Name\",\r\n field: \"calculationName\",\r\n filterValueColumnName: \"calculationName\",\r\n filterIdColumnName: \"calculationName\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Fund\",\r\n field: \"fund\",\r\n filterValueColumnName: \"fund\",\r\n filterIdColumnName: \"fund\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Gross Proceeds Amt\",\r\n field: \"amt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"amt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Carry / Promote Amt\",\r\n field: \"carryPromoteAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"carryPromoteAmt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Proceeds Net of Carry\",\r\n field: \"allocAmt\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"allocAmt\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Calc Type\",\r\n field: \"calcType\",\r\n filterValueColumnName: \"calcType\",\r\n filterIdColumnName: \"calcType\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Max LTD Carry Amt\",\r\n field: \"maxLTDCarry\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"maxLTDCarry\",\r\n cellDisplayFormat: \"textFilter\",\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Catchup\",\r\n field: \"catchUp\",\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName: \"catchUp\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Receives Carry\",\r\n field: \"recCarry\",\r\n cellType: \"checkbox\",\r\n cellRenderer: \"checkboxRenderer\",\r\n filterValueColumnName: \"recCarry\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n {\r\n displayName: \"Ptr Trans\",\r\n field: \"ptrTrans\",\r\n filterValueColumnName: \"ptrTrans\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n floatingDropDown: true,\r\n editable: false,\r\n cellType: \"checkbox\",\r\n lockPinned: true,\r\n cellClassRules: {\r\n purpleRow: (params) => {\r\n return params.data.finalRow == true;\r\n }\r\n },\r\n },\r\n];\r\n\r\n\r\nexport const colDefsJournalEntries: AgColDefsI[] = [\r\n {\r\n field: \"\",\r\n width: 40,\r\n pinned: \"left\",\r\n headerCheckboxSelection: true,\r\n checkboxSelection: true,\r\n lockPosition: true,\r\n },\r\n {\r\n displayName: \"Actions\",\r\n field: \"\",\r\n cellType: \"icons\",\r\n width: 150,\r\n minWidth: 30,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Calculation Name\",\r\n field: \"calculationName\",\r\n filterValueColumnName: \"calculationName\",\r\n filterIdColumnName: \"calculationName\",\r\n width: 150,\r\n editable: false,\r\n lockPinned: true,\r\n isfilter: true,\r\n },\r\n {\r\n displayName: \"Calc Data Set\",\r\n field: \"calcDataSet\",\r\n filterValueColumnName: \"calcDataSet\",\r\n filterIdColumnName: \"calcDataSet\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Transaction Set\",\r\n field: \"transactionSet\",\r\n filterValueColumnName: \"transactionSet\",\r\n filterIdColumnName: \"transactionSet\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Category\",\r\n field: \"category\",\r\n filterValueColumnName: \"category\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n editable: false,\r\n lockPinned: true,\r\n floatingFilter: true,\r\n },\r\n {\r\n displayName: \"Fund\",\r\n field: \"fund\",\r\n filterValueColumnName: \"fund\",\r\n filterIdColumnName: \"fund\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Investment\",\r\n field: \"investment\",\r\n filterValueColumnName: \"investment\",\r\n filterIdColumnName: \"investment\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Position\",\r\n field: \"position\",\r\n filterValueColumnName: \"position\",\r\n filterIdColumnName: \"position\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Investor\",\r\n field: \"investor\",\r\n filterValueColumnName: \"investor\",\r\n filterIdColumnName: \"investor\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Investor Group\",\r\n field: \"investorGroup\",\r\n filterValueColumnName: \"investorGroup\",\r\n filterIdColumnName: \"investorGroup\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"JE ID\",\r\n field: \"jeid\",\r\n filterValueColumnName: \"jeid\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Trans ID\",\r\n field: \"transID\",\r\n filterValueColumnName: \"transID\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"JE Comments\",\r\n field: \"jeComments\",\r\n filterValueColumnName: \"jeComments\",\r\n filterIdColumnName: \"jeComments\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"SubAct\",\r\n field: \"subAct\",\r\n filterValueColumnName: \"subAct\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n isfilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Date\",\r\n field: \"date\",\r\n width: 150,\r\n minWidth: 30,\r\n cellClass: \"leftAlignment\",\r\n cellRenderer: \"datePickerRenderer\",\r\n filterValueColumnName: \"date\",\r\n filterIdColumnName: \"textFilter\",\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"ISO\",\r\n field: \"iso\",\r\n filterValueColumnName: \"iso\",\r\n cellDisplayFormat: \"textFilter\",\r\n width: 150,\r\n minWidth: 30,\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"IS Debit\",\r\n field: \"isDebit\",\r\n filterValueColumnName: \"isDebit\",\r\n cellDisplayFormat: \"textFilter\",\r\n minWidth: 30,\r\n width: 150,\r\n floatingFilter: true,\r\n editable: false,\r\n lockPinned: true,\r\n },\r\n {\r\n displayName: \"Amount\",\r\n field: \"amount\",\r\n valueFormatter: \"currencyFormat\",\r\n cellType: \"number\",\r\n cellRenderer: 'numericRenderer',\r\n width: 120,\r\n minWidth: 30,\r\n editable : false,\r\n type: \"editableColumn\",\r\n floatingFilter: true,\r\n cellClass: \"currencyFormat\",\r\n filterValueColumnName: \"amount\",\r\n cellDisplayFormat: \"textFilter\"\r\n },\r\n];\r\n//#endregion","import { DatePipe } from '@angular/common';\r\nimport { EventEmitter, Injectable } from '@angular/core';\r\nimport { ValueFormatterParams } from 'ag-grid-community';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { __param } from 'tslib';\r\nimport { StorageName } from '../../common/enum';\r\nimport { defaultPageLimit } from '../../model/pagination.model';\r\nimport { CommonFilterModel } from '../../model/response.model';\r\nimport { StorageService } from '../../services/storage.service';\r\nimport { SortService } from '../sort/sort.service';\r\nimport { AgColDefsI } from './ag-grid.interface';\r\nimport { sheetNameList } from '../page-header-import-form/page-header-import-form.model';\r\nimport { parse, format } from 'date-fns';\r\nimport { enUS } from 'date-fns/locale';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AgGridService {\r\n eventType = '';\r\n allRows = new EventEmitter();\r\n allColumns = new EventEmitter();\r\n addRows = new EventEmitter();\r\n resetFilterData = new EventEmitter();\r\n onSoftDelete = new EventEmitter();\r\n onPermanentDelete = new EventEmitter();\r\n private readonly _filterData = new BehaviorSubject([]);\r\n readonly filterData$ = this._filterData.asObservable();\r\n private readonly _colDefs = new BehaviorSubject([]);\r\n readonly colDefs$ = this._colDefs.asObservable();\r\n //rowsChanged = new BehaviorSubject([]);\r\n setPageSize = new BehaviorSubject([]);\r\n isEdited = new EventEmitter();\r\n disabledCheckBox = false;\r\n filterList: any[];\r\n UDFList: any[];\r\n sheetNameList: sheetNameList[] = [];\r\n // public _SortingArray: any[] = [];\r\n constructor(public storageService: StorageService,\r\n public sortService: SortService\r\n ) { }\r\n get ColDefs(): AgColDefsI[] {\r\n return this._colDefs.getValue();\r\n }\r\n set ColDefs(data: AgColDefsI[]) {\r\n this._colDefs.next(data);\r\n }\r\n get filterData(): CommonFilterModel[] {\r\n return this._filterData.getValue();\r\n }\r\n set filterData(data: CommonFilterModel[]) {\r\n this._filterData.next(data);\r\n }\r\n public clearRows() {\r\n const a: any[] = [];\r\n this.allRows.next(a);\r\n }\r\n colDefss = new BehaviorSubject([]);\r\n public setColDefss(data: AgColDefsI[]) {\r\n this.colDefss.next(data);\r\n }\r\n public addRow(data: AgColDefsI[]) {\r\n this.colDefss.next(data);\r\n }\r\n public addNewRow(rowData: any) { \r\n rowData.newRow.id = 0;\r\n rowData.newRow.isAdded = true;\r\n rowData.newRow.isDeleted = false;\r\n rowData.newRow.isEdited = false;\r\n rowData.api.api.updateRowData({ add: [rowData.newRow], addIndex: 0 })\r\n }\r\n public addGridRows(rowData: any) {\r\n rowData.api.api.applyTransaction({ add: rowData.newRow, addIndex: 0 })\r\n }\r\n public exportAll(gridapi: any, filename: string, onlySelected: boolean = false): void {\r\n\r\n filename = filename + \" \" + new Date().toLocaleString();\r\n gridapi.api.exportDataAsExcel({\r\n columnKeys: this.generateColumnsForExcel(gridapi),\r\n fileName: filename,\r\n sheetName: 'Sheet',\r\n onlySelected: onlySelected,\r\n processCellCallback: (params) => {\r\n const colDef = params.column.getColDef();\r\n // try to reuse valueFormatter from the colDef\r\n if (colDef.valueFormatter) {\r\n const valueFormatterParams: ValueFormatterParams = {\r\n ...params,\r\n data: params.value,\r\n node: params.node!,\r\n colDef: params.column.getColDef()\r\n };\r\n\r\n if (colDef.cellClass.toString().includes('percentFormat') ||\r\n colDef.cellClass.toString().includes('percentFormatWith4Dec')) {\r\n params.value = params.value == undefined ? \"\" : (params.value / 100);\r\n }\r\n return params.value;\r\n }\r\n\r\n if (colDef.cellClass.toString().includes('ExcelDate')) {\r\n params.value = params.value == undefined ? \"\": this.dateConvertorByRegion(params.value);\r\n }\r\n if (params.value == \"true\" || params.value == true && params.value != 1) {\r\n params.value = \"Yes\"\r\n }\r\n if (params.value == \"false\") {\r\n params.value = \"\"\r\n }\r\n return params.value;\r\n },\r\n })\r\n }\r\n\r\n public exportAllTransactions(gridapi: any, filename: string, index: number, onlySelected: boolean = false): void {\r\n filename = filename + \" \" + new Date().toLocaleString();\r\n gridapi.api.exportDataAsExcel({\r\n columnKeys: this.generateColumnsForExcel(gridapi),\r\n fileName: filename,\r\n sheetName: 'Sheet',\r\n onlySelected: onlySelected,\r\n processCellCallback: (params) => {\r\n const colDef = params.column.getColDef()\r\n\r\n // try to reuse valueFormatter from the colDef\r\n if (colDef.valueFormatter) {\r\n const valueFormatterParams: ValueFormatterParams = {\r\n ...params,\r\n data: params.value,\r\n node: params.node!,\r\n colDef: params.column.getColDef()\r\n };\r\n if (colDef.cellClass.toString().includes('ExportDate')) {\r\n params.value = this.dateConvertorByRegion(valueFormatterParams.data);\r\n }\r\n if (colDef.valueFormatter.toString().includes('percentColumnFormatter')) {\r\n params.value = this.percentColumnFormatter(valueFormatterParams.data, '')\r\n }\r\n return params.value;\r\n }\r\n if (params.value == \"true\" || params.value == true) {\r\n params.value = \"Yes\"\r\n }\r\n if (params.value == \"false\" || params.value == false) {\r\n params.value = \"No\"\r\n }\r\n\r\n return params.value;\r\n },\r\n })\r\n }\r\n\r\n generateColumnsForExcel(gridapi: any): string[] {\r\n const keys = gridapi.columnApi.getAllDisplayedColumns()\r\n .map((column) => {\r\n // Exclude columns with 'Actions' colId or blank header names\r\n const colId = column.getColId();\r\n const headerName = column.getColDef().headerName;\r\n if (headerName === 'Actions' || headerName === '' || headerName === 'Run' || headerName === undefined || colId === 'actions' || headerName === '' || colId === 'run' || colId === undefined) {\r\n return null;\r\n } else {\r\n return colId;\r\n }\r\n })\r\n .filter((key) => key !== null);\r\n // if (keys.includes(\"run\")) {\r\n // var slicedata = keys.slice(3)\r\n // }\r\n // else {\r\n // var slicedata = keys.slice(2)\r\n // }\r\n return keys;\r\n }\r\n\r\n onColumnMoved(e) {\r\n }\r\n currencyFormatter(currency, sign, digits: number) {\r\n if (currency != \"\" && currency != undefined && currency != null) {\r\n currency = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', currencyDisplay: 'narrowSymbol', minimumFractionDigits: digits, maximumFractionDigits: digits, }).format(currency).replace(/([$])/g, '');\r\n return currency;\r\n }\r\n else {\r\n return currency;\r\n }\r\n }\r\n\r\n\r\n // dateValueFormatter(params) {\r\n // var date = new Date(params);\r\n // var day = date.getDate().toString().padStart(2, '0');\r\n // var month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n // var year = date.getFullYear().toString();\r\n // var newDate = year + '-' + month + '-' + day;\r\n // var formattedDate= this.dateConvertorByRegion(newDate);\r\n // return formattedDate; \r\n // }\r\n\r\n dateConvertorByRegion(paramDate) {\r\n if(paramDate == '' || paramDate == undefined)\r\n return '';\r\n const datePipe = new DatePipe(navigator.language);\r\n var newDateReturn = datePipe.transform(paramDate, 'shortDate'); \r\n const formattedDate = new Date(newDateReturn).toLocaleDateString(navigator.language, { year: 'numeric', month: '2-digit', day: '2-digit' });\r\n return formattedDate; \r\n }\r\n\r\n percentColumnFormatterWith4dec(percent, sign) {\r\n if (percent != \"\" && percent != undefined && percent != null) {\r\n percent = new Intl.NumberFormat('en-US', { style: 'percent', minimumFractionDigits: 2, maximumFractionDigits: 4 }).format(percent / 100);\r\n return percent;\r\n }\r\n else {\r\n return percent;\r\n }\r\n }\r\n\r\n percentColumnFormatter(percent, sign) {\r\n if (percent != \"\" && percent != undefined && percent != null) {\r\n percent = new Intl.NumberFormat('en-US', { style: 'percent', minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(percent / 100);\r\n return percent;\r\n }\r\n else {\r\n return percent;\r\n }\r\n }\r\n\r\n dateColumnFormatter(params) {\r\n //const dateParts = percent.value.match(/(\\w+) (\\d+) (\\d+) (\\d+):(\\d+)(\\w+)/);\r\n // Try parsing the date in different formats\r\n if(params.column.colId == \"importDate\")\r\n {\r\n params.value = new Date();\r\n } \r\n var formattedDate = this.dateConvertorByRegion(params.value );\r\n \r\n return formattedDate; // 'shortDate' format for date only\r\n \r\n }\r\n\r\n // Custom function to try parsing the date in different formats using date-fns\r\n private tryParseDate(dateStr: string): Date | null {\r\n // Define the formats you want to try parsing\r\n const formats = ['MMM d yyyy h:mma', 'yyyy-MM-dd'];\r\n\r\n for (const format of formats) {\r\n const parsedDate = parse(dateStr, format, new Date(), { locale : enUS });\r\n if (!isNaN(parsedDate.getTime())) {\r\n return parsedDate;\r\n }\r\n }\r\n\r\n return null; // Parsing failed for all formats\r\n}\r\n\r\n \r\n performFilter(agGridDataModel: any) { \r\n let rows = this.storageService.retrieve(agGridDataModel.initialRows);\r\n let sortList = this.storageService.retrieve(agGridDataModel.gridName);\r\n // agGridDataModel.columnApi.applyColumnState({\r\n // state: sortList,\r\n // defaultState: { sort: null },\r\n // });\r\n try {\r\n if (agGridDataModel.gridApi != undefined)\r\n agGridDataModel.gridApi.columnApi.applyColumnState({\r\n state: sortList,\r\n defaultState: { sort: null },\r\n });\r\n else\r\n agGridDataModel.columnApi.applyColumnState({\r\n state: sortList,\r\n defaultState: { sort: null },\r\n });;\r\n }\r\n catch (ex) {\r\n console.log(ex)\r\n }\r\n\r\n this.filterList = [];\r\n this.filterList = this.storageService.retrieve(agGridDataModel.filterStorageName);\r\n \r\n var newFilterRows: any[] = rows;\r\n this.filterList?.forEach(element => {\r\n if (element?.FilterData != undefined) {\r\n const value = element?.FilterData.map(a => a.name);\r\n \r\n if (value != undefined) {\r\n if (value.length == 0) {\r\n newFilterRows = rows;\r\n }\r\n else { \r\n newFilterRows = newFilterRows.filter(function (d) {\r\n var check: boolean = false; \r\n value.forEach(val => { \r\n if (d[element.name]?.toString().toLowerCase() == (val?.toLocaleLowerCase()) || \r\n val?.toLocaleLowerCase() == \"null/(empty)\" ||\r\n !val) {\r\n check = d[element.name]?.toString().toLowerCase() == (val?.toLocaleLowerCase()) || \r\n (val?.toLocaleLowerCase() == \"null/(empty)\" && (d[element.name] == null || d[element.name].toString().toLowerCase() == '')) ||\r\n !val;\r\n }\r\n })\r\n return check;\r\n });\r\n }\r\n }\r\n }\r\n \r\n const txtInputValue = element?.textFilter?.toLowerCase();\r\n const type = element?.type;\r\n if (txtInputValue != undefined && txtInputValue != \"\" && txtInputValue != null) {\r\n newFilterRows = newFilterRows?.filter(function (d) {\r\n var checkInput: boolean = false;\r\n checkInput =\r\n ((element.type == \"textFilter\"\r\n && d[element.name]?.toString().toLowerCase().startsWith(txtInputValue))\r\n || (element.type == \"percentFilter\"\r\n && ((d[element.name] * 100).toString().toLowerCase().startsWith(txtInputValue)))\r\n // || (element.type == \"dateFilter\"\r\n // && ((new DatePipe('en-US').transform(d[element.name], 'MM/dd/yyyy')).toString().toLowerCase().startsWith(txtInputValue)))\r\n )\r\n if (element.type == \"textFilter\" || element.name.toLowerCase().indexOf(\"date\") != -1) {\r\n\r\n var checkInput: boolean = false;\r\n // Format the date in the desired locale-specific format\r\n var date = d[element.name];\r\n const formattedDate = this.dateConvertorByRegion(date);\r\n \r\n // Check if the formatted date starts with txtInputValue\r\n checkInput = formattedDate.toLowerCase().startsWith(txtInputValue);\r\n // return checkInput;\r\n\r\n // return checkInput;\r\n }\r\n return checkInput;\r\n \r\n });\r\n }\r\n });\r\n\r\n var gridApi: any;\r\n if (agGridDataModel.gridApi != undefined)\r\n gridApi = agGridDataModel.gridApi.api;\r\n else\r\n gridApi = agGridDataModel.api;\r\n var storedPageSize = this.storageService.retrieve(agGridDataModel.paginationStore);\r\n gridApi.paginationSetPageSize(storedPageSize == undefined ? defaultPageLimit : storedPageSize);\r\n gridApi.setRowData(newFilterRows);\r\n if (agGridDataModel.gridName == StorageName.CALCULATIONS_TIER_CALC_GRID) {\r\n let obj = null;\r\n if (newFilterRows.length > 0) {\r\n let sumOfCarriedInterest: number = newFilterRows.map(a => a.carriedInterest)?.reduce(function (a, b) { return a + b; });\r\n let sumOfParticipantAlloc: number = newFilterRows.map(a => a.participantAlloc)?.reduce(function (a, b) { return a + b; });\r\n let sumOfTierAmt: number = newFilterRows.map(a => a.tierAmt)?.reduce(function (a, b) { return a + b; });\r\n let sumOfComparisonTierAmt: number = newFilterRows.map(a => a.comparisionAmt)?.reduce(function (a, b) { return a + b; });\r\n obj = {\r\n investor: \"Totals \",\r\n carriedInterest: sumOfCarriedInterest,\r\n participantAlloc: sumOfParticipantAlloc,\r\n tierAmt: sumOfTierAmt,\r\n comparisionAmt: sumOfComparisonTierAmt,\r\n isSumRow: true\r\n }\r\n }\r\n else {\r\n obj = {\r\n investor: \"Totals \",\r\n carriedInterest: 0,\r\n participantAlloc: 0,\r\n tierAmt: 0,\r\n comparisionAmt: 0,\r\n isSumRow: true\r\n }\r\n }\r\n if (agGridDataModel.gridApi != undefined)\r\n gridApi = agGridDataModel.gridApi;\r\n else\r\n gridApi = agGridDataModel;\r\n\r\n gridApi.api.setPinnedBottomRowData([obj]);\r\n\r\n //this.addNewRow({ api: gridApi, newRow: obj });\r\n\r\n }\r\n\r\n if (agGridDataModel.gridName == StorageName.CALCULATIONS_PREF_RET_CALC_GRID) {\r\n let obj = null;\r\n if (newFilterRows.length > 0) {\r\n let sumOfcashFlowAmt: number = newFilterRows.map(a => a.cashFlowAmt)?.reduce(function (a, b) { return a + b; });\r\n let sumOfprefRetAmt: number = newFilterRows.map(a => a.prefRetAmt).reduce(function (a, b) { return a + b; });\r\n\r\n obj = {\r\n investor: \"Totals \",\r\n cashFlowAmt: sumOfcashFlowAmt,\r\n cashFlowDate: \"\",\r\n prefRetAmt: sumOfprefRetAmt,\r\n isSumRow: true\r\n }\r\n }\r\n else {\r\n obj = {\r\n investor: \"Totals \",\r\n cashFlowAmt: 0,\r\n cashFlowDate: \"\",\r\n prefRetAmt: 0,\r\n isSumRow: true\r\n }\r\n }\r\n if (agGridDataModel.gridApi != undefined)\r\n gridApi = agGridDataModel.gridApi;\r\n else\r\n gridApi = agGridDataModel;\r\n\r\n gridApi.api.setPinnedBottomRowData([obj]);\r\n }\r\n\r\n // this.setPageSize.next({pageSize : data, rows : newFilterRows });\r\n return newFilterRows;\r\n }\r\n\r\n resetAllFilters(initialRowsStorageName, filterStorageName, storageNameSorting, gridApi = null) {\r\n this.storageService.removeItem(filterStorageName);\r\n let initialRows = this.sortService.performSort(initialRowsStorageName, storageNameSorting);\r\n if (gridApi != null && gridApi != undefined)\r\n gridApi.api.setRowData(initialRows);\r\n\r\n\r\n if (initialRowsStorageName == StorageName.CALCULATIONS_TIER_CALC_INITIALROWS && initialRows.length > 0) {\r\n let sumOfCarriedInterest: number = initialRows.map(a => a.carriedInterest).reduce(function (a, b) { return a + b; });\r\n let sumOfParticipantAlloc: number = initialRows.map(a => a.participantAlloc).reduce(function (a, b) { return a + b; });\r\n let sumOfTierAmt: number = initialRows.map(a => a.tierAmt).reduce(function (a, b) { return a + b; });\r\n let sumOfComparisonTierAmt: number = initialRows.map(a => a.comparisionAmt).reduce(function (a, b) { return a + b; });\r\n const obj = {\r\n investor: \"Totals \",\r\n carriedInterest: sumOfCarriedInterest,\r\n participantAlloc: sumOfParticipantAlloc,\r\n tierAmt: sumOfTierAmt,\r\n comparisionAmt: sumOfComparisonTierAmt,\r\n isSumRow: true\r\n }\r\n gridApi.api.setPinnedBottomRowData([obj]);\r\n\r\n }\r\n \r\n if (initialRowsStorageName == StorageName.CALCULATIONS_PREF_RET_CALC_INITIALROWS) {\r\n let obj = null;\r\n \r\n if (initialRows.length > 0) {\r\n let sumOfcashFlowAmt: number = initialRows.map(a => a.cashFlowAmt)?.reduce(function (a, b) { return a + b; });\r\n let sumOfprefRetAmt: number = initialRows.map(a => a.prefRetAmt).reduce(function (a, b) { return a + b; });\r\n obj = {\r\n investor: \"Totals \",\r\n cashFlowAmt: sumOfcashFlowAmt,\r\n cashFlowDate: \"\",\r\n prefRetAmt: sumOfprefRetAmt,\r\n isSumRow: true\r\n }\r\n } else {\r\n obj = {\r\n investor: \"Totals \",\r\n cashFlowAmt: 0,\r\n cashFlowDate: \"\",\r\n prefRetAmt: 0,\r\n isSumRow: true\r\n }\r\n }\r\n gridApi.api.setPinnedBottomRowData([obj]);\r\n\r\n }\r\n return initialRows;\r\n }\r\n }","import {\r\n AfterViewInit,\r\n Component,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from \"@angular/core\";\r\nimport { ICellEditorAngularComp } from \"ag-grid-angular\";\r\nimport { ICellEditorParams } from \"ag-grid-community\";\r\nimport { TierTransactionService } from \"src/app/pages/transactions/tier-transactions/tier-transactions.service\";\r\nimport { AllInvestorVehicle, DropdownModel, InvestmentList, InvestorList, PositionList } from \"../../model/common.model\";\r\n@Component({\r\n selector: \"app-cell-editor-transaction\",\r\n templateUrl: \"./cell-editor-transaction.component.html\",\r\n styleUrls: [\"./cell-editor-transaction.component.scss\"],\r\n})\r\nexport class CellEditorTransactionComponent\r\n implements ICellEditorAngularComp, AfterViewInit {\r\n @ViewChild(\"container\", { read: ViewContainerRef }) public container;\r\n agInvestorName: any[] = [];\r\n agInvestorId: any[] = [];\r\n agvehicalData: DropdownModel[] = [];\r\n agvehicalId: any[] = [];\r\n agPositionName: DropdownModel[] = [];\r\n agpositionId: any[] = [];\r\n agInvestmentName: DropdownModel[] = [];\r\n agInvestmentId: any[] = [];\r\n constructor(private tierTransactionsService: TierTransactionService) { }\r\n values = [];\r\n params;\r\n value;\r\n public happy: boolean = false;\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.container.element.nativeElement.focus();\r\n });\r\n }\r\n agInit(params: ICellEditorParams): void {\r\n var columnName = \"\";\r\n columnName = params.colDef.field;\r\n switch (columnName) {\r\n case \"vehicleInvestorName\":\r\n var investorId = params.data.investorId == undefined ? (params.data.investorId ? params.data.investorId : 0) : params.data.investorId;\r\n var fundId = params.data.fundId;\r\n investorId = params.data.isInvestorValueChanged == true ? investorId : 0;\r\n this.getInvestorVehicle(fundId, investorId);\r\n break;\r\n case \"investorName\":\r\n var vehicleInvestorId = params.data.vehicleInvestorId == undefined ? (params.data.vehicleInvestorId ? params.data.vehicleInvestorId : 0) : params.data.vehicleInvestorId;\r\n var fundId = params.data.fundId;\r\n this.getInvestors(fundId, vehicleInvestorId);\r\n break;\r\n case \"investmentName\":\r\n var positionId = params.data.positionId == undefined ? (params.data.positionId ? params.data.positionId : 0) : params.data.positionId;\r\n var fundId = params.data.fundId;\r\n positionId = params.data.isPositionValueChanged == true ? positionId : 0;\r\n this.getInvestment(fundId, positionId);\r\n break;\r\n case \"positionName\":\r\n var investmentId = params.data.investmentId == undefined ? (params.data.investmentId ? params.data.investmentId : 0) : params.data.investmentId;\r\n var fundId = params.data.fundId;\r\n this.getPosition(fundId, investmentId);\r\n break;\r\n }\r\n\r\n this.params = params;\r\n this.value = params.value;\r\n }\r\n getInvestorVehicle(fundId, investorId) {\r\n this.tierTransactionsService.GetInvestorVehicle(fundId, investorId).subscribe((data) => {\r\n if (data.response) {\r\n let investorVehicle = data.response as AllInvestorVehicle[];\r\n this.values = investorVehicle?.map( (item: AllInvestorVehicle) => ({name: item.vehicleInvestorName,id: item.id.toString()}));\r\n }\r\n })\r\n }\r\n\r\n getInvestors(fundId, vehicleInvestorId) {\r\n this.tierTransactionsService.GetInvestors(fundId, vehicleInvestorId).subscribe((data) => {\r\n if (data.response) {\r\n let investors = data.response as InvestorList[];\r\n this.values = investors?.map( (item: InvestorList) => ({name: item.investorName,id: item.id.toString()}));\r\n }\r\n })\r\n }\r\n getPosition(fundId, investmentId) {\r\n this.tierTransactionsService.GetPosition(fundId, investmentId).subscribe((data) => {\r\n if (data.response) {\r\n let position = data.response as PositionList[];\r\n this.values = position?.map( (item: PositionList) => ({name: item.positionName,id: item.id.toString()}));\r\n }\r\n })\r\n }\r\n getInvestment(fundId, positionId) {\r\n this.tierTransactionsService.GetInvestment(fundId, positionId).subscribe((data) => {\r\n if (data.response) {\r\n let investments = data.response as InvestmentList[];\r\n this.values = investments?.map( (item: InvestmentList) => ({name: item.investmentName,id: item.id.toString()}));\r\n }\r\n })\r\n }\r\n\r\n\r\n getValue() {\r\n return this.value;\r\n }\r\n isPopup?(): boolean {\r\n return false;\r\n }\r\n getPopupPosition?(): string {\r\n return 'top'\r\n }\r\n isCancelBeforeStart?(): boolean {\r\n return false;\r\n }\r\n isCancelAfterEnd?(): boolean {\r\n return false\r\n }\r\n focusIn?(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n focusOut?(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n afterGuiAttached?(): void {\r\n this.getValue()\r\n }\r\n ngOnInit(): void {\r\n }\r\n onKeyDown(event): void {\r\n let key = event.which || event.keyCode;\r\n if ( key == 37 || key == 39) { // 37 left 39 right\r\n event.stopPropagation();\r\n }\r\n }\r\n onClick(happy: boolean) {\r\n this.params.api.stopEditing();\r\n }\r\n selected(item){\r\n if(this.params.colDef.field == \"positionName\")\r\n this.params.node.data[\"isPositionValueChanged\"] = true;\r\n if(this.params.colDef.field == \"investorName\")\r\n this.params.node.data[\"isInvestorValueChanged\"] = true;\r\n var idColumn = this.params.colDef.headerComponentParams.filterIdColumnName;\r\n var selectedItem = this.values.filter(a=>a.name==item)[0];\r\n this.params.node.data[idColumn] = selectedItem.id;\r\n this.value = selectedItem.name;\r\n var columnName = this.params.colDef.field;\r\n switch (columnName) {\r\n case \"vehicleInvestorName\":\r\n var vehicleInvestorId = this.params.data.vehicleInvestorId == undefined ? ( this.params.data.vehicleInvestorId ? this.params.data.vehicleInvestorId : 0) : this.params.data.vehicleInvestorId;\r\n var fundId = this.params.data.fundId;\r\n var investorId = this.params.data.investorId;\r\n this.tierTransactionsService.GetInvestors(fundId, vehicleInvestorId).subscribe((data) => {\r\n if (data.response) {\r\n let investors = data.response as InvestorList[];\r\n var list = investors?.map( (item: InvestorList) => ({name: item.investorName,id: item.id.toString()}));\r\n var exist = list.some(e => e.id.toString() === investorId?.toString());\r\n if(exist == false){\r\n this.params.data.investorId = 0;\r\n this.params.data.investorName = \"\";\r\n }\r\n }\r\n })\r\n\r\n break;\r\n case \"investorName\":\r\n var investorId = this.params.data.investorId == undefined ? ( this.params.data.investorId ? this.params.data.investorId : 0) : this.params.data.investorId;\r\n var fundId = this.params.data.fundId;\r\n var vehicleInvestorId = this.params.data.vehicleInvestorId;\r\n this.tierTransactionsService.GetInvestorVehicle(fundId, investorId).subscribe((data) => {\r\n if (data.response) {\r\n let investorVehicle = data.response as AllInvestorVehicle[];\r\n var list = investorVehicle?.map( (item: AllInvestorVehicle) => ({name: item.vehicleInvestorName,id: item.id.toString()}));\r\n var exist = list.some(e => e.id.toString() === vehicleInvestorId?.toString());\r\n if(exist == false){\r\n this.params.data.investorId = 0;\r\n this.params.data.investorName = \"\";\r\n }\r\n }\r\n })\r\n break;\r\n case \"investmentName\":\r\n var investmentId = this.params.data.investmentId == undefined ? ( this.params.data.investmentId ? this.params.data.investmentId : 0) : this.params.data.investmentId;\r\n\r\n var fundId = this.params.data.fundId;\r\n var positionId = this.params.data.positionId;\r\n this.tierTransactionsService.GetPosition(fundId, investmentId).subscribe((data) => {\r\n if (data.response) {\r\n let position = data.response as PositionList[];\r\n var list = position?.map( (item: PositionList) => ({name: item.positionName,id: item.id.toString()}));\r\n var exist = list.some(e => e.id.toString() === positionId?.toString());\r\n if(exist == false){\r\n this.params.data.positionId = 0;\r\n this.params.data.positionName = \"\";\r\n }\r\n }\r\n })\r\n break;\r\n case \"positionName\":\r\n var positionId = this.params.data.positionId == undefined ? ( this.params.data.positionId ? this.params.data.positionId : 0) : this.params.data.positionId;\r\n var fundId = this.params.data.fundId;\r\n var investmentId = this.params.data.investmentId;\r\n this.tierTransactionsService.GetInvestment(fundId, positionId).subscribe((data) => {\r\n if (data.response) {\r\n let investments = data.response as InvestmentList[];\r\n var list = investments?.map( (item: InvestmentList) => ({name: item.investmentName,id: item.id.toString()}));\r\n var exist = list.some(e => e.id.toString() === investmentId?.toString());\r\n if(exist == false){\r\n this.params.data.investmentId = 0;\r\n this.params.data.investmentName = \"\";\r\n }\r\n }\r\n })\r\n\r\n break;\r\n }\r\n }\r\n}","import { AfterViewInit, Component,OnInit,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from \"@angular/core\";\r\nimport { ICellEditorAngularComp } from \"ag-grid-angular\";\r\nimport { ICellEditorParams } from \"ag-grid-community\";\r\nimport { StorageName } from \"../../common/enum\";\r\nimport { StorageService } from \"../../services/storage.service\";\r\n@Component({\r\n selector: \"app-cell-editor\",\r\n templateUrl: \"./cell-editor.component.html\",\r\n styleUrls: [\"./cell-editor.component.scss\"],\r\n})\r\nexport class CellEditorComponent\r\n implements ICellEditorAngularComp, AfterViewInit\r\n{\r\n @ViewChild(\"container\", { read: ViewContainerRef }) public container;\r\n constructor( public storageService : StorageService ) {}\r\n values = [];\r\n params;\r\n value;\r\n oldValue;\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.container.element.nativeElement.focus();\r\n });\r\n }\r\n agInit(params: ICellEditorParams): void {\r\n this.setDropdownDatasource(params.colDef.field,params);\r\n this.oldValue =params.data[this.params.colDef.headerComponentParams.filterIdColumnName];\r\n }\r\n getValue() {\r\n return this.value;\r\n }\r\n isPopup?(): boolean {\r\n return false;\r\n }\r\n getPopupPosition?(): string {\r\n return 'top'\r\n }\r\n isCancelBeforeStart?(): boolean {\r\n return false;\r\n }\r\n isCancelAfterEnd?(): boolean {\r\n return false\r\n }\r\n focusIn?(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n focusOut?(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n afterGuiAttached?(): void {\r\n this.getValue()\r\n }\r\n ngOnInit(): void {\r\n }\r\n onKeyDown(event): void {\r\n let key = event.which || event.keyCode;\r\n if (\r\n key == 37 || // left\r\n key == 39\r\n ) {\r\n // right\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n cellEditingStopped(event)\r\n {\r\n }\r\n\r\n cellValueChanged()\r\n {\r\n }\r\n onClick(happy: boolean) {\r\n this.params.api.stopEditing();\r\n }\r\n selected(item){\r\n var selectedItem = this.values.filter(a=>a.name==item)[0];\r\n this.value = selectedItem.name;\r\n if(this.oldValue != this.value)\r\n {\r\n var idColumn = this.params.colDef.headerComponentParams.filterIdColumnName;\r\n var valueColumn = this.params.colDef.headerComponentParams.filterValueColumnName;\r\n this.params.node.data.isEdited = true;\r\n this.params.node.data[idColumn] = selectedItem.id;\r\n this.params.node.data[valueColumn] = selectedItem.name;\r\n this.storageService.store(this.params.colDef.headerComponentParams.initialRows,this.params.api.getModel().rowsToDisplay.map(a => a.data));\r\n }\r\n }\r\n public setDropdownDatasource(fieldName: string, params : any)\r\n {\r\n var dropdownData : any[] =[];\r\n switch(fieldName)\r\n {\r\n \r\n case \"vehicleInvestorName\": dropdownData =this.storageService.retrieve(StorageName.VEHICLE_INVESTOR_DROPDOWN); break;\r\n //case \"leAssociation\": dropdownData =this.storageService.retrieve(StorageName.LE_ASSOCIATION_DROPDOWN); break;\r\n case \"investorName\": dropdownData =this.storageService.retrieve(StorageName.INVESTOR_DROPDOWN); break;\r\n case \"investmentName\": dropdownData =this.storageService.retrieve(StorageName.INVESTMENT_DROPDOWN); break;\r\n case \"positionName\": dropdownData =this.storageService.retrieve(StorageName.POSITION_GRID_DROPDOWN); break;\r\n case \"carryPtrDesignation\": dropdownData =this.storageService.retrieve(StorageName.CARRY_PARTNER_DESIGNATION_LEVEL_GRID_DROPDOWN); break;\r\n case \"allocCalcLevel\": dropdownData =this.storageService.retrieve(StorageName.CALCULATION_LEVEL_GRID_DROPDOWN); break;\r\n case \"transferType\": dropdownData =this.storageService.retrieve(StorageName.TRANSFER_TYPE_GRID_DROPDOWN); break;\r\n case \"status\": \r\n if(params.colDef.headerComponentParams.gridName == \"FUNDADMIN_FUNDS_PTR_TRANSFER_GRID\") \r\n dropdownData =this.storageService.retrieve(StorageName.STATUS_GRID_DROPDOWN); \r\n else\r\n dropdownData =this.storageService.retrieve(StorageName.STATUS_GRID_DROPDOWN); \r\n break;\r\n case \"leAssociationName\": dropdownData =this.storageService.retrieve(StorageName.FILTERFUND_DROPDOWN); break;\r\n case \"allocate\": dropdownData =this.storageService.retrieve(StorageName.ALLOCATE_DROPDOWN); break;\r\n case \"fundName\": dropdownData =this.storageService.retrieve(StorageName.FUND_DROPDOWN); break;\r\n case \"tierName\":\r\n case \"comparisonTierName\":\r\n case \"expAllocationTierName\":\r\n case \"tier\": dropdownData =this.storageService.retrieve(StorageName.TIER_DROPDOWN); break;\r\n case \"transSetForUploadName\": dropdownData =this.storageService.retrieve(StorageName.NON_STSTEM_TIER_DROPDOWN); break;\r\n case \"rollupLevelName\": dropdownData =this.storageService.retrieve(StorageName.ROLLUP_LEVEL_DROPDOWN); break;\r\n case \"includeinBalanceName\": dropdownData =this.storageService.retrieve(StorageName.INCLUDE_IN_BALANCE_DROPDOWN); break;\r\n case \"numDenom\": dropdownData =this.storageService.retrieve(StorageName.NUMERATOR_DENOMINATOR_DROPDOWN); break;\r\n case \"roleName\": dropdownData =this.storageService.retrieve(StorageName.ROLE_DROPDOWN); break;\r\n case \"userName\": dropdownData =this.storageService.retrieve(StorageName.USER_GRID_DROPDOWN); break;\r\n case \"hurdleRetLocation\": dropdownData =this.storageService.retrieve(StorageName.HURDLE_DROPDOWN); break;\r\n case \"lpaSubActName\": dropdownData =this.storageService.retrieve(StorageName.SUB_ACT_DROPDOWN); break;\r\n case \"filterField\": dropdownData =this.storageService.retrieve(StorageName.FILTER_FIELD_DROPDOWN); break;\r\n case \"filterCriteria\": dropdownData =this.storageService.retrieve(StorageName.FILTER_CRITERIA_DROPDOWN); break;\r\n case \"udfFieldName\": dropdownData =this.storageService.retrieve(StorageName.UDF_DROPDOWN); break;\r\n case \"subActName\": dropdownData =this.storageService.retrieve(StorageName.SUB_ACT_DROPDOWN); break;\r\n case \"prefReturnRuleName\": dropdownData =this.storageService.retrieve(StorageName.PERFORMANCERULE_DROPDOWN); break;\r\n case \"applyForName\": dropdownData =this.storageService.retrieve(StorageName.APPLY_FOR_DROPDOWN); break;\r\n }\r\n \r\n // var blankval = {id: null , name: ''};\r\n // //adds one or more elements to the beginning of an array\r\n // dropdownData.unshift(blankval);\r\n this.values = dropdownData;\r\n this.params = params;\r\n this.value = params.value;\r\n //return dropdownData;\r\n }\r\n}\r\n","import { Component, ElementRef, HostListener, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\r\nimport { ICellRendererParams } from \"ag-grid-community\";\r\nimport { AgGridService } from \"../ag-grid/ag-grid.service\";\r\n@Component({\r\n selector: \"app-checkbox-renderer\",\r\n templateUrl: \"./checkbox-renderer.component.html\",\r\n styleUrls: [\"./checkbox-renderer.component.scss\"],\r\n})\r\nexport class CheckboxRendererComponent\r\n implements ICellRendererAngularComp, OnDestroy, OnInit {\r\n checked = false;\r\n private value: boolean;\r\n disabledCheckBox: boolean = false;\r\n constructor(public agGridService: AgGridService,private elementRef: ElementRef) { }\r\n // refresh(params: ICellRendererParams): boolean {\r\n // return true;\r\n // }\r\n ngOnInit(): void {\r\n }\r\n public params: any;\r\n agInit(params: any): void {\r\n this.value = params.value;\r\n this.params = params;\r\n if (typeof (this.params.colDef.editable) == \"boolean\" && this.params.colDef.editable == false) {\r\n this.disabledCheckBox = true;\r\n }\r\n else if (typeof this.params.colDef.editable == \"function\") {\r\n let value = this.params.colDef.editable(this.params);\r\n if (!value) {\r\n this.disabledCheckBox = true;\r\n }\r\n }\r\n }\r\n\r\n onClick(event: Event): void {\r\n event.stopPropagation();\r\n // Handle any custom logic if needed\r\n }\r\n\r\n refresh(params: any): boolean {\r\n this.params = params;\r\n return true;\r\n }\r\n\r\n onFocus(): void {\r\n this.params.api.startEditingCell({\r\n rowIndex: this.params.node.rowIndex,\r\n colKey: this.params.column.getColId(),\r\n });\r\n }\r\n\r\n getValue(): any {\r\n return this.value; // Return the original value\r\n }\r\n\r\n checkedHandler(event) {\r\n // condition for transaction check\r\n if (this.params.colDef.cellRendererParams == true) {\r\n if (typeof (this.params.colDef.editable) == \"boolean\" && this.params.colDef.editable == false) {\r\n this.disabledCheckBox = true;\r\n return false;\r\n }\r\n else if (typeof this.params.colDef.editable == \"function\") {\r\n let value = this.params.colDef.editable(this.params);\r\n if (!value) {\r\n this.disabledCheckBox = true;\r\n return false;\r\n }\r\n }\r\n }\r\n // condition for transaction check\r\n let checked = event.target.checked;\r\n let colId = this.params.column.colId;\r\n this.params.node.setDataValue(colId, checked);\r\n\r\n // if (this.params.colDef.headerComponentParams.gridName == StorageName.PERMISSION_FUNDGROUP_GRID\r\n // || this.params.colDef.headerComponentParams.gridName == StorageName.PERMISSION_FORM_GRID) {\r\n // if (colId == 'viewPermission' && !checked) {\r\n // this.params.node.setDataValue('modifyPermission', checked);\r\n // this.params.node.setDataValue('deletePermission', checked);\r\n // }\r\n // else if ((colId == 'modifyPermission' || colId == 'deletePermission') && checked) {\r\n // this.params.node.setDataValue('viewPermission', checked);\r\n // }\r\n // }\r\n }\r\n\r\n onchange() {\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { IDropdownSettings } from \"ng-multiselect-dropdown\";\r\nimport { StorageService } from \"../../services/storage.service\";\r\nimport { StorageName } from \"../../common/enum\";\r\n@Component({\r\n selector: \"app-custom-input-control\",\r\n templateUrl: \"./custom-input-control.component.html\",\r\n styleUrls: [\"./custom-input-control.component.scss\"],\r\n})\r\nexport class CustomInputControlComponent implements OnInit {\r\n @ViewChild('resizedDiv') myDiv: ElementRef;\r\n params;\r\n @Input() type : string;\r\n @Input() model : string;\r\n @Input() name : string;\r\n @Input() title : string;\r\n @Input() isRequired : boolean = false;\r\n @Input() dropdownModelList : string;\r\n @Input() inputWidthPer : string ;\r\n @Input() labelWidthPer : string ;\r\n @Input() checkboxRelatedLabel : string;\r\n @Input() disabled : boolean;\r\n @Input() isPopupField : boolean = false;\r\n @Input() showSuffix : boolean = false;\r\n @Input() selectedItems : string;\r\n @Input() disableInput : boolean = false;\r\n @Input() labelFontClass : string = \"\";\r\n @Input() inputHeightClass : string = \"\";\r\n @Input() widthClass : string = \"w-100\";\r\n inputWidth : number;\r\n labelWidth : number;\r\n dropdownSettings: IDropdownSettings = {};\r\n\r\n @Output() onInputChanged: EventEmitter = new EventEmitter();\r\n constructor( private storageService: StorageService) {}\r\n ngOnInit(): void {\r\n \r\n switch(this.type){\r\n case 'dropdown':\r\n case 'date':\r\n case 'input':\r\n case 'percentInput':\r\n case 'label':\r\n this.inputWidth = 70;\r\n break;\r\n case 'textarea':\r\n this.inputWidth = 85;\r\n break;\r\n case 'checkbox': \r\n this.inputWidth = 10;\r\n break;\r\n case 'multiselectdropdown':\r\n this.inputWidth = 70;\r\n break;\r\n }\r\n this.labelWidth = 100 - this.inputWidth;\r\n if(this.inputWidthPer == undefined)\r\n this.inputWidthPer = this.inputWidth.toString();\r\n if(this.labelWidthPer == undefined)\r\n this.labelWidthPer = this.labelWidth.toString();\r\n \r\n if(this.widthClass == undefined)\r\n this.widthClass = \"w-100\"\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n // var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n // const inputElements = this.myDiv.nativeElement.querySelectorAll('input');\r\n // inputElements.forEach(input => {\r\n // input.disabled = !formPermission.modifyPermission;\r\n // });\r\n\r\n // const selectElements = this.myDiv.nativeElement.querySelectorAll('select');\r\n // selectElements.forEach(input => {\r\n // input.disabled = !formPermission.modifyPermission;\r\n // });\r\n\r\n // const textareaElements = this.myDiv.nativeElement.querySelectorAll('textarea');\r\n // textareaElements.forEach(input => {\r\n // input.disabled = !formPermission.modifyPermission;\r\n // });\r\n\r\n // const checkboxElements = this.myDiv.nativeElement.querySelectorAll('checkbox');\r\n // checkboxElements.forEach(input => {\r\n // input.disabled = !formPermission.modifyPermission;\r\n // });\r\n \r\n }\r\n \r\n inputChanged(selectedItems){\r\n if(this.type==\"dropdown\")\r\n this.onInputChanged.emit((this.model == \"null\" ? null : this.model));\r\n else if(this.type == \"date\"){\r\n this.onInputChanged.emit(this.model);\r\n }\r\n else if(this.type!=\"multiselectdropdown\")\r\n this.onInputChanged.emit(this.model);\r\n else \r\n this.onInputChanged.emit(selectedItems);\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { ITooltipAngularComp } from 'ag-grid-angular';\r\nimport { ITooltipParams } from 'ag-grid-community'\r\n@Component({\r\n selector: 'app-custom-tooltip',\r\n templateUrl: './custom-tooltip.component.html',\r\n styleUrls: ['./custom-tooltip.component.scss']\r\n})\r\nexport class CustomTooltip implements ITooltipAngularComp {\r\n private params!: { color: string } & ITooltipParams;\r\n public data!: any;\r\n public formula : string;\r\n public color!: string;\r\n\r\n agInit(params: { color: string , displayName : string} & ITooltipParams): void {\r\n this.params = params;\r\n this.data = params.api!.getDisplayedRowAtIndex(params.rowIndex!)!.data;\r\n\r\n switch(params.displayName)\r\n {\r\n case \"Tier Calc\" :\r\n this.formula = \r\n \"Allocating : \"+params.data.allocPercent +\" %

\"+\r\n \"

Tier Amount : \"+params.data.tierAmt +\"

\"+\r\n \"

Comp. Tier Amount : \"+params.data.comparisionAmt +\"

\"+\r\n \"

Tier Calc : \"+params.data.tierCalc +\"\"\r\n break;\r\n case \"Balance\":\r\n this.formula = this.data.balanceFormula;\r\n break;\r\n case \"Proportional %\":\r\n this.formula = this.data.allocPercentFormula;\r\n break;\r\n }\r\n this.color = this.params.color || 'white';\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { IDoesFilterPassParams, IFilterComp, IFilterParams } from 'ag-grid-community'\r\n@Component({\r\n selector: 'app-custome-filter',\r\n templateUrl: './custome-filter.component.html',\r\n styleUrls: ['./custome-filter.component.scss']\r\n})\r\nexport class CustomeFilterComponent implements OnInit,IFilterComp {\r\n\r\n ngOnInit(): void {\r\n }\r\n filterParams!: IFilterParams;\r\n filterText: string | null = null;\r\n eFilterText: any;\r\n params!: IFilterParams;\r\n gui: any;\r\n onFilterChanged!: () => void;\r\n init(params: IFilterParams) {\r\n this.filterParams = params;\r\n this.filterText = null;\r\n this.params = params;\r\n this.setupGui();\r\n }\r\n // not called by AG Grid, just for us to help setup\r\n setupGui() {\r\n this.gui = document.createElement('div');\r\n this.gui.innerHTML =`\r\n

\r\n
Greater than:
\r\n
\r\n
\r\n `\r\n ;\r\n this.onFilterChanged = () => {\r\n this.extractFilterText();\r\n this.params.filterChangedCallback();\r\n };\r\n this.eFilterText = this.gui.querySelector('#filterText');\r\n this.eFilterText.addEventListener('input', this.onFilterChanged);\r\n }\r\n extractFilterText() {\r\n this.filterText = this.eFilterText.value;\r\n }\r\n getGui() {\r\n return alert(\"Custoe Filter.\")\r\n \r\n return this.gui;\r\n }\r\n doesFilterPass(params: IDoesFilterPassParams) {\r\n if (!this.isFilterActive()) {\r\n return false;\r\n }\r\n const { api, colDef, column, columnApi, context } = this.filterParams;\r\n const { node } = params;\r\n const value = this.filterParams.valueGetter({\r\n api,\r\n colDef,\r\n column,\r\n columnApi,\r\n context,\r\n data: node.data,\r\n getValue: (field) => node.data[field],\r\n node,\r\n });\r\n const filterValue = this.filterText;\r\n if (!value) return false;\r\n return Number(value) > Number(filterValue);\r\n }\r\n isFilterActive() {\r\n return (\r\n this.filterText !== null &&\r\n this.filterText !== undefined &&\r\n this.filterText !== '' &&\r\n isNumeric(this.filterText)\r\n );\r\n }\r\n getModel() {\r\n return this.isFilterActive() ? Number(this.eFilterText.value) : null;\r\n }\r\n setModel(model: any) {\r\n this.eFilterText.value = model;\r\n this.extractFilterText();\r\n }\r\n destroy() {\r\n this.eFilterText.removeEventListener('input', this.onFilterChanged);\r\n }\r\n getModelAsString() {\r\n return this.isFilterActive() ? '>' + this.filterText : '';\r\n }\r\n}\r\nconst isNumeric = (n: string) =>\r\n !isNaN(parseFloat(n)) && isFinite(parseFloat(n));","import { Component, EventEmitter, OnInit, Output, QueryList, ViewChild, ViewChildren} from '@angular/core';\r\nimport { MatCheckbox } from '@angular/material/checkbox';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { IHeaderAngularComp } from 'ag-grid-angular';\r\nimport { IHeaderParams } from 'ag-grid-community';\r\nimport { Subscription } from 'rxjs';\r\nimport { StorageName } from '../../common/enum';\r\nimport { CommonFilterModel } from '../../model/response.model';\r\nimport { AgGridService } from '../ag-grid/ag-grid.service';\r\nimport { FilterComponent } from '../filter/filter/filter.component';\r\nimport { ICustomHeaderParams } from './custome-header.interface';\r\nimport { CustomeHeaderService } from './custome-header.service';\r\nimport { StorageService } from '../../services/storage.service';\r\n@Component({\r\n selector: 'app-custome-header',\r\n templateUrl: './custome-header.component.html',\r\n styleUrls: ['./custome-header.component.scss'],\r\n})\r\nexport class CustomeHeaderComponent implements OnInit, IHeaderAngularComp {\r\n @ViewChild(FilterComponent) filterComponent:FilterComponent;\r\n @ViewChildren(MatCheckbox) components:QueryList;\r\n public params!: IHeaderParams & ICustomHeaderParams;\r\n @ViewChild('myTestDiv') myTestDiv: MatSelectChange;\r\n privatUserCheckboxText : string = \"privatUserCheckbox\";\r\n rows: any[];\r\n filterData: CommonFilterModel[];\r\n private _allRowsSubscription!: Subscription;\r\n private _filterDataSubscription!: Subscription;\r\n filterSelect: string = \"\";\r\n selectedElement:any= \"\"; \r\n inputValue: any;\r\n isFilterIconColor: boolean = false;\r\n showCheckbox : boolean = false;\r\n isChecked : boolean = false;\r\n tabName: string;\r\n checkBoxId : string;\r\n @Output() onHeaderChecboxChecked: EventEmitter = new EventEmitter();\r\n constructor(public agGridService: AgGridService, public customeHeaderService:CustomeHeaderService, public storageService : StorageService) {\r\n \r\n }\r\n ngOnInit(): void {\r\n this._filterDataSubscription = this.agGridService.filterData$.subscribe(\r\n (data) => {\r\n this.filterData = data;\r\n }\r\n )\r\n }\r\n resetValue(gridName){\r\n this.selectedElement = '';\r\n }\r\n agInit(params: IHeaderParams & ICustomHeaderParams): void {\r\n this.params = params;\r\n this.checkBoxId = this.params.columnName;\r\n // this.params.columnApi.getAllDisplayedColumns().forEach(element => {\r\n // var colDefinternal = element.getColDef();\r\n // if(colDefinternal.headerName !== this.params.column.getColDef().headerName)\r\n // element.getColDef().headerComponentParams.isSelected = false;\r\n // });\r\n var coldef = this.params.column.getColDef();\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if((coldef.field == \"viewPermission\" || coldef.field == \"modifyPermission\" || coldef.field == \"deletePermission\" ) && formPermission.modifyPermission== true)\r\n this.showCheckbox = true;\r\n \r\n if((this.params.gridName == StorageName.CALCULATIONS_ALLOCATIONS_GRID \r\n && (coldef.field == \"investor\" ||\r\n coldef.field == \"investorGroup\" ||\r\n coldef.field == \"amt\" ||\r\n coldef.field == \"allocPercent\" ||\r\n coldef.field == \"allocAmt\")) ||\r\n (this.params.gridName == StorageName.CALCULATIONS_TIER_CALC_GRID)\r\n && (coldef.field != \"fund\" && \r\n coldef.field != \"calculationName\" && \r\n coldef.field != \"tierOrder\" && \r\n coldef.field != \"calculationRule\" && \r\n coldef.field != \"prefRetTier\" && \r\n coldef.field != \"terminationTier\" &&\r\n coldef.field != \"calculationType\" &&\r\n coldef.field != \"ptrTrans\"\r\n ))\r\n \r\n {\r\n this.showCheckbox = true;\r\n }\r\n }\r\n refresh(params: IHeaderParams & ICustomHeaderParams) {\r\n this.params = params; \r\n return true;\r\n }\r\n \r\n openFilterComponent(name: string, event) {\r\n this.params.eventOccurs.emit({ eventName: 'onfilter', payload:{name:name, data: event}});\r\n }\r\n onClearFilter(name: string, event)\r\n {\r\n this.inputValue = \"\";\r\n event.target.value = \"\";\r\n this.params.eventOccurs.emit({ eventName: 'onfilter', payload:{name:name, data: event}});\r\n }\r\n onFloatFilter(name,event){\r\n this.params.eventOccurs.emit({eventName: 'floatFilter', payload:{name:name, data: event}})\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._allRowsSubscription) {\r\n this._allRowsSubscription.unsubscribe();\r\n }\r\n if (this._filterDataSubscription) {\r\n this._filterDataSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n checkedHandler(event) {\r\n event = event.currentTarget;\r\n if(this.params.gridName == StorageName.CALCULATIONS_ALLOCATIONS_GRID){\r\n this.params.columnApi.getAllDisplayedColumns().forEach(element => {\r\n var colDefinternal = element.getColDef();\r\n if(colDefinternal.headerName == this.params.column.getColDef().headerName)\r\n element.getColDef().headerComponentParams.isSelected = event.checked;\r\n });\r\n \r\n if(this.params.column.getColDef().headerName==\"Amt\" && event.checked==true)\r\n {\r\n this.params.columnApi.getColumn(\"allocPercent\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"allocAmt\").getColDef().headerComponentParams.isSelected = false;\r\n var allocPercentCheckbox =(document.getElementById('allocPercent'));\r\n allocPercentCheckbox.checked = false;\r\n var allocAmtCheckbox =(document.getElementById('allocAmt'));\r\n allocAmtCheckbox.checked = false;\r\n }\r\n if(this.params.column.getColDef().headerName==\"Proportional %\" && event.checked==true)\r\n {\r\n this.params.columnApi.getColumn(\"amt\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"allocAmt\").getColDef().headerComponentParams.isSelected = false;\r\n var amtCheckbox =(document.getElementById('amt'));\r\n amtCheckbox.checked = false;\r\n var allocAmtCheckbox =(document.getElementById('allocAmt'));\r\n allocAmtCheckbox.checked = false;\r\n }\r\n if(this.params.column.getColDef().headerName==\"Alloc. Amt\" && event.checked==true)\r\n {\r\n this.params.columnApi.getColumn(\"allocPercent\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"amt\").getColDef().headerComponentParams.isSelected = false;\r\n var allocPercentCheckbox =(document.getElementById('allocPercent'));\r\n allocPercentCheckbox.checked = false;\r\n var amtCheckbox =(document.getElementById('amt'));\r\n amtCheckbox.checked = false;\r\n }\r\n this.customeHeaderService.columnCheckboxChecked.emit(true)\r\n }\r\nelse if(this.params.gridName == StorageName.CALCULATIONS_TIER_CALC_GRID)\r\n{\r\n this.params.columnApi.getAllDisplayedColumns().forEach(element => {\r\n var colDefinternal = element.getColDef();\r\n if(colDefinternal.headerName == this.params.column.getColDef().headerName)\r\n element.getColDef().headerComponentParams.isSelected = event.checked;\r\n });\r\n\r\n if(this.params.column.getColDef().field==\"tierAmt\" && event.checked==true)\r\n {\r\n this.params.columnApi.getColumn(\"allocPercent\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"comparisionAmt\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"tierCalc\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"balance\").getColDef().headerComponentParams.isSelected = false;\r\n \r\n var allocPercentCheckbox =(document.getElementById('allocPercent'));\r\n allocPercentCheckbox.checked = false;\r\n var comparisionAmtCheckbox =(document.getElementById('comparisionAmt'));\r\n comparisionAmtCheckbox.checked = false;\r\n var tierCalcCheckbox =(document.getElementById('tierCalc'));\r\n tierCalcCheckbox.checked = false;\r\n var balanceCheckbox =(document.getElementById('balance'));\r\n balanceCheckbox.checked = false;\r\n }\r\n if(this.params.column.getColDef().field==\"comparisionAmt\" && event.checked==true)\r\n {\r\n this.params.columnApi.getColumn(\"allocPercent\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"tierAmt\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"tierCalc\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"balance\").getColDef().headerComponentParams.isSelected = false;\r\n \r\n var allocPercentCheckbox =(document.getElementById('allocPercent'));\r\n allocPercentCheckbox.checked = false;\r\n var tierAmtCheckbox =(document.getElementById('tierAmt'));\r\n tierAmtCheckbox.checked = false;\r\n var tierCalcCheckbox =(document.getElementById('tierCalc'));\r\n tierCalcCheckbox.checked = false;\r\n var balanceCheckbox =(document.getElementById('balance'));\r\n balanceCheckbox.checked = false;\r\n }\r\n if(this.params.column.getColDef().field==\"allocPercent\" && event.checked==true)\r\n {\r\n this.params.columnApi.getColumn(\"tierAmt\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"comparisionAmt\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"tierCalc\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"balance\").getColDef().headerComponentParams.isSelected = false;\r\n \r\n var tierAmtCheckbox =(document.getElementById('tierAmt'));\r\n tierAmtCheckbox.checked = false;\r\n var comparisionAmtCheckbox =(document.getElementById('comparisionAmt'));\r\n comparisionAmtCheckbox.checked = false;\r\n var tierCalcCheckbox =(document.getElementById('tierCalc'));\r\n tierCalcCheckbox.checked = false;\r\n var balanceCheckbox =(document.getElementById('balance'));\r\n balanceCheckbox.checked = false;\r\n }\r\n if(this.params.column.getColDef().field==\"tierCalc\" && event.checked==true)\r\n {\r\n this.params.columnApi.getColumn(\"allocPercent\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"tierAmt\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"comparisionAmt\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"balance\").getColDef().headerComponentParams.isSelected = false;\r\n \r\n var allocPercentCheckbox =(document.getElementById('allocPercent'));\r\n allocPercentCheckbox.checked = false;\r\n var tierAmtCheckbox =(document.getElementById('tierAmt'));\r\n tierAmtCheckbox.checked = false;\r\n var comparisionAmtCheckbox =(document.getElementById('comparisionAmt'));\r\n comparisionAmtCheckbox.checked = false;\r\n var balanceCheckbox =(document.getElementById('balance'));\r\n balanceCheckbox.checked = false;\r\n }\r\n if(this.params.column.getColDef().field==\"balance\" && event.checked==true)\r\n {\r\n this.params.columnApi.getColumn(\"allocPercent\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"tierAmt\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"comparisionAmt\").getColDef().headerComponentParams.isSelected = false;\r\n this.params.columnApi.getColumn(\"tierCalc\").getColDef().headerComponentParams.isSelected = false;\r\n \r\n var allocPercentCheckbox =(document.getElementById('allocPercent'));\r\n allocPercentCheckbox.checked = false;\r\n var tierAmtCheckbox =(document.getElementById('tierAmt'));\r\n tierAmtCheckbox.checked = false;\r\n var comparisionAmtCheckbox =(document.getElementById('comparisionAmt'));\r\n comparisionAmtCheckbox.checked = false;\r\n var tierCalcCheckbox =(document.getElementById('tierCalc'));\r\n tierCalcCheckbox.checked = false;\r\n }\r\n \r\n this.customeHeaderService.columnCheckboxChecked.emit(true)\r\n} \r\nelse\r\n{\r\n var colIdSelected = this.params.column.getColId();\r\n var coldef = this.params.api.selectAll();\r\n var getSelectedRows = this.params.api.getSelectedRows();\r\n var arrayOfSelected = getSelectedRows?.filter((row) => row[colIdSelected] == !event.checked);\r\n \r\n if (this.params.column.getColDef().headerComponentParams.gridName == StorageName.PERMISSION_FORM_GRID) {\r\n arrayOfSelected = arrayOfSelected?.filter((row) => row[colIdSelected + 'Id'] > 0);\r\n }\r\n arrayOfSelected.forEach(element => {\r\n element[colIdSelected] = event.checked;\r\n element['isEdited'] = true;\r\n });\r\n this.params.api.deselectAll();\r\n }\r\n // condition for transaction check\r\n // if (this.params.api.cellRendererParams == true) {\r\n // if (typeof (this.params.colDef.editable) == \"boolean\" && this.params.colDef.editable == false) {\r\n // }\r\n // }\r\n // condition for transaction check\r\n //let checked = event.checked;\r\n // let colId = this.params.column.getColId();\r\n //this.params.node.setDataValue(colId, checked);\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomeHeaderService {\r\n isResetFilterIcon = new EventEmitter();\r\n columnCheckboxChecked = new EventEmitter();\r\n constructor() { }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { AfterViewInit, Component, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport * as moment from 'moment';\r\nimport { AgGridService } from '../ag-grid/ag-grid.service';\r\n@Component({\r\n selector: 'app-datepicker-editor',\r\n templateUrl: './datepicker-editor.component.html',\r\n styleUrls: ['./datepicker-editor.component.scss']\r\n})\r\nexport class DatepickerEditorComponent implements ICellEditorAngularComp, AfterViewInit {\r\n params: any;\r\n public value!: string;\r\n @ViewChild('input', { read: ViewContainerRef })\r\n public input!: ViewContainerRef;\r\n constructor(public agGridService: AgGridService) { }\r\n agInit(params: ICellEditorParams,): void {\r\n this.params = params;\r\n const formattedDate = this.agGridService.dateConvertorByRegion(params.value);\r\n params.value = formattedDate;\r\n this.value = formattedDate;\r\n \r\n }\r\n getValue(): any {\r\n const formattedDate = this.agGridService.dateConvertorByRegion(this.value); \r\n this.value= formattedDate;\r\n return this.value;\r\n }\r\n handleDateChanged(newDate: Date) {\r\n const formattedDate = this.agGridService.dateConvertorByRegion(newDate); \r\n this.value = formattedDate;\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.input?.element.nativeElement.focus();\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport * as moment from 'moment';\r\nimport { MOMENT_DATE_FORMATE } from '../../common/my-date-formats';\r\nimport { AgGridService } from '../ag-grid/ag-grid.service';\r\nimport { DatePipe } from '@angular/common';\r\n@Component({\r\n selector: 'app-datepicker',\r\n templateUrl: './datepicker.component.html',\r\n styleUrls: ['./datepicker.component.scss']\r\n})\r\nexport class DatepickerComponent implements ICellRendererAngularComp, OnInit {\r\n params;\r\n firstCellParam = [];\r\n secondCellParam = [];\r\n date: string;\r\n constructor(public agGridService: AgGridService) { }\r\n ngOnInit(): void { }\r\n agInit(params: ICellRendererParams): void {\r\n this.params = params;\r\n if (params.value == 'Invalid date') {\r\n params.value = \"\";\r\n }\r\n const formattedDate = this.agGridService.dateConvertorByRegion(params.value);\r\n this.date = formattedDate;\r\n }\r\n refresh(params: ICellRendererParams): boolean {\r\n this.params = params;\r\n const formattedDate = this.agGridService.dateConvertorByRegion(params.value);\r\n this.date = formattedDate;\r\n return true;\r\n }\r\n}","import { Component } from \"@angular/core\";\r\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\r\nimport { ICellRendererParams } from \"ag-grid-community\";\r\nimport { AgGridService } from \"../ag-grid/ag-grid.service\";\r\nexport interface MyCellParam {\r\n values?: any;\r\n Ids?: any;\r\n eventOccurs?: any;\r\n}\r\nexport interface MyParams {\r\n // label?: string;\r\n eventOccurs?: any;\r\n}\r\n@Component({\r\n selector: \"app-dropdown\",\r\n templateUrl: \"./dropdown.component.html\",\r\n styleUrls: [\"./dropdown.component.scss\"],\r\n})\r\nexport class DropdownComponent implements ICellRendererAngularComp {\r\n params;\r\n firstCellParam = [];\r\n secondCellParam = [];\r\n name: string;\r\n constructor(public agGridService: AgGridService) {}\r\n ngOnInit(): void {}\r\n agInit(params: ICellRendererParams): void {\r\n this.params = params;\r\n this.name = params.value;\r\n }\r\n refresh(params: ICellRendererParams): boolean {\r\n this.params = params;\r\n this.name = params.value;\r\n return true;\r\n }\r\n addRow(){\r\n this.params.eventOccurs.emit({ eventName: 'addingRow', \r\n payload:this.params.data });\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { AgGridService } from '../ag-grid/ag-grid.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FilterService {\r\n rows: any;\r\n transactionGridUniqueData = new BehaviorSubject([]);\r\n emitHeaderInputValue = new EventEmitter();\r\n emitOnFilter = new EventEmitter();\r\n\r\n constructor(public agGridService:AgGridService) { }\r\n \r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ResetFilterCalcRuleComponent } from 'src/app/pages/reset-filter-calc-rule/reset-filter-calc-rule/reset-filter-calc-rule.component';\r\nimport { StorageName } from 'src/app/shared/common/enum';\r\nimport { DropdownModel } from 'src/app/shared/model/common.model';\r\nimport { FilterModel } from 'src/app/shared/model/response.model';\r\nimport { StorageService } from 'src/app/shared/services/storage.service';\r\nimport { AgGridService } from '../../ag-grid/ag-grid.service';\r\nimport { Filter } from '../filter.model';\r\nimport { FilterService } from '../filter.service';\r\n@Component({\r\n selector: 'app-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.scss']\r\n})\r\nexport class FilterComponent implements OnInit {\r\n @Input() isFilter: boolean;\r\n @Input() isInputFilter: boolean;\r\n @Input() isPopUpInputFilter: boolean;\r\n @Input() isDropDownFilter: boolean;\r\n @Input() params: any;\r\n @Input() columnName: string;\r\n @Input() gridName: string;\r\n @Input() initialRows: string;\r\n @Input() filterStorageName: string;\r\n @Input() idColumnName: string;\r\n @Input() valueColumnName: string;\r\n @Input() cellDisplayType: string;\r\n @Input() isDateFilterShow: boolean;\r\n @Input() isServerSidePagination: boolean;\r\n @Input() rows: any[];\r\n columnfilter = DropdownModel[3]=[\r\n { id: \"\", name: \"\" },\r\n { id: \"All\", name: \"All\" },\r\n { id: \"true\", name: \"Yes\" },\r\n { id: \"false\", name: \"No\" }\r\n ];\r\n rollUpLevel = DropdownModel[3]=[\r\n { id: \"\", name: \"\" },\r\n { id: \"fund\", name: \"Fund\" },\r\n { id: \"investment\", name: \"Investment\" }\r\n ];\r\n \r\n isFilterPopUpOpen:boolean = false;\r\n existingRowsData: any;\r\n model : string;\r\n modelRollupLevel : string;\r\n inputValue: any;\r\n inputPopUpHeaderValue: any;\r\n filterList: Filter[]=[];\r\n transactionGridUniqueData: any;\r\n constructor(public _matDialog: MatDialog,\r\n public agGridService:AgGridService,\r\n public storageService:StorageService,\r\n // public sortService:SortService,\r\n public filterService:FilterService) {\r\n }\r\n ngOnInit(): void {\r\n // this.setFilteredText(this.valueColumnName);\r\n // this.filterService.transactionGridUniqueData.subscribe(res=>{\r\n // this.transactionGridUniqueData = res;\r\n // })\r\n }\r\n openFilterModelPopUp(idColumnName:string,valueColumnName:string){\r\n this.transactionGridUniqueData = this.storageService.retrieve(\"filterPopupSource\");\r\n var uniqueData: FilterModel[] = [];\r\n this.existingRowsData = this.storageService.retrieve(this.initialRows)\r\n if(this.existingRowsData == undefined){\r\n this.storageService.store(this.initialRows,this.rows);\r\n }\r\n \r\n this.existingRowsData = this.storageService.retrieve(this.initialRows)\r\n if(this.isServerSidePagination){\r\n\r\n switch(valueColumnName){\r\n case 'fundName':\r\n uniqueData = [];\r\n uniqueData = this.transactionGridUniqueData?.fundList;\r\n break;\r\n case 'investmentName':\r\n uniqueData = [];\r\n uniqueData = this.transactionGridUniqueData?.investmentList;\r\n break;\r\n case 'vehicleInvestorName':\r\n uniqueData = [];\r\n uniqueData = this.transactionGridUniqueData?.investorGroupList;\r\n break;\r\n case 'investorName':\r\n uniqueData = this.transactionGridUniqueData?.investorList;\r\n break;\r\n case 'positionName':\r\n uniqueData = [];\r\n uniqueData = this.transactionGridUniqueData?.positionList;\r\n break;\r\n case 'status':\r\n uniqueData = [];\r\n uniqueData = this.transactionGridUniqueData?.statusList;\r\n break;\r\n case 'tierName':\r\n uniqueData = [];\r\n uniqueData = this.transactionGridUniqueData?.transactionSetList;\r\n break;\r\n case 'calculationName':\r\n uniqueData = [];\r\n uniqueData = this.transactionGridUniqueData?.calculationNameList;\r\n break;\r\n }\r\n }\r\n else{\r\n uniqueData = [];\r\n for(let i = 0 ; i(x.name == this.existingRowsData[i][valueColumnName],x.id == this.existingRowsData[i][idColumnName]))\r\n if(index == -1){\r\n if(this.existingRowsData[i][idColumnName]==null)\r\n this.existingRowsData[i][idColumnName] = \"\"\r\n if(this.existingRowsData[i][valueColumnName]==null)\r\n this.existingRowsData[i][valueColumnName] = \"\"\r\n uniqueData.push({id:this.existingRowsData[i][idColumnName],name:this.existingRowsData[i][valueColumnName]});\r\n }\r\n }\r\n }\r\n let dialogRef = this._matDialog.open(ResetFilterCalcRuleComponent,{\r\n maxWidth: 450,\r\n minWidth: 450,\r\n data:{data:uniqueData,colName:this.columnName,valueColumnName:valueColumnName,filterStorageName:this.filterStorageName,isDateFilterShow:this.isDateFilterShow},\r\n });\r\n dialogRef.componentInstance.onFilter.subscribe(\r\n (response: any) => {\r\n \r\n this.updateFilter(valueColumnName,response);\r\n dialogRef.componentInstance.onFilterCompleted.emit(response);\r\n }\r\n );\r\n }\r\n performFilterColumnwise(valueColumnName,filterData,textInput)\r\n { \r\n \r\n // for decimal conversion\r\n let previousFilterList = this.storageService.retrieve(this.filterStorageName);\r\n \r\n this.filterList = [];\r\n let index = previousFilterList?.findIndex(a=>a.name == valueColumnName);\r\n if(previousFilterList!=undefined)\r\n {\r\n this.filterList = previousFilterList;\r\n \r\n }\r\n if(index != undefined && index != -1){\r\n this.filterList[index].type = this.cellDisplayType;\r\n this.filterList[index].textFilter = textInput;\r\n this.filterList[index].FilterData = filterData?.length == 0 ? undefined : filterData;\r\n }\r\n else\r\n {\r\n if(filterData?.length == 0){\r\n filterData = undefined;\r\n }\r\n this.filterList.push({ type: this.cellDisplayType, name:valueColumnName, textFilter:textInput , FilterData : filterData });\r\n }\r\n // this.inputValue = textInput;\r\n this.storageService.store(this.filterStorageName,this.filterList);\r\n // this.existingRowsData = this.storageService.retrieve(this.initialRows);\r\n //this.existingRowsData = this.sortService.performSort(this.existingRowsData,this.gridName);\r\n if(this.isServerSidePagination){\r\n \r\n this.filterService.emitOnFilter.emit(this.filterStorageName)\r\n }else{\r\n this.agGridService.performFilter(this.params)\r\n }\r\n }\r\n emitInputValueForPopUP(value){\r\n this.inputPopUpHeaderValue = value;\r\n this.filterService.emitHeaderInputValue.emit(value);\r\n }\r\n updateInputFilter(valueColumnName,textInput){\r\n this.inputValue = textInput;\r\n\r\n if(this.gridName != StorageName.TRANSACTION_LEVEL_GRID || (this.gridName == StorageName.TRANSACTION_LEVEL_GRID && ((valueColumnName!= \"transactionDate\") || ( valueColumnName==\"transactionDate\" && this.inputValue.length==10))))\r\n this.performFilterColumnwise( valueColumnName, undefined,textInput);\r\n }\r\n updateDropdownFilter(valueColumnName,dropdownInput){\r\n let filterText = this.model.toLowerCase();\r\n switch(this.model.toLowerCase())\r\n {\r\n case \"yes\":\r\n filterText= \"true\"\r\n break;\r\n case \"no\":\r\n filterText= \"false\"\r\n break;\r\n case \"all\":\r\n filterText= \"\"\r\n break;\r\n case \"fund\":\r\n filterText= \"fund\"\r\n break;\r\n case \"investment\":\r\n filterText= \"investment\"\r\n break;\r\n case \"\":\r\n filterText= \"\"\r\n break;\r\n }\r\n this.performFilterColumnwise( valueColumnName, undefined,filterText);\r\n }\r\n updateRollupLevelDropdown(valueColumnName,dropdownInput){\r\n this.performFilterColumnwise( valueColumnName, undefined,this.modelRollupLevel);\r\n }\r\n \r\n updateFilter(valueColumnName,filterData) {\r\n this.performFilterColumnwise( valueColumnName, filterData.tableFilterValues,filterData.textFilterValue);\r\n }\r\n onClearFilter(name: string)\r\n {\r\n this.performFilterColumnwise( name, undefined,undefined);\r\n }\r\n setFilteredText(colName)\r\n {\r\n if(this.isFilterApplied(colName)== true)\r\n {\r\n var data = this.storageService.retrieve(this.filterStorageName);\r\n let previousFilterList = data?.filter(col => col.name == colName);\r\n if(previousFilterList!=undefined)\r\n {\r\n this.inputValue = previousFilterList[0]?.textFilter;\r\n this.inputPopUpHeaderValue = \"\";\r\n this.model = previousFilterList[0]?.textFilter;\r\n }\r\n }\r\n else\r\n {\r\n this.inputValue =\"\";\r\n this.model =\"\";\r\n }\r\n }\r\n \r\n setDropdown(colName) {\r\n if(this.isFilterApplied(colName)== true)\r\n {\r\n var data = this.storageService.retrieve(this.filterStorageName);\r\n let previousFilterList = data?.filter(col => col.name == colName);\r\n if(previousFilterList!=undefined)\r\n {\r\n this.inputValue = previousFilterList[0]?.textFilter;\r\n this.inputPopUpHeaderValue = \"\";\r\n this.model = previousFilterList[0]?.textFilter;\r\n }\r\n }\r\n else\r\n {\r\n this.inputValue =\"\";\r\n this.model =\"\";\r\n }\r\n return this.model;\r\n }\r\n \r\n isFilterApplied(colName) {\r\n var isFilterAppliedToColumn: boolean = false;\r\n var data = this.storageService.retrieve(this.filterStorageName);\r\n if(data!= undefined)\r\n {\r\n let previousFilterList = data?.filter(col => col.name == colName);\r\n if(previousFilterList!=undefined)\r\n {\r\n \r\n if(previousFilterList[0]?.FilterData != undefined)\r\n if(previousFilterList[0]?.FilterData.length > 0)\r\n isFilterAppliedToColumn = true;\r\n if(previousFilterList[0]?.type == 'dateFilter' && (previousFilterList[0]?.textFilter != '' && previousFilterList[0]?.textFilter != undefined && previousFilterList[0]?.textFilter != null))\r\n isFilterAppliedToColumn = true;\r\n if(previousFilterList[0]?.type == 'textFilter' && (previousFilterList[0]?.textFilter != '' && previousFilterList[0]?.textFilter != undefined && previousFilterList[0]?.textFilter != null))\r\n isFilterAppliedToColumn = true;\r\n if(previousFilterList[0]?.type == 'textFilter' && (previousFilterList[0]?.textFilter != '' && previousFilterList[0]?.textFilter != undefined && previousFilterList[0]?.textFilter != null))\r\n isFilterAppliedToColumn = true;\r\n }\r\n }\r\n return isFilterAppliedToColumn;\r\n }\r\n \r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { IDropdownSettings } from 'ng-multiselect-dropdown';\r\n@Component({\r\n selector: 'app-multiselect-dropdown',\r\n templateUrl: './multiselect-dropdown.component.html',\r\n styleUrls: ['./multiselect-dropdown.component.scss']\r\n})\r\nexport class MultiselectDropdownComponent implements OnInit {\r\n @Input() textField: string = \"\";\r\n @Input() data: any;\r\n @Input() selectedItems: any[] = [];\r\n @Input() disabled: boolean = false;\r\n @Output() selectedItemsChange = new EventEmitter();\r\n // @Input() set selectedItems(value) {\r\n // this.selectedItem = value;\r\n // }\r\n // selectedItem: any[] = [];\r\n dropdownSettings: IDropdownSettings = {};\r\n constructor() { }\r\n ngOnInit(): void {\r\n this.dropdownSettings = {\r\n idField: 'id',\r\n textField: \"name\",\r\n allowSearchFilter: true,\r\n itemsShowLimit: 3,\r\n showSelectedItemsAtTop: true,\r\n enableCheckAll: true,\r\n placeholder: \"Select\",\r\n disabled: this.disabled\r\n } as IDropdownSettings;\r\n }\r\n get getItems() {\r\n return this.data.reduce((acc, curr) => {\r\n acc[curr.id] = curr;\r\n return acc;\r\n }, {});\r\n }\r\n onItemSelect(item: any) {\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n }\r\n onItemDeSelect(item: any) {\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n }\r\n onItemSelectAll(item: any) {\r\n // this.selectedItems = item;\r\n //not working properly, not setting value of parent property\r\n this.selectedItemsChange.emit(item);\r\n }\r\n onItemDeSelectAll(item: any) {\r\n // this.selectedItems = item;\r\n //not working properly\r\n this.selectedItemsChange.emit(item);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MultiselectDropdownComponent } from './multiselect-dropdown.component';\r\n// import { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../../shared.module';\r\nimport { NgMultiselectDropdownModule } from './ng-multiselect-dropdown/ng-multiselect-dropdown.module';\r\n\r\n@NgModule({\r\n declarations: [MultiselectDropdownComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n // SharedModule,\r\n NgMultiselectDropdownModule\r\n ],\r\n exports: [MultiselectDropdownComponent]\r\n})\r\nexport class MultiselectDropdownModule { }","import {Directive, ElementRef, Output, EventEmitter, HostListener} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clickOutside]'\r\n})\r\nexport class ClickOutsideDirective {\r\n constructor(private _elementRef: ElementRef) {\r\n }\r\n\r\n @Output()\r\n public clickOutside = new EventEmitter();\r\n\r\n @HostListener('document:click', ['$event', '$event.target'])\r\n public onClick(event: MouseEvent, targetElement: HTMLElement): void {\r\n if (!targetElement) {\r\n return;\r\n }\r\n\r\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.clickOutside.emit(event);\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { ListItem } from './multiselect.model';\r\n\r\n@Pipe({\r\n name: 'multiSelectFilter',\r\n pure: false\r\n})\r\nexport class ListFilterPipe implements PipeTransform {\r\n transform(items: ListItem[], filter: ListItem): ListItem[] {\r\n if (!items || !filter) {\r\n return items;\r\n }\r\n return items.filter((item: ListItem) => this.applyFilter(item, filter));\r\n }\r\n\r\n applyFilter(item: ListItem, filter: ListItem): boolean {\r\n if (typeof item.text === 'string' && typeof filter.text === 'string') {\r\n // return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1);\r\n return !(filter.text && item.text && !item.text.toLowerCase().startsWith(filter.text.toLowerCase()));\r\n } else {\r\n // return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1);\r\n return !(filter.text && item.text && !item.text.toString().toLowerCase().startsWith(filter.text.toString().toLowerCase()));\r\n }\r\n }\r\n}","import {\r\n Component,\r\n HostListener,\r\n forwardRef,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n ViewEncapsulation,\r\n ContentChild,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport { ListFilterPipe } from \"../list-filter.pipe\";\r\nimport { IDropdownSettings, ListItem } from \"../multiselect.model\";\r\n// import { ListItem, IDropdownSettings } from \"./multiselect.model\";\r\n// import { ListFilterPipe } from \"./list-filter.pipe\";\r\n\r\nexport const DROPDOWN_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MultiSelectComponent),\r\n multi: true,\r\n};\r\nconst noop = () => { };\r\n\r\n@Component({\r\n selector: \"ng-multiselect-dropdown\",\r\n templateUrl: \"./multi-select.component.html\",\r\n styleUrls: [\"./multi-select.component.scss\"],\r\n providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MultiSelectComponent implements ControlValueAccessor {\r\n public _settings: IDropdownSettings;\r\n public _data: Array = [];\r\n public selectedItems: Array = [];\r\n public isDropdownOpen = true;\r\n public isAllUnselected = true;\r\n _placeholder = \"Select\";\r\n private _sourceDataType = null; // to keep note of the source data type. could be array of string/number/object\r\n private _sourceDataFields: Array = []; // store source data fields names\r\n filter: ListItem = new ListItem(this.data);\r\n defaultSettings: IDropdownSettings = {\r\n singleSelection: false,\r\n idField: \"id\",\r\n textField: \"text\",\r\n disabledField: \"isDisabled\",\r\n enableCheckAll: true,\r\n selectAllText: \"Select All\",\r\n unSelectAllText: \"UnSelect All\",\r\n allowSearchFilter: false,\r\n limitSelection: -1,\r\n clearSearchFilter: true,\r\n maxHeight: 105,\r\n itemsShowLimit: 999999999999,\r\n searchPlaceholderText: \"Search\",\r\n noDataAvailablePlaceholderText: \"No data available\",\r\n noFilteredDataAvailablePlaceholderText: \"No filtered data available\",\r\n closeDropDownOnSelection: true,\r\n showSelectedItemsAtTop: false,\r\n defaultOpen: false,\r\n allowRemoteDataSearch: false,\r\n };\r\n\r\n @Input()\r\n public set placeholder(value: string) {\r\n if (value) {\r\n this._placeholder = value;\r\n } else {\r\n this._placeholder = \"Select\";\r\n }\r\n }\r\n @Input()\r\n disabled = false;\r\n\r\n @Input()\r\n public set settings(value: IDropdownSettings) {\r\n if (value) {\r\n this._settings = Object.assign(this.defaultSettings, value);\r\n } else {\r\n this._settings = Object.assign(this.defaultSettings);\r\n }\r\n }\r\n\r\n @Input()\r\n public set data(value: Array) {\r\n if (!this._settings) {\r\n console.log('Settings is not defined ot it needs to put it before data prop')\r\n }\r\n if (!value) {\r\n this._data = [];\r\n } else {\r\n const firstItem = value[0];\r\n this._sourceDataType = typeof firstItem;\r\n this._sourceDataFields = this.getFields(firstItem);\r\n this._data = value.map((item: any) =>\r\n typeof item === \"string\" || typeof item === \"number\"\r\n ? new ListItem(item)\r\n : new ListItem({\r\n id: item[this._settings.idField],\r\n text: item[this._settings.textField],\r\n isDisabled: item[this._settings.disabledField],\r\n })\r\n );\r\n }\r\n }\r\n\r\n @ContentChild(\"optionsTemplate\")\r\n optionsTemplateRef: TemplateRef;\r\n\r\n @ContentChild(\"optionSelectedTemplate\")\r\n optionSelectedTemplateRef: TemplateRef;\r\n\r\n @Output(\"onFilterChange\")\r\n onFilterChange: EventEmitter = new EventEmitter();\r\n @Output(\"onDropDownClose\")\r\n onDropDownClose: EventEmitter = new EventEmitter();\r\n\r\n @Output(\"onSelect\")\r\n onSelect: EventEmitter = new EventEmitter();\r\n\r\n @Output(\"onDeSelect\")\r\n onDeSelect: EventEmitter = new EventEmitter();\r\n\r\n @Output(\"onSelectAll\")\r\n onSelectAll: EventEmitter> = new EventEmitter>();\r\n\r\n @Output(\"onDeSelectAll\")\r\n onDeSelectAll: EventEmitter> = new EventEmitter>();\r\n\r\n private onTouchedCallback: () => void = noop;\r\n private onChangeCallback: (_: any) => void = noop;\r\n\r\n onFilterTextChange($event) {\r\n this.onFilterChange.emit($event);\r\n }\r\n\r\n constructor(\r\n private listFilterPipe: ListFilterPipe,\r\n private cdr: ChangeDetectorRef\r\n ) { }\r\n\r\n onItemClick($event: any, item: ListItem) {\r\n if (this.disabled || item.isDisabled) {\r\n return false;\r\n }\r\n\r\n if (this._settings.singleSelection) {\r\n if (item.id !== this.selectedItems[0].id) {\r\n this.addSelected(item);\r\n }\r\n } else {\r\n const found = this.isSelected(item);\r\n console.log({ item, selectedItems: this.selectedItems })\r\n const allowAdd =\r\n this._settings.limitSelection === -1 ||\r\n (this._settings.limitSelection > 0 &&\r\n this.selectedItems.length < this._settings.limitSelection);\r\n if (!found) {\r\n if (allowAdd) {\r\n this.addSelected(item);\r\n }\r\n } else {\r\n this.removeSelected(item);\r\n }\r\n }\r\n if (\r\n this._settings.singleSelection &&\r\n this._settings.closeDropDownOnSelection\r\n ) {\r\n this.closeDropdown();\r\n }\r\n }\r\n\r\n writeValue(value: any) {\r\n if (value !== undefined && value !== null && value.length > 0) {\r\n if (this._settings.singleSelection) {\r\n try {\r\n if (value.length >= 1) {\r\n const firstItem = value[0];\r\n this.selectedItems = [\r\n typeof firstItem === \"string\" || typeof firstItem === \"number\"\r\n ? new ListItem(firstItem)\r\n : new ListItem({\r\n id: firstItem[this._settings.idField],\r\n text: firstItem[this._settings.textField],\r\n isDisabled: firstItem[this._settings.disabledField],\r\n }),\r\n ];\r\n }\r\n } catch (e) {\r\n // console.error(e.body.msg);\r\n }\r\n } else {\r\n const _data = value.map((item: any) =>\r\n typeof item === \"string\" || typeof item === \"number\"\r\n ? new ListItem(item)\r\n : new ListItem({\r\n id: item[this._settings.idField],\r\n text: item[this._settings.textField],\r\n isDisabled: item[this._settings.disabledField],\r\n })\r\n );\r\n if (this._settings.limitSelection > 0) {\r\n this.selectedItems = _data.splice(0, this._settings.limitSelection);\r\n } else {\r\n this.selectedItems = _data;\r\n }\r\n }\r\n } else {\r\n this.selectedItems = [];\r\n }\r\n this.onChangeCallback(value);\r\n\r\n this.cdr.markForCheck();\r\n }\r\n\r\n // From ControlValueAccessor interface\r\n registerOnChange(fn: any) {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n // From ControlValueAccessor interface\r\n registerOnTouched(fn: any) {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n // Set touched on blur\r\n @HostListener(\"blur\")\r\n public onTouched() {\r\n // this.closeDropdown();\r\n this.onTouchedCallback();\r\n }\r\n\r\n trackByFn(index, item) {\r\n return item.id;\r\n }\r\n\r\n isSelected(clickedItem: ListItem) {\r\n let found = false;\r\n this.selectedItems.forEach((item) => {\r\n if (clickedItem.id === item.id) {\r\n found = true;\r\n }\r\n });\r\n return found;\r\n }\r\n\r\n isLimitSelectionReached(): boolean {\r\n return this._settings.limitSelection === this.selectedItems.length;\r\n }\r\n\r\n isAllItemsSelected(): boolean {\r\n // get disabld item count\r\n let filteredItems = this.listFilterPipe.transform(this._data, this.filter);\r\n const itemDisabledCount = filteredItems.filter((item) => item.isDisabled)\r\n .length;\r\n // take disabled items into consideration when checking\r\n if (\r\n (!this.data || this.data.length === 0) &&\r\n this._settings.allowRemoteDataSearch\r\n ) {\r\n return false;\r\n }\r\n return (\r\n filteredItems.length === this.selectedItems.length + itemDisabledCount\r\n );\r\n }\r\n\r\n isAllItemsunSelected(): boolean {\r\n if (\r\n (!this.data || this.data.length === 0) &&\r\n this._settings.allowRemoteDataSearch\r\n ) {\r\n return true;\r\n }\r\n return this.selectedItems.length == 0;\r\n }\r\n\r\n showButton(): boolean {\r\n if (!this._settings.singleSelection) {\r\n if (this._settings.limitSelection > 0) {\r\n return false;\r\n }\r\n // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false;\r\n return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0;\r\n } else {\r\n // should be disabled in single selection mode\r\n return false;\r\n }\r\n }\r\n\r\n itemShowRemaining(): number {\r\n return this.selectedItems.length - this._settings.itemsShowLimit;\r\n }\r\n\r\n addSelected(item: ListItem) {\r\n if (this._settings.singleSelection) {\r\n this.selectedItems = [];\r\n this.selectedItems.push(item);\r\n } else {\r\n this.selectedItems.push(item);\r\n }\r\n this.onChangeCallback(this.emittedValue(this.selectedItems));\r\n this.onSelect.emit(this.emittedValue(item));\r\n }\r\n\r\n removeSelected(itemSel: ListItem) {\r\n this.selectedItems.forEach((item) => {\r\n if (itemSel.id === item.id) {\r\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\r\n }\r\n });\r\n this.onChangeCallback(this.emittedValue(this.selectedItems));\r\n this.onDeSelect.emit(this.emittedValue(itemSel));\r\n }\r\n\r\n emittedValue(val: any): any {\r\n const selected = [];\r\n if (Array.isArray(val)) {\r\n val.map((item) => {\r\n selected.push(this.objectify(item));\r\n });\r\n } else {\r\n if (val) {\r\n return this.objectify(val);\r\n }\r\n }\r\n return selected;\r\n }\r\n\r\n objectify(val: ListItem) {\r\n if (this._sourceDataType === \"object\") {\r\n const obj = {};\r\n obj[this._settings.idField] = val.id;\r\n obj[this._settings.textField] = val.text;\r\n if (this._sourceDataFields.includes(this._settings.disabledField)) {\r\n obj[this._settings.disabledField] = val.isDisabled;\r\n }\r\n return obj;\r\n }\r\n if (this._sourceDataType === \"number\") {\r\n return Number(val.id);\r\n } else {\r\n return val.text;\r\n }\r\n }\r\n\r\n toggleDropdown(evt) {\r\n evt.preventDefault();\r\n if (this.disabled && this._settings.singleSelection) {\r\n return;\r\n }\r\n this._settings.defaultOpen = !this._settings.defaultOpen;\r\n if (!this._settings.defaultOpen) {\r\n this.onDropDownClose.emit();\r\n }\r\n if (this._settings.showSelectedItemsAtTop) {\r\n for (let i = 0; i < this._data.length; i++) {\r\n const element = this._data[i];\r\n const found = this.isSelected(element);\r\n element.isSelected = found;\r\n }\r\n this._data.sort((a, b) =>\r\n ((a.isSelected ? 0 : 1) * 1) - ((b.isSelected ? 0 : 1) * 1)\r\n )\r\n }\r\n }\r\n\r\n closeDropdown() {\r\n this._settings.defaultOpen = false;\r\n // clear search text\r\n if (this._settings.clearSearchFilter) {\r\n this.filter.text = \"\";\r\n }\r\n this.onDropDownClose.emit();\r\n }\r\n\r\n toggleSelectAll() {\r\n if (this.disabled) {\r\n return false;\r\n }\r\n if (!this.isAllItemsSelected()) {\r\n // filter out disabled item first before slicing\r\n this.selectedItems = this.listFilterPipe\r\n .transform(this._data, this.filter)\r\n .filter((item) => !item.isDisabled)\r\n .slice();\r\n this.onSelectAll.emit(this.emittedValue(this.selectedItems));\r\n } else {\r\n this.selectedItems = [];\r\n this.onDeSelectAll.emit(this.emittedValue(this.selectedItems));\r\n }\r\n this.onChangeCallback(this.emittedValue(this.selectedItems));\r\n }\r\n\r\n toggleSelectAll1() {\r\n if (this.disabled) {\r\n return false;\r\n }\r\n\r\n this.selectedItems = this.listFilterPipe\r\n .transform(this._data, this.filter)\r\n .filter((item) => !item.isDisabled)\r\n .slice();\r\n this.onSelectAll.emit(this.emittedValue(this.selectedItems));\r\n this.onChangeCallback(this.emittedValue(this.selectedItems));\r\n }\r\n\r\n toggleUnSelectAll1() {\r\n if (this.disabled) {\r\n return false;\r\n }\r\n\r\n this.selectedItems = [];\r\n this.onDeSelectAll.emit(this.emittedValue(this.selectedItems));\r\n this.onChangeCallback(this.emittedValue(this.selectedItems));\r\n }\r\n\r\n getFields(inputData) {\r\n const fields = [];\r\n if (typeof inputData !== \"object\") {\r\n return fields;\r\n }\r\n // tslint:disable-next-line:forin\r\n for (const prop in inputData) {\r\n fields.push(prop);\r\n }\r\n return fields;\r\n }\r\n\r\n}","export interface IDropdownSettings {\r\n singleSelection?: boolean;\r\n idField?: string;\r\n textField?: string;\r\n disabledField?: string;\r\n enableCheckAll?: boolean;\r\n selectAllText?: string;\r\n unSelectAllText?: string;\r\n allowSearchFilter?: boolean;\r\n clearSearchFilter?: boolean;\r\n maxHeight?: number;\r\n itemsShowLimit?: number;\r\n limitSelection?: number;\r\n searchPlaceholderText?: string;\r\n noDataAvailablePlaceholderText?: string;\r\n noFilteredDataAvailablePlaceholderText?: string;\r\n closeDropDownOnSelection?: boolean;\r\n showSelectedItemsAtTop?: boolean;\r\n defaultOpen?: boolean;\r\n allowRemoteDataSearch?: boolean;\r\n}\r\n\r\nexport class ListItem {\r\n id: String | number;\r\n text: String | number;\r\n isDisabled?: boolean;\r\n isSelected?:boolean;\r\n\r\n public constructor(source: any) {\r\n if (typeof source === 'string' || typeof source === 'number') {\r\n this.id = this.text = source;\r\n this.isDisabled = false;\r\n }\r\n if (typeof source === 'object') {\r\n this.id = source.id;\r\n this.text = source.text;\r\n this.isDisabled = source.isDisabled;\r\n }\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MultiSelectComponent } from './multi-select/multi-select.component';\r\nimport { ListFilterPipe } from './list-filter.pipe';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [MultiSelectComponent, ListFilterPipe, ClickOutsideDirective],\r\n imports: [CommonModule, FormsModule],\r\n providers: [ListFilterPipe],\r\n exports: [MultiSelectComponent]\r\n})\r\nexport class NgMultiselectDropdownModule { }\r\n","import { AfterViewInit, Component, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\n@Component({\r\n selector: 'app-numeric-value-editor',\r\n templateUrl: './numeric-value-editor.component.html',\r\n styleUrls: ['./numeric-value-editor.component.scss']\r\n})\r\nexport class NumericValueEditorComponent implements ICellEditorAngularComp, AfterViewInit {\r\n private params!: ICellEditorParams;\r\n public value!: number;\r\n @ViewChild('input', { read: ViewContainerRef })\r\n public input!: ViewContainerRef;\r\n ngAfterViewInit() {\r\n // focus on the input\r\n setTimeout(() => this.input.element.nativeElement.focus());\r\n }\r\n agInit(params: ICellEditorParams): void {\r\n this.params = params;\r\n this.value = this.params.value;\r\n }\r\n /* Component Editor Lifecycle methods */\r\n // the final value to send to the grid, on completion of editing\r\n getValue() {\r\n // this simple editor doubles any value entered into the input\r\n return this.value?.toString();\r\n }\r\n // Gets called once before editing starts, to give editor a chance to\r\n // cancel the editing before it even starts.\r\n // isCancelBeforeStart() {\r\n // return false;\r\n // }\r\n // Gets called once when editing is finished (eg if Enter is pressed).\r\n // If you return true, then the result of the edit will be ignored.\r\n // isCancelAfterEnd() {\r\n // // our editor will reject any value greater than 1000\r\n // return this.value > 1000;\r\n // }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { CalculationService } from 'src/app/pages/calculation/calculation.service';\r\nimport { StorageName } from '../../common/enum';\r\n@Component({\r\n selector: 'app-numericeditor',\r\n templateUrl: './numericeditor.component.html',\r\n styleUrls: ['./numericeditor.component.scss']\r\n})\r\nexport class NumericeditorComponent implements ICellRendererAngularComp, OnInit {\r\n params;\r\n formatedValue : string;\r\n className : string;\r\n number:number;\r\n negtiveValue:number;\r\n unformatedNum:number;\r\n calcNum:number;\r\n positiveNubmer:number;\r\n feildName:string;\r\n constructor(public calculationService:CalculationService) {}\r\n ngOnInit(): void {\r\n }\r\n agInit(params: ICellRendererParams): void {\r\n this.params = params;\r\n this.formatedValue = params?.valueFormatted;\r\n this.unformatedNum = params?.value;\r\n this.feildName = params.colDef.field;\r\n this.number = parseFloat(this.formatedValue);\r\n var test = (parseFloat(this.formatedValue) < 0) ;\r\n var finalAmount = (parseFloat(this.formatedValue) < 0) ? \"(\" + this.formatedValue.replace('-','')+ \")\" : this.formatedValue;\r\n this.formatedValue = finalAmount == 'NaN' ? \"\" : finalAmount;\r\n this.className = (this.params.gridName != StorageName.TRANSACTION_LEVEL_GRID && this.params.gridName != StorageName.FUND_LEVEL_GRID ) ? ((finalAmount != null && finalAmount != undefined && finalAmount.toString().indexOf('(')!= -1) ? \"negativeCell\" : \"positiveCell\") : \"defaultCurrencyCell\";\r\n }\r\n refresh(params: ICellRendererParams): boolean {\r\n this.params = params;\r\n this.formatedValue = params.value;\r\n return true;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { AgGridService } from \"../ag-grid/ag-grid.service\";\r\nimport { CustomeHeaderService } from \"../custome-header/custome-header.service\";\r\nimport { NotificationService } from \"../../services/notification.service\";\r\nimport { CommonTabService } from \"../../services/common-tab.service\";\r\nimport { StorageService } from \"../../services/storage.service\";\r\nimport { GlobalService } from \"../../services/global.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { StorageName } from \"../../common/enum\";\r\nimport { ImportFileModel, PageHeaderImportFormModel, sheetNameList } from \"./page-header-import-form.model\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ImportPopupComponent } from \"src/app/pages/import-popups/import-popup.component\";\r\nimport { ImportService } from \"src/app/pages/import-popups/import-popup.service\";\r\n@Component({\r\n selector: \"app-page-header-import-form\",\r\n templateUrl: \"./page-header-import-form.component.html\",\r\n styleUrls: [\"./page-header-import-form.component.scss\"]\r\n})\r\nexport class PageHeaderImportFormComponent implements OnInit {\r\n\r\n params;\r\n transactionFilterId : string =\"\";\r\n sheetNameList : sheetNameList[]=[];\r\n sheetName : string[];\r\n sheetNameModel = new sheetNameList();\r\n importModel = new ImportFileModel();\r\n @Input() pageHeaderModel: PageHeaderImportFormModel;\r\n \r\n @Output() onSuccessImport: EventEmitter = new EventEmitter();\r\n // @Output() onAddNewForm: EventEmitter = new EventEmitter();\r\n @Output() onDeleteImport: EventEmitter = new EventEmitter();\r\n overlay: boolean = true;\r\n showOverrideCheckbox: boolean = true;\r\n xsmlfile : string;\r\n constructor(\r\n public agGridService : AgGridService, \r\n public notificationService : NotificationService,\r\n public commonTabService : CommonTabService,\r\n public storageService : StorageService,\r\n public importService : ImportService,\r\n public globalService : GlobalService,\r\n public toasterService : ToastrService,\r\n public dialog : MatDialog,\r\n public customHeaderService : CustomeHeaderService) {\r\n this.pageHeaderModel;\r\n }\r\n ngOnInit(): void {\r\n //set from permission\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if (formPermission) {\r\n this.pageHeaderModel.canModify = formPermission.modifyPermission;\r\n }\r\n if(this.pageHeaderModel.showIsOverride == undefined || this.pageHeaderModel.showIsOverride == null)\r\n this.pageHeaderModel.showIsOverride = true;\r\n\r\n if(formPermission.moduleName == \"Transactions\")\r\n {\r\n this.showOverrideCheckbox = false;\r\n var oldValidateStatus = this.storageService.retrieve(\"transactionValidationSuccess\");\r\n if(oldValidateStatus != undefined && oldValidateStatus != false)\r\n {\r\n this.openImportResultDialog(\"Validate\");\r\n }\r\n\r\n var oldCommitStatus = this.storageService.retrieve(\"transactionCommitSuccess\");\r\n if(oldCommitStatus != undefined && oldCommitStatus != false)\r\n {\r\n this.openImportResultDialog(\"Commit\");\r\n }\r\n\r\n var oldImportStatus = this.storageService.retrieve(\"transactionImportSuccess\");\r\n if(oldImportStatus != undefined && oldImportStatus != false)\r\n {\r\n this.openImportResultDialog(\"Import\");\r\n }\r\n }\r\n else\r\n this.showOverrideCheckbox = true;\r\n\r\n }\r\n\r\n\r\n openImportResultDialog(type : string, sendResponce : boolean = false , dataResult : any = undefined, isSuccess : boolean = true)\r\n {\r\n var successImport = \"\";\r\n switch(type)\r\n {\r\n case \"Import\":\r\n successImport = \"Data Import Ready for Validation & Import.\";\r\n break;\r\n case \"Validate\":\r\n successImport = isSuccess ? \"Validation completed with no errors identified.\" : \"Validation completed with errors identified.\" ;\r\n break;\r\n case \"Commit\":\r\n successImport = isSuccess ? \"Data Import Finished\" : \"Commit Failed with error\"+ dataResult.errors;\r\n break;\r\n }\r\n this.notificationService.openImportSuccessDialog(successImport).subscribe((result) => {\r\n if (result.isConfirmed) {\r\n switch(type)\r\n {\r\n case \"Import\":\r\n successImport = \"Data Import Ready for Validation & Import.\";\r\n this.storageService.store(\"transactionImportSuccess\",false);\r\n if(sendResponce)\r\n this.onSuccessImport.emit({ controllerName : dataResult.controllerName , response : dataResult.response , isAppend : dataResult.isAppend});\r\n break;\r\n case \"Validate\":\r\n successImport = \"Validation Completed. No Errors Identified. Ready for Upload to NorthStar.\";\r\n this.storageService.store(\"transactionValidationSuccess\",false);\r\n if(sendResponce)\r\n this.onSuccessImport.emit({ controllerName : this.pageHeaderModel.agGridI.controllerName.replace(\"Import\",\"\") , response : dataResult.response });\r\n break;\r\n case \"Commit\":\r\n successImport = \"Data Added to NorthStar.\";\r\n this.storageService.store(\"transactionCommitSuccess\",false);\r\n if(sendResponce)\r\n this.onSuccessImport.emit({ controllerName : this.pageHeaderModel.agGridI.controllerName.replace(\"Import\",\"\") , response : dataResult.response });\r\n\r\n break;\r\n }\r\n }\r\n })\r\n }\r\n\r\n openImportFileForm()\r\n {\r\n let dialogRef = this.dialog.open(ImportPopupComponent, {\r\n maxWidth: 350,\r\n minWidth: 350,\r\n data: { pageHeadeModel : this.pageHeaderModel },\r\n backdropClass: 'my-backdrop-class',\r\n hasBackdrop : true,\r\n disableClose : true\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if(result.response != undefined)\r\n {\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if (formPermission.moduleName == \"Transactions\") {\r\n this.storageService.store(\"transactionValidationSuccess\",false);\r\n this.storageService.store(\"transactionCommitSuccess\",false);\r\n this.storageService.store(\"transactionImportSuccess\",true);\r\n \r\n }\r\n this.pageHeaderModel.isAppend = result.isAppend;\r\n this.openImportResultDialog(\"Import\",true,result);\r\n }\r\n else\r\n {\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if (formPermission.moduleName == \"Transactions\") {\r\n this.storageService.store(\"transactionValidationSuccess\",false);\r\n this.storageService.store(\"transactionCommitSuccess\",false);\r\n this.storageService.store(\"transactionImportSuccess\",false);\r\n this.pageHeaderModel.isAppend = result.isAppend;\r\n }\r\n }\r\n });\r\n }\r\n commit()\r\n {\r\n this.importService.commit(this.pageHeaderModel.agGridI.controllerName,this.pageHeaderModel.isNew,this.pageHeaderModel.isAppend,this.pageHeaderModel.isOverride).subscribe((res) => { \r\n //hide loader\r\n this.globalService.deactivateLoader();\r\n if (res.isSuccess) {\r\n this.toasterService.success(res.message,\"\", {\r\n timeOut: 1000\r\n });\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if (formPermission.moduleName == \"Transactions\") {\r\n this.storageService.store(\"transactionValidationSuccess\",false);\r\n this.storageService.store(\"transactionCommitSuccess\",true);\r\n this.storageService.store(\"transactionImportSuccess\",false);\r\n }\r\n if(this.pageHeaderModel.agGridI.controllerName.replace(\"Import\",\"\")!=\"Transaction\")\r\n this.reloadDropdown(this.pageHeaderModel.agGridI.controllerName.replace(\"Import\",\"\"));\r\n this.openImportResultDialog(\"Commit\",true,res);\r\n } \r\n else \r\n {\r\n this.notificationService.warningpopup(res.errors); // show error if success false\r\n this.openImportResultDialog(\"Commit\",true,res,false);\r\n }\r\n //here\r\n \r\n });\r\n }\r\n validate(isCommit)\r\n {\r\n this.globalService.activateLoader();\r\n this.importService.validate(this.pageHeaderModel.agGridI.controllerName,this.pageHeaderModel.isNew,this.pageHeaderModel.isAppend,this.pageHeaderModel.isOverride).subscribe((res) => { \r\n //hide loader\r\n if(isCommit==false)\r\n this.globalService.deactivateLoader();\r\n if (res.isSuccess) {\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if (formPermission.moduleName == \"Transactions\") {\r\n this.storageService.store(\"transactionValidationSuccess\",true);\r\n this.storageService.store(\"transactionCommitSuccess\",false);\r\n this.storageService.store(\"transactionImportSuccess\",false);\r\n }\r\n\r\n if(isCommit==0)\r\n {\r\n this.openImportResultDialog(\"Validate\",true,res);\r\n }\r\n else\r\n this.commit()\r\n } \r\n else \r\n {\r\n this.notificationService.warningpopup(res.errors); \r\n this.openImportResultDialog(\"Validate\",true,res,false);\r\n this.globalService.deactivateLoader();\r\n }\r\n \r\n });\r\n }\r\n\r\nreloadDropdown(controllerName)\r\n{\r\n var dropdownToResetName = \"\";\r\n var storageName = \"\";\r\n switch(controllerName)\r\n {\r\n case \"FundInvestor\" :\r\n //this.fillFundInvestorData(res.response as FundInvestorUpload[]);\r\n dropdownToResetName = \"Investor\";\r\n storageName = StorageName.INVESTOR_DROPDOWN;\r\n break;\r\n case \"FundInvestment\" :\r\n //this.fillFundInvestmentData(res.response as FundInvestmentUpload[]);\r\n dropdownToResetName = \"Investment\"\r\n storageName = StorageName.INVESTMENT_DROPDOWN;\r\n break;\r\n }\r\n console.log(dropdownToResetName)\r\n console.log(storageName)\r\n this.commonTabService.updateDropdown(dropdownToResetName,storageName).subscribe(res=>console.log(res));\r\n this.commonTabService.updateDropdown(\"Fund\",StorageName.FUND_DROPDOWN).subscribe(res=>console.log(res));\r\n }\r\n //#endregion\r\n\r\n CloseBadge(badgeName){\r\n switch(badgeName){\r\n case 'Import':\r\n this.storageService.store(\"transactionImportSuccess\",false);\r\n break;\r\n case 'Commit':\r\n this.storageService.store(\"transactionCommitSuccess\",false);\r\n break;\r\n }\r\n }\r\n\r\n onDelete(){\r\n this.globalService.activateLoader();\r\n this.importService.delete(this.pageHeaderModel.agGridI.controllerName).subscribe((res) => { \r\n this.globalService.deactivateLoader();\r\n if (res.isSuccess) {\r\n this.onSuccessImport.emit({ controllerName : this.pageHeaderModel.agGridI.controllerName.replace(\"Import\",\"\") , response : res.message });\r\n }\r\n else\r\n {\r\n this.notificationService.warningpopup(res.errors); \r\n }\r\n }); \r\n }\r\n}","import { Select2Data } from \"ng-select2-component\";\r\nimport { PaginationModel } from \"src/app/pages/transactions/transactions.model\";\r\nimport { DropdownModel } from \"../../model/common.model\";\r\nimport { AgGridI } from \"../ag-grid/ag-grid.interface\";\r\nexport class PageHeaderImportFormModel {\r\n controllerName : string;\r\n agGridI : AgGridI;\r\n gridApi : any;\r\n importTypes : DropdownModel[];\r\n isNew : boolean;\r\n isOverride : boolean;\r\n isAppend : boolean;\r\n showImportTypeForm : number = 1;\r\n showIsOverride : boolean = true;\r\n canModify : boolean = false;\r\n}\r\nexport class sheetNameList\r\n{\r\n name : string\r\n}\r\nexport class ImportFileModel \r\n{\r\n fileDataArray: string[];\r\n fileData: string;\r\n isOverride: boolean = false;\r\n isNew: boolean = false;\r\n isAppend: boolean = true;\r\n fileType: number;\r\n importMethod: number;\r\n delete : boolean = true;\r\n importUserID : string;\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { AgGridService } from \"../ag-grid/ag-grid.service\";\r\nimport { CustomeHeaderService } from \"../custome-header/custome-header.service\";\r\nimport { Select2Data, Select2UpdateEvent } from \"ng-select2-component\";\r\nimport { PageHeaderModel } from \"./page-header.model\";\r\nimport Swal from \"sweetalert2\";\r\nimport { NotificationService } from \"../../services/notification.service\";\r\nimport { DropdownModel } from \"../../model/common.model\";\r\nimport { CommonTabService } from \"../../services/common-tab.service\";\r\nimport { StorageService } from \"../../services/storage.service\";\r\nimport { GlobalService } from \"../../services/global.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { TierTransactionService } from \"src/app/pages/transactions/tier-transactions/tier-transactions.service\";\r\nimport { StorageName } from \"../../common/enum\";\r\nimport { Result } from \"../../model/response.model\";\r\n@Component({\r\n selector: \"app-page-header\",\r\n templateUrl: \"./page-header.component.html\",\r\n styleUrls: [\"./page-header.component.scss\"]\r\n})\r\nexport class PageHeaderComponent implements OnInit {\r\n @ViewChild('headerDiv') myDiv: ElementRef;\r\n params;\r\n public filteredOptions: Select2Data;\r\n public fundfilteredOptions : Select2Data;\r\n public transactionFilterOptions: Select2Data;\r\n isDisabled = false;\r\n filterList: DropdownModel[];\r\n inputBoxWidth: string = \"w-400\";\r\n transactionfilterList: DropdownModel[];\r\n Id: string = \"\";\r\n fundId : string = \"\";\r\n transactionFilterId: string = \"\";\r\n @Input() pageHeaderModel: PageHeaderModel;\r\n //filteredOptions : DropdownModel[];\r\n @Output() onFilterDropdownChange: EventEmitter = new EventEmitter();\r\n @Output() onFundFilterDropdownChange: EventEmitter = new EventEmitter();\r\n @Output() onSave: EventEmitter = new EventEmitter();\r\n @Output() onOpenLockUnlock: EventEmitter = new EventEmitter();\r\n @Output() onApplyFilter: EventEmitter = new EventEmitter();\r\n @Output() onEditFilter: EventEmitter = new EventEmitter();\r\n @Output() onAddFilter: EventEmitter = new EventEmitter();\r\n @Output() onDeleteFilter: EventEmitter = new EventEmitter();\r\n @Output() onFundDropdownChange: EventEmitter = new EventEmitter();\r\n @Output() onFundDropdownChangeOnLoad: EventEmitter = new EventEmitter();\r\n @Output() onReset: EventEmitter = new EventEmitter();\r\n @Output() onDropdownChange: EventEmitter = new EventEmitter();\r\n @Output() onUndo: EventEmitter = new EventEmitter();\r\n @Output() onAddNewForm: EventEmitter = new EventEmitter();\r\n @Output() fillTopDropdown: EventEmitter = new EventEmitter();\r\n @Output() onPostSuccess: EventEmitter = new EventEmitter();\r\n @Output() onOpenCalcFilterPopup: EventEmitter = new EventEmitter();\r\n @Output() onCopyCalc: EventEmitter = new EventEmitter();\r\n @Output() onOpenJEPopup: EventEmitter = new EventEmitter();\r\n @Output() onOpenSMPopup: EventEmitter = new EventEmitter();\r\n @Output() onOpenLockPopup: EventEmitter = new EventEmitter();\r\n @Output() onOpenGraphPopup: EventEmitter = new EventEmitter();\r\n @Output() onRunCalc: EventEmitter = new EventEmitter();\r\n\r\n overlay: boolean = true;\r\n constructor(\r\n public agGridService: AgGridService,\r\n public notificationService: NotificationService,\r\n public storageService: StorageService,\r\n public commonService: CommonTabService,\r\n public globalService: GlobalService,\r\n public toasterService: ToastrService,\r\n public transactionService: TierTransactionService,\r\n public customHeaderService: CustomeHeaderService) { }\r\n ngOnInit(): void {\r\n this.commonService.getAllDropdowns(this.pageHeaderModel.controllerName + \"s\").subscribe((val: any) => {\r\n if (this.pageHeaderModel.controllerName == \"Role\")\r\n this.getById(\"0\", false, this.pageHeaderModel.showDeleted);\r\n else\r\n this.fillTopDropdown.emit();\r\n var mainDropdown = this.pageHeaderModel.controllerName == \"Transaction\" ? \"Fund\" : this.pageHeaderModel.controllerName;\r\n this.pageHeaderModel.filteredOptions = this.storageService.retrieve(mainDropdown.toUpperCase() + \"_DROPDOWN\");\r\n if(this.pageHeaderModel.controllerName == \"Calculation\"){\r\n this.inputBoxWidth = \"w-240\";\r\n var fundDropdown = this.storageService.retrieve(\"FUND_DROPDOWN\");\r\n this.fundfilteredOptions = fundDropdown?.map((item: DropdownModel) => ({ label: item.name, value: item.id }));\r\n var savedFundId = this.storageService.retrieve(\"CALCULATION_FUNDID\");\r\n if (savedFundId && fundDropdown.findIndex(x => x.id == savedFundId.toString()) > -1)\r\n this.fundId = savedFundId.toString();\r\n else\r\n this.fundId = \"0\";\r\n this.fundId = this.fundId == undefined || this.fundId == '' ? \"0\" : this.fundId;\r\n this.setPermissionFundWise(this.fundId);\r\n this.onFundDropdownChange.emit(this.fundId);\r\n }\r\n this.filteredOptions = this.pageHeaderModel.filteredOptions?.map((item: DropdownModel,index) => ({ label: item.name, value: item.id ,data: {\r\n color: item.color,\r\n name: item.name,\r\n hoverColor: item.hoverColor,\r\n },\r\n templateId : \"template1\",\r\n id: 'option-'+item.id.toString()}));\r\n\r\n //this.data25 = JSON.parse(JSON.stringify( this.filteredOptions));\r\n if (this.pageHeaderModel.controllerName == \"Transaction\") {\r\n this.pageHeaderModel.transactionFilterOptions = this.storageService.retrieve(StorageName.TRANSACTION_FILTER_DROPDOWN);\r\n this.transactionFilterOptions = this.pageHeaderModel.transactionFilterOptions?.map((item: DropdownModel) => ({ label: item.name, value: item.id }));\r\n }\r\n var savedId = this.storageService.retrieve(this.pageHeaderModel.IdStorageName);\r\n if (savedId && this.pageHeaderModel.filteredOptions.findIndex(x => x.id == savedId.toString()) > -1)\r\n this.Id = savedId.toString();\r\n else\r\n this.Id = \"0\";\r\n \r\n this.pageHeaderModel.id = parseInt(this.Id);\r\n if (this.pageHeaderModel.controllerName == StorageName.TRANSACTION_CONTROLLER) {\r\n var savedFilterId = this.storageService.retrieve(StorageName.TRANSACTION_FILTERID);\r\n if (savedFilterId) {\r\n this.transactionFilterId = savedFilterId.toString();\r\n this.pageHeaderModel.transactionFilterId = parseInt(savedFilterId.toString());\r\n if (savedFilterId != \"0\")\r\n this.applyFilter();\r\n }\r\n else\r\n this.transactionFilterId = \"0\";\r\n this.pageHeaderModel.transactionFilterId = parseInt(this.transactionFilterId);\r\n this.setPermissionFundWise(this.Id);\r\n this.onFundDropdownChangeOnLoad.emit(this.Id);\r\n }\r\n if (this.pageHeaderModel.controllerName != StorageName.TRANSACTION_CONTROLLER && this.pageHeaderModel.controllerName != \"Calculation\") {\r\n this.setPermissionFundWise(this.Id);\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n save() { this.onSave.emit(); }\r\n addNewForm() { \r\n this.pageHeaderModel.isAddNew = true; \r\n this.setFilterDropdown(\"\");\r\n if (this.pageHeaderModel.controllerName != \"Transaction\") this.onAddNewForm.emit(); else this.onAddFilter.emit(); }\r\n undo() { \r\n if(this.pageHeaderModel.controllerName != \"Calculation\")\r\n this.getById(this.Id, false, this.pageHeaderModel.showDeleted); \r\n else\r\n this.onUndo.emit(this.pageHeaderModel.id);\r\n }\r\n undoTransaction() {\r\n this.transactionFilterId = \"0\";\r\n this.storageService.store(StorageName.TRANSACTION_FILTERID, \"0\");\r\n this.onUndo.emit(this.Id);\r\n }\r\n //#region transactions\r\n openLockUnlock() { this.onOpenLockUnlock.emit(); }\r\n applyFilter() {\r\n this.storageService.store(StorageName.TRANSACTION_FILTERID, this.transactionFilterId.toString());\r\n this.onApplyFilter.emit(this.transactionFilterId.toString());\r\n }\r\n editFilter() {\r\n if (parseInt(this.transactionFilterId) != 0)\r\n this.onEditFilter.emit(this.transactionFilterId);\r\n else\r\n this.notificationService.warningpopup(\"Please select filter\")\r\n }\r\n addRow() {\r\n this.agGridService.addNewRow({ api: this.pageHeaderModel.gridApi, newRow: new Object() });\r\n var currentRows = this.pageHeaderModel.agGridI.gridApi.api.getModel().rowsToDisplay.map(a => a.data);\r\n this.storageService.store(this.pageHeaderModel.agGridI.initialRows, currentRows);\r\n }\r\n exportAllItems() {\r\n var currentRows = this.pageHeaderModel.agGridI.gridApi.api.getModel().rowsToDisplay.map(a => a.data);\r\n if ((this.pageHeaderModel.agGridI.controllerName == \"Reports\" && this.Id == \"0\") ||\r\n (this.pageHeaderModel.agGridI.controllerName != \"Reports\" && currentRows.length == 0)\r\n ) {\r\n this.notificationService.warningpopup(\"No records to export!!\");\r\n }\r\n else\r\n this.agGridService.exportAll(this.pageHeaderModel.gridApi, this.pageHeaderModel.agGridI.controllerName, false);\r\n }\r\n\r\n resetFilter() {\r\n if (this.pageHeaderModel.agGridI.serversidepagination == true)\r\n this.onReset.emit(true);\r\n else {\r\n this.agGridService.\r\n resetAllFilters(this.pageHeaderModel.agGridI.initialRows,\r\n this.pageHeaderModel.agGridI.filterStorageName,\r\n this.pageHeaderModel.agGridI.gridName, this.pageHeaderModel.gridApi);\r\n }\r\n this.customHeaderService.isResetFilterIcon.emit(true);\r\n }\r\n\r\n clearSort() {\r\n this.storageService.store(this.pageHeaderModel.agGridI.gridName, []);\r\n this.pageHeaderModel.agGridI.gridApi.columnApi.applyColumnState({\r\n defaultState: { sort: null },\r\n });\r\n }\r\n\r\n editReport() {\r\n this.onEditFilter.emit(this.Id);\r\n }\r\n\r\n addReport() {\r\n this.onAddFilter.emit();\r\n }\r\n runReport() {\r\n if (this.Id != \"\" && parseInt(this.Id) != 0)\r\n this.onApplyFilter.emit(this.Id);\r\n else\r\n this.notificationService.warningpopup(\"Please select Report to Run\")\r\n }\r\n deleteReport() {\r\n if (this.Id != \"\" && parseInt(this.Id) != 0)\r\n this.onDeleteFilter.emit(this.Id);\r\n else\r\n this.notificationService.warningpopup(\"Please select Report to Delete\")\r\n }\r\n //#endregion\r\n\r\n post(data: any, showDeleteConfirmation: boolean, isPermanentDelete: boolean = false) {\r\n if (showDeleteConfirmation == true && isPermanentDelete == true) {\r\n let result = this.notificationService.deleteOrReset(isPermanentDelete == true ? 1 : 2);\r\n result.subscribe(res => {\r\n if (res.isConfirmed)\r\n this.postRecords(data);\r\n });\r\n }\r\n else this.postRecords(data);\r\n }\r\n\r\n postRecords(data) {\r\n this.commonService.post(this.pageHeaderModel.controllerName, data).subscribe((res) => {\r\n //hide loader\r\n this.globalService.deactivateLoader();\r\n if (res.isSuccess) {\r\n this.commonService.checkRedirectUrlAfterSave();\r\n this.toasterService.success(res.message, \"\", {\r\n timeOut: 1000\r\n });\r\n\r\n if (this.pageHeaderModel.controllerName != \"Report\" && this.pageHeaderModel.controllerName != \"Calculation\") {\r\n if (this.pageHeaderModel.isServersidePagination != true) {\r\n var isDeleted = (this.pageHeaderModel.controllerName == \"Lookup\") ? false : true;\r\n this.getById(res.response.id.toString(), isDeleted, this.pageHeaderModel.showDeleted);\r\n }\r\n else this.onReset.emit(false);\r\n } else {\r\n //start- for calculation page only\r\n if(this.pageHeaderModel.controllerName == \"Calculation\")\r\n this.setFilterDropdown(res.response.id.toString());\r\n //end- for calculation page only\r\n this.onPostSuccess.emit(res.response);\r\n }\r\n } else {\r\n this.commonService.setredirectUrlAfterSave(null);\r\n this.notificationService.warningpopup(res.errors); // show error if success false\r\n }\r\n });\r\n }\r\n\r\n onDelete() {\r\n var idTodelete = this.pageHeaderModel.id.toString();\r\n\r\n switch(this.pageHeaderModel.controllerName)\r\n {\r\n case StorageName.TRANSACTION_CONTROLLER:\r\n this.onDeleteFilter.emit()\r\n break;\r\n case StorageName.CALCULATION_CONTROLLER:\r\n if(this.pageHeaderModel.isCalcLocked==false)\r\n if (parseInt(idTodelete) != 0)\r\n this.delete(idTodelete);\r\n else\r\n this.notificationService.warningpopup(\"select item to delete\");\r\n else\r\n this.notificationService.warningpopup(\"Calculation is locked. Please unlock to delete\");\r\n break;\r\n default:\r\n if (parseInt(idTodelete) != 0)\r\n this.delete(idTodelete);\r\n else\r\n this.notificationService.warningpopup(\"select item to delete\");\r\n \r\n }\r\n }\r\n delete(idTodelete) {\r\n var controllerName = this.pageHeaderModel.controllerName;\r\n if (this.pageHeaderModel.controllerName == StorageName.TRANSACTION_CONTROLLER)\r\n controllerName = StorageName.TRANSACTION_FILTER_CRITERIA;\r\n if (this.pageHeaderModel.controllerName == StorageName.REPORT_HEADER_CONTROLLER) {\r\n controllerName = \"ReportCriterias\";\r\n }\r\n\r\n Swal.fire({\r\n title: 'Are you sure?',\r\n text: \"\",\r\n html: \"

You won't be able to revert this!

\",\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Yes, delete it!',\r\n cancelButtonText: 'No, cancel!',\r\n width: 350\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.commonService\r\n .delete(controllerName, 1, [parseInt(idTodelete)])\r\n .subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.toasterService.success(\"Deleted Successfully!!\", \"\", {\r\n timeOut: 1000\r\n });\r\n if (this.pageHeaderModel.isServersidePagination != true ) \r\n this.getById(\"0\", true, this.pageHeaderModel.showDeleted);\r\n else \r\n this.onFundDropdownChange.emit(\"0\");\r\n } else this.notificationService.errorpopup(res.errors);\r\n });\r\n }\r\n });\r\n }\r\n\r\n update(key: string, event: Select2UpdateEvent) {\r\n if (event.options && event.options.length > 0) {\r\n this.pageHeaderModel.id = event.value;\r\n this.Id = event.value.toString();\r\n if (this.pageHeaderModel.controllerName == \"Lookup\" || this.pageHeaderModel.controllerName == \"Calculation\" )\r\n this.onDropdownChange.emit(event.value);\r\n else\r\n {\r\n if(this.pageHeaderModel.controllerName == \"Fund\")\r\n this.setPermissionFundWise(event.value);\r\n this.getById(event.value, false, this.pageHeaderModel.showDeleted);\r\n }\r\n }\r\n }\r\n\r\n close(key: string, event: Event) {\r\n console.log(key, event);\r\n }\r\n\r\n updateFilterFromFund(key: string, event: any) {\r\n if (event.hoveringValue != null || event.hoveringValue != undefined) {\r\n this.pageHeaderModel.fundId = event.hoveringValue;\r\n this.pageHeaderModel.id = parseInt(this.Id);\r\n this.fundId = event.hoveringValue;\r\n this.setPermissionFundWise(this.fundId);\r\n this.onFundDropdownChange.emit(this.fundId);\r\n }\r\n }\r\n\r\n updateFundForTransaction(key: string, event: any) {\r\n if (event.hoveringValue != null || event.hoveringValue != undefined) {\r\n this.pageHeaderModel.id = event.hoveringValue;\r\n this.Id = event.hoveringValue.toString();\r\n this.pageHeaderModel.transactionFilterId = 0;\r\n this.transactionFilterId = \"0\";\r\n if(this.pageHeaderModel.name == undefined || this.pageHeaderModel.name == \"\"){\r\n var filteredItem = this.pageHeaderModel.filteredOptions.filter((obj) => {return obj.id === this.Id;});\r\n this.pageHeaderModel.name = filteredItem[0].name;\r\n }\r\n this.setPermissionFundWise(event.hoveringValue);\r\n this.onFundDropdownChange.emit(event.hoveringValue);\r\n }\r\n }\r\n\r\n setPermissionFundWise(fundId)\r\n {\r\n //set from permission\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if (formPermission) {\r\n this.pageHeaderModel.canModify = formPermission.modifyPermission;\r\n this.pageHeaderModel.canDelete = formPermission.deletePermission;\r\n }\r\n if(formPermission.formName == \"Funds\" || formPermission.formName == \"Tier Transactions\" || formPermission.formName == \"Calculations\")\r\n {\r\n var fundDropdown = this.storageService.retrieve(\"FUND_DROPDOWN\");\r\n var filteredFund = fundDropdown.filter(a=>a.id == fundId)[0];\r\n var canModify = filteredFund.color;\r\n var canDelete = filteredFund.hoverColor;\r\n this.pageHeaderModel.canModify = canModify == 'true' ? true : false;\r\n this.pageHeaderModel.canDelete = canDelete == 'true' ? true : false;\r\n } \r\n // const inputElements = this.myDiv.nativeElement.querySelectorAll('input');\r\n // inputElements.forEach(input => {\r\n // input.disabled = !this.pageHeaderModel.canModify;\r\n // });\r\n\r\n\r\n // this.isDisabled = !this.pageHeaderModel.canModify;;\r\n }\r\n\r\n\r\n\r\n updateFilterForTransaction(key: string, event: any) {\r\n this.pageHeaderModel.transactionFilterId = event.hoveringValue;\r\n this.transactionFilterId = event.hoveringValue != null ? event.hoveringValue.toString() : \"\";\r\n this.onFundFilterDropdownChange.emit(event.hoveringValue);\r\n }\r\n\r\n getById(id: string, isDeleted: boolean = false, showDeleted: boolean) {\r\n var userid = this.commonService.getUserid();\r\n this.storageService.store(this.pageHeaderModel.IdStorageName, id);\r\n this.commonService.getById(this.pageHeaderModel.controllerName, parseInt(id), showDeleted).subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.pageHeaderModel.isAddNew = false;\r\n if (isDeleted == true) this.setFilterDropdown(id);\r\n this.onFilterDropdownChange.emit(res);\r\n } else this.notificationService.errorpopup(res.errors);\r\n });\r\n }\r\n\r\n setFilterDropdown(id: string) {\r\n this.commonService.getfilterDropdown(this.pageHeaderModel.controllerName).subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.filterList = [];\r\n this.filterList = res.response;\r\n this.storageService.store(this.pageHeaderModel.controllerName.toUpperCase() + \"_DROPDOWN\", res.response);\r\n this.filteredOptions = this.filterList?.map(\r\n (item: DropdownModel) => ({\r\n label: item.name,\r\n value: item.id,\r\n\r\n })\r\n );\r\n this.Id = id;\r\n //set filter text after change in dropdown\r\n this.setFilterText(res,id,\"selec2-1\");\r\n }\r\n });\r\n }\r\n\r\n setFilterDropdownRunReport(id: string,reportName:string) {\r\n this.commonService.getfilterDropdown(this.pageHeaderModel.controllerName).subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.filterList = [];\r\n this.filterList = res.response;\r\n this.storageService.store(this.pageHeaderModel.controllerName.toUpperCase() + \"_DROPDOWN\", res.response);\r\n this.filteredOptions = this.filterList?.map(\r\n (item: DropdownModel) => ({\r\n label: item.name,\r\n value: item.id,\r\n })\r\n );\r\n //this.Id = id;\r\n //set filter text after change in dropdown\r\n const select = document.getElementById(\"selec2-1\");\r\n const filterText = select.querySelector(\".select2-selection__rendered span\");\r\n filterText.innerHTML = reportName;\r\n }\r\n });\r\n }\r\n\r\n setCalcFilterDropdown(id: string, res : any) {\r\n this.filterList = [];\r\n this.filterList = res.response;\r\n this.storageService.store(this.pageHeaderModel.controllerName.toUpperCase() + \"_DROPDOWN\", res.response);\r\n this.filteredOptions = this.filterList?.map(\r\n (item: DropdownModel) => ({\r\n label: item.name,\r\n value: item.id,\r\n })\r\n );\r\n this.Id = id;\r\n this.pageHeaderModel.id = parseInt(id);\r\n this.storageService.store(this.pageHeaderModel.IdStorageName , id);\r\n //set filter text after change in dropdown\r\n this.setFilterText(res,id,\"selec2-1\");\r\n }\r\n\r\n changeColor(obj, color) { \r\n obj.style.background = color;\r\n }\r\n\r\n changeColorOnHover(obj, color) {\r\n obj.style.background = color;\r\n }\r\n\r\n //#region Transaction items\r\n\r\n setTransactionFilterDropdown(savedId) {\r\n this.commonService.getfilterDropdown(\"TransactionFilterCriteria\").subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.transactionfilterList = [];\r\n this.transactionfilterList = res.response;\r\n this.transactionFilterOptions = this.transactionfilterList?.map(\r\n (item: DropdownModel) => ({\r\n label: item.name,\r\n value: item.id,\r\n })\r\n );\r\n this.transactionFilterId = savedId.toString();\r\n //set filter text after change in dropdown\r\n this.setFilterText(res,savedId,\"selec2-2\");\r\n }\r\n });\r\n }\r\n\r\n //#endregion\r\n\r\n setFilterText(res : Result, id : string, dropdownId : string)\r\n {\r\n const select = document.getElementById(dropdownId);\r\n const filterText = select.querySelector(\".select2-selection__rendered span\");\r\n if(res != undefined && res != null){\r\n var filteredItem = res.response.filter((obj) => {\r\n return obj.id === id;\r\n });\r\n filterText.innerHTML = filteredItem != undefined && filteredItem.length > 0 ? filteredItem[0].name : \"\";\r\n }\r\n else filterText.innerHTML = \"\";\r\n }\r\n\r\n openCalcFilterPopup() { this.onOpenCalcFilterPopup.emit(); }\r\n copyCalc() { \r\n this.pageHeaderModel.id = 0;\r\n this.pageHeaderModel.name = \"\";\r\n this.Id = undefined;\r\n this.setFilterText(undefined,\"0\",\"selec2-1\")\r\n this.onCopyCalc.emit(); \r\n }\r\n\r\n getPermissionByGroupAndDomain(fundGroupId, domainId) {\r\n this.commonService.getPermissionByGroupAndDomain(fundGroupId, domainId).subscribe((res) => {\r\n if (res != null && res.isSuccess) {\r\n var filteredFund = res.response[0];\r\n if(filteredFund){\r\n var canModify = filteredFund.color;\r\n var canDelete = filteredFund.hoverColor;\r\n this.pageHeaderModel.canModify = canModify == 'true' ? true : false;\r\n this.pageHeaderModel.canDelete = canDelete == 'true' ? true : false;\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n formPermission.modifyPermission = this.pageHeaderModel.canModify;\r\n formPermission.deletePermission = this.pageHeaderModel.canDelete ;\r\n this.storageService.store(StorageName.CURRENT_FORM_PERMISSION,formPermission);\r\n if(this.pageHeaderModel.canModify == false && this.pageHeaderModel.canDelete == true)\r\n this.notificationService.warningpopup(\"you don't have Modify Permission for the selected group or domain\");\r\n if(this.pageHeaderModel.canModify == true && this.pageHeaderModel.canDelete == false)\r\n this.notificationService.warningpopup(\"you don't have Delete Permission for the selected group or domain\");\r\n if(this.pageHeaderModel.canModify == false && this.pageHeaderModel.canDelete == false)\r\n this.notificationService.warningpopup(\"you don't have Modify and Delete Permission for the selected group or domain\")\r\n }\r\n }\r\n });\r\n }\r\n\r\n openJEPopup() { this.onOpenJEPopup.emit(); }\r\n openSMPopup() { this.onOpenSMPopup.emit(); }\r\n openLockPopup() { this.onOpenLockPopup.emit(); }\r\n openGraphPopup() { this.onOpenGraphPopup.emit(); }\r\n runCalc() { this.onRunCalc.emit(); }\r\n \r\n}\r\n","import { PaginationModel } from \"src/app/pages/transactions/transactions.model\";\r\nimport { DropdownModel } from \"../../model/common.model\";\r\nimport { AgGridI } from \"../ag-grid/ag-grid.interface\";\r\nexport class PageHeaderModel {\r\n public setVisibilityForForm(formName: string) {\r\n switch (formName) {\r\n case \"Transaction\":\r\n this.isAddButtonVisible = true;\r\n this.isLockUnlockButtonVisible = true;\r\n this.isFundLabelVisible = true;\r\n this.isSaveButtonVisible = true;\r\n this.isUndoTransactionButtonVisible = true;\r\n this.isTransactionFilterDropdownVisible = true;\r\n this.isApplyFilterButtonVisible = true;\r\n this.isEditFilterButtonVisible = true;\r\n this.isDeleteButtonVisible = false;\r\n this.isFundFilterDropdownVisible = false; \r\n this.isFilterDropdownVisible = false;\r\n this.isTransactionDeleteButtonVisible = true;\r\n break;\r\n case \"Fund Information\":\r\n case \"Calculation Rule Library\":\r\n this.isAddButtonVisible = true;\r\n this.isFilterLabelVisible = true;\r\n this.isFilterDropdownVisible = true;\r\n this.isSaveButtonVisible = true;\r\n this.isUndoButtonVisible = true;\r\n this.isDeleteButtonVisible = true;\r\n this.isAddNewFieldVisible = true;\r\n this.isCopyVisible = true;\r\n break;\r\n case \"Position\":\r\n this.isFilterLabelVisible = true;\r\n this.isFilterDropdownVisible = true;\r\n this.isSaveButtonVisible = true;\r\n break;\r\n case \"Lookup\":\r\n this.isLookupFilterDropdownVisible = true;\r\n this.isAdminAddButtonVisible = true;\r\n this.isSaveButtonVisible = true;\r\n this.isExportButtonVisible = true;\r\n this.isUndoButtonVisible = true;\r\n this.isResetFilterButtonVisible = true;\r\n this.isResetSortButtonVisible = true;\r\n break;\r\n case \"PermissionRole\":\r\n this.isFilterLabelVisible = true;\r\n this.isFilterDropdownVisible = true;\r\n this.isSaveButtonVisible = true;\r\n this.isUndoButtonVisible = true;\r\n this.isDeleteButtonVisible = false;\r\n this.isAddNewFieldVisible = false;\r\n this.isResetSortButtonVisible = true;\r\n this.isExportButtonVisible = true;\r\n this.isAdminAddButtonVisible = false;\r\n this.isResetFilterButtonVisible = true;\r\n break;\r\n case \"Role\":\r\n this.isSaveButtonVisible = true;\r\n this.isResetSortButtonVisible = true;\r\n this.isExportButtonVisible = true;\r\n this.isAdminAddButtonVisible = true;\r\n this.isResetFilterButtonVisible = true;\r\n this.isUndoButtonVisible = true;\r\n break;\r\n case \"User\":\r\n this.isFilterLabelVisible = true;\r\n this.isFilterDropdownVisible = true;\r\n this.isSaveButtonVisible = true;\r\n this.isResetSortButtonVisible = true;\r\n this.isExportButtonVisible = true;\r\n this.isAdminAddButtonVisible = true;\r\n this.isResetFilterButtonVisible = true;\r\n this.isUndoButtonVisible = true;\r\n break;\r\n case \"Reporting\":\r\n // this.isApplyFilterButtonVisible = true;\r\n this.isReportFilterVisible = true;\r\n this.isSaveButtonVisible = true;\r\n break;\r\n case \"Calculation\":\r\n this.isAddButtonVisible = true;\r\n this.isFilterLabelVisible = false;\r\n this.isFilterDropdownVisible = true;\r\n this.isSaveButtonVisible = true;\r\n this.isUndoButtonVisible = true;\r\n this.isDeleteButtonVisible = true;\r\n this.isAddNewFieldVisible = true;\r\n this.isFundLabelVisible = true;\r\n this.isTransactionFilterDropdownVisible = false;\r\n this.isFundFilterDropdownVisible = true;\r\n this.isCalListLabelVisible = true;\r\n this.isRunCalcVisible = true;\r\n this.isCalculationForm = true;\r\n this.isCopyVisible = true;\r\n }\r\n }\r\n id: number;\r\n fundId: number;\r\n transactionFilterId: number;\r\n name: string;\r\n placeHolder: string = \"\";\r\n filterOptionStorageName: string;\r\n isCalcLocked: boolean = false;\r\n filteredOptions: DropdownModel[];\r\n transactionFilterOptions: DropdownModel[];\r\n controllerName: string;\r\n agGridI: AgGridI;\r\n gridApi: any;\r\n IdStorageName: string;\r\n fundIdStorageName: string;\r\n isServersidePagination: boolean = false;\r\n paginationModel: PaginationModel = new PaginationModel();\r\n isAddButtonVisible: boolean = false;\r\n isFilterLabelVisible: boolean = false;\r\n isFundLabelVisible: boolean = false;\r\n isFilterDropdownVisible: boolean = false;\r\n isSaveButtonVisible: boolean = false;\r\n isUndoTransactionButtonVisible: boolean = false;\r\n isFundFilterDropdownVisible: boolean = false;\r\n isTransactionFilterDropdownVisible: boolean = false;\r\n isApplyFilterButtonVisible: boolean = false;\r\n isEditFilterButtonVisible: boolean = false;\r\n isDeleteButtonVisible: boolean = false;\r\n isAddNewFieldVisible: boolean = false;\r\n isLockUnlockButtonVisible: boolean = false;\r\n isUndoButtonVisible: boolean = false;\r\n isLookupFilterDropdownVisible: boolean = false;\r\n isAdminAddButtonVisible: boolean = false;\r\n isExportButtonVisible: boolean = false;\r\n isResetFilterButtonVisible: boolean = false;\r\n isResetSortButtonVisible: boolean = false;\r\n canModify: boolean = false;\r\n canDelete: boolean = false;\r\n filter: string;\r\n showDeleted: boolean = false;\r\n isReportFilterVisible: boolean = false;\r\n isAddNew: boolean = false;\r\n isCalListLabelVisible : boolean = false;\r\n isRunCalcVisible : boolean = false;\r\n isCalculationForm : boolean = false;\r\n isTransactionDeleteButtonVisible :boolean = false;\r\n isHypotheticalLabelVisible:boolean = false;\r\n\r\n isScenarioModeAppliedLabelVisible : boolean = false;\r\n isCopyVisible : boolean = false;\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { AgGridService } from '../ag-grid/ag-grid.service';\r\nexport interface MyParams {\r\n // label?: string;\r\n eventOccurs?: any;\r\n}\r\n@Component({\r\n selector: 'app-run',\r\n templateUrl: './run.component.html',\r\n styleUrls: ['./run.component.scss']\r\n})\r\nexport class RunComponent implements OnInit,ICellRendererAngularComp {\r\n params;\r\n constructor(public agGridService: AgGridService) { }\r\n agInit(params: ICellRendererParams & MyParams): void {\r\n this.params = params;\r\n }\r\n refresh(params: ICellRendererParams): boolean {\r\n return true;\r\n }\r\n ngOnInit(): void {\r\n \r\n }\r\n onRun(){\r\n this.params.eventOccurs.emit({ eventName: 'run', payload: this.params });\r\n }\r\n onRresetTransfer(){\r\n this.params.eventOccurs.emit({ eventName: 'reset-transfer', payload: this.params });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, OnDestroy } from '@angular/core';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\nimport { ColumnState, IHeaderParams } from 'ag-grid-community';\r\nimport { Subscription } from 'rxjs';\r\nimport { StorageService } from '../../services/storage.service';\r\nimport { AgGridService } from '../ag-grid/ag-grid.service';\r\nimport { ICustomHeaderParams } from '../custome-header/custome-header.interface';\r\nimport { FilterService } from '../filter/filter.service';\r\nimport { StorageSortModel } from './sort.model';\r\nimport { SortService } from './sort.service';\r\n@Component({\r\n selector: 'app-sort',\r\n templateUrl: './sort.component.html',\r\n styleUrls: ['./sort.component.scss']\r\n})\r\nexport class SortComponent implements OnInit, OnDestroy {\r\n @Input() gridApi: any;\r\n @Input() initialRows: string;\r\n @Input() filterStorageName: string;\r\n @Input() columnName: string;\r\n @Input() gridName: string;\r\n @Input() params: any;\r\n @Input() isFilterIconColor: any;\r\n @Input() filterData: any;\r\n @Input() rows: any[];\r\n @Input() isServerSidePagination: boolean;\r\n @Output() onSort = new EventEmitter();\r\n\r\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\r\n\r\n storageSortList = new StorageSortModel();\r\n storageSortListArray: StorageSortModel[] = [];\r\n sortList: ColumnState[] = [];\r\n subSort: ColumnState;\r\n sortData: any = this.sortService.sortData;\r\n private _sortListSubscription!: Subscription;\r\n\r\n constructor(private sortService: SortService, public agGridService: AgGridService, public storageService: StorageService, private filterService: FilterService) {\r\n // this._sortListSubscription = this.sortService.sortList$.subscribe((data) => {\r\n // this.sortList = data;\r\n // })\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n agInit(params: IHeaderParams & ICustomHeaderParams) {\r\n this.params = params;\r\n }\r\n\r\n saveSort() {\r\n var colState = this.params.columnApi.getColumnState();\r\n var sortState = colState\r\n .filter(function (s) {\r\n return s.sort != null;\r\n })\r\n .map(function (s) {\r\n return {\r\n colId: s.colId,\r\n sort: s.sort,\r\n sortIndex: s.sortIndex,\r\n };\r\n });\r\n this.storageService.store(this.gridName, sortState)\r\n console.log('saved sort', sortState);\r\n }\r\n\r\n createSortArray(col, sortId) {\r\n var maxSortIndex = 0;\r\n var listOfSortModel = this.storageService.retrieve(this.gridName);\r\n if (listOfSortModel == undefined)\r\n listOfSortModel = [];\r\n if (listOfSortModel.length > 0)\r\n maxSortIndex = Math.max(...listOfSortModel.map(o => o.sortIndex));\r\n var data = listOfSortModel.filter(a => a.colId == col);\r\n if (data.length != 0) {\r\n data[0].sort = sortId;\r\n data[0].sortIndex = data[0].sortIndex != maxSortIndex ? maxSortIndex + 1 : maxSortIndex;\r\n }\r\n else listOfSortModel.push({ colId: col, sort: sortId, sortIndex: maxSortIndex + 1 })\r\n this.storageService.store(this.gridName, listOfSortModel)\r\n }\r\n\r\n onSortClick(col, sortId) {\r\n if (this.rows?.length == 0)\r\n return;\r\n this.createSortArray(col, sortId);\r\n this.setSort(col);\r\n }\r\n\r\n setSort(col) {\r\n if (this.isServerSidePagination)\r\n this.sortService.emitOnSort.emit(this.gridName)\r\n else\r\n this.agGridService.performFilter(this.params);\r\n this.trigger.closeMenu();\r\n this.setRemoveSortVisibility(col);\r\n }\r\n menuOpened() {\r\n var thisColumn = this.storageService.retrieve(this.gridName).filter(b => b.colId == this.columnName);\r\n //var thisColumn = this.params.columnApi.getColumnState().filter(b=>b.colId==this.columnName);\r\n if (thisColumn != undefined && thisColumn.length != 0)\r\n this.sortData.find(x => x.id == 3).display = thisColumn[0].sort == null ? false : true;\r\n else\r\n this.sortData.find(x => x.id == 3).display = false;\r\n }\r\n isSubSort(name) {\r\n var storedSortList = this.storageService.retrieve(this.gridName);\r\n var thisColumn = storedSortList != undefined ? storedSortList.filter(b => b.colId == name) : [];\r\n if (thisColumn != undefined)\r\n this.subSort = thisColumn[0];\r\n return this.subSort;\r\n }\r\n\r\n onRemoveSortClick(col) {\r\n var listOfSortModel = this.storageService.retrieve(this.gridName).filter(s => s.sort !== null);\r\n var sortedCol = listOfSortModel.findIndex(s => s.colId == col);\r\n delete listOfSortModel[sortedCol];\r\n listOfSortModel = listOfSortModel.filter(a => a.sort != null);\r\n var initialSortIndex = 1;\r\n listOfSortModel.forEach(x1 => x1.sortIndex = initialSortIndex++);\r\n this.storageService.store(this.gridName, listOfSortModel)\r\n this.setSort(col);\r\n }\r\n\r\n onHideColumnClick(col) {\r\n this.params.columnApi.setColumnVisible(col, false)\r\n }\r\n\r\n setRemoveSortVisibility(columnName) {\r\n var storedSortList = this.storageService.retrieve(this.gridName);\r\n var listOfSortModel = storedSortList != undefined ? storedSortList.filter(s => s.sort !== null) : [];\r\n const sortedCol = listOfSortModel.findIndex(s => s.colId == columnName);\r\n this.sortData[2].display = sortedCol > -1\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._sortListSubscription) {\r\n this._sortListSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","export class sort {\r\n direction: 'ASC' | 'DESC';\r\n name: string;\r\n level: number;\r\n}\r\nexport class StorageSortModel {\r\n gridName:string;\r\n sortList:sort[];\r\n}","import { EventEmitter, Injectable, Output } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { StorageName } from '../../common/enum';\r\nimport { StorageService } from '../../services/storage.service';\r\nimport { AgGridService } from '../ag-grid/ag-grid.service';\r\nimport { sort, StorageSortModel } from './sort.model';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SortService {\r\n emitOnSort = new EventEmitter();\r\n private readonly _sortList = new BehaviorSubject([]);\r\n readonly sortList$ = this._sortList.asObservable();\r\n public _sortedArrayData: any[] = [];\r\n public gridName = new BehaviorSubject({});\r\n previousSortListArray: any[] = []\r\n get sortList(): sort[] {\r\n return this._sortList.getValue();\r\n }\r\n set sortList(data: sort[]) {\r\n this._sortList.next(data);\r\n }\r\n sortOldRows: any[] = [];\r\n sortData: any = [\r\n { name: \"Sort Ascending\", id: 1, display: true },\r\n { name: \"Sort Descending\", id: 2, display: true },\r\n { name: \"Remove Sort\", icon: \"close\", id: 3, display: false },\r\n { name: \"Hide Column\", icon: \"close\", id: 4, display: true }\r\n ]\r\n constructor(public storageService: StorageService) { }\r\n ngOnInit(): void {\r\n }\r\n performSort(initialRowsStorageName: string, storageName: string) {\r\n let initialRows = this.storageService.retrieve(initialRowsStorageName);\r\n this.sortList = this.storageService.retrieve(storageName);\r\n let tempData: any[] = Object.assign([], initialRows);\r\n if (this.sortList?.length > 0) {\r\n this.updateAllLevel(this.sortList);\r\n tempData?.sort(this.dynamicSortMultiple(this.sortList));\r\n }\r\n return tempData;\r\n }\r\n updateAllLevel(list: sort[]) {\r\n let count = 1;\r\n list.forEach((element: sort) => {\r\n element.level = count++;\r\n });\r\n }\r\n private dynamicSort(col, direction) {\r\n return function (a, b) {\r\n a = a[col];\r\n b = b[col];\r\n if (a == b) return 0;\r\n if (typeof (a) == \"number\") {\r\n if (direction == \"ASC\")\r\n return a > b ? 1 : -1;\r\n else return a < b ? 1 : -1;\r\n } else {\r\n if (direction == \"ASC\")\r\n return a.toLowerCase() > b.toLowerCase() ? 1 : -1;\r\n else return a.toLowerCase() < b.toLowerCase() ? 1 : -1;\r\n }\r\n }\r\n }\r\n dynamicSortMultiple(props) {\r\n let that = this;\r\n // var props = arguments;\r\n return function (obj1, obj2) {\r\n var i = 0, result = 0, numberOfProperties = props.length;\r\n /* try getting a different result from 0 (equal)\r\n * as long as we have extra properties to compare\r\n */\r\n while (result === 0 && i < numberOfProperties) {\r\n result = that.dynamicSort(props[i].name, props[i].direction)(obj1, obj2);\r\n i++;\r\n }\r\n return result;\r\n }\r\n }\r\n setRemoveSortVisibility(columnName) {\r\n if (this.sortList)\r\n this.sortData[2].display = this.sortList.findIndex(x => x.name == columnName) > -1\r\n }\r\n clearSort() {\r\n this.sortList = [];\r\n this.sortOldRows = [];\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nconst routes: Routes = [];\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class SpinnerRoutingModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n@Component({\r\n selector: 'app-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.scss']\r\n})\r\nexport class SpinnerComponent implements OnInit {\r\n @Input() isLoaderLoading:boolean;\r\n constructor() { }\r\n ngOnInit(): void {\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SpinnerRoutingModule } from './spinner-routing.module';\r\nimport { SpinnerComponent } from './spinner.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../../shared.module';\r\nimport { RunModelComponent } from 'src/app/pages/calculation/run-model/run-model.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SpinnerComponent,\r\n RunModelComponent,\r\n ],\r\n \r\n imports: [\r\n CommonModule,\r\n SpinnerRoutingModule,\r\n FormsModule,\r\n CommonModule,\r\n SharedModule,\r\n ],\r\n exports: [SpinnerComponent],\r\n})\r\nexport class SpinnerModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { AgGridService } from \"../ag-grid/ag-grid.service\";\r\nimport { CustomeHeaderService } from \"../custome-header/custome-header.service\";\r\nimport { TableHeaderModel } from \"./table-header-buttons.model\";\r\nimport { StorageService } from \"../../services/storage.service\";\r\nimport { CommonTabService } from \"../../services/common-tab.service\";\r\nimport { NotificationService } from \"../../services/notification.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { StorageName } from \"../../common/enum\";\r\n@Component({\r\n selector: \"app-table-header-buttons\",\r\n templateUrl: \"./table-header-buttons.component.html\",\r\n styleUrls: [\"./table-header-buttons.component.scss\"]\r\n})\r\nexport class TableHeaderButtonsComponent implements OnInit {\r\n params;\r\n tabID = 1;\r\n collapse: boolean = false;\r\n @Input() tableHeaderModel!: TableHeaderModel;\r\n @Output() showDeleted: EventEmitter = new EventEmitter();\r\n @Output() onAddRow: EventEmitter = new EventEmitter();\r\n @Output() onDeleteRows: EventEmitter = new EventEmitter();\r\n @Output() onReset: EventEmitter = new EventEmitter();\r\n @Output() onExportAllTransactions: EventEmitter = new EventEmitter();\r\n \r\n @Output() onShowDetails: EventEmitter = new EventEmitter();\r\n @Output() onShowSummary: EventEmitter = new EventEmitter();\r\n @Output() onIncludeDraftStatus: EventEmitter = new EventEmitter();\r\n @Output() onShowGraph: EventEmitter = new EventEmitter();\r\n @Output() onRemoveSort: EventEmitter = new EventEmitter();\r\n @Output() onTransactionStatusFilter: EventEmitter = new EventEmitter();\r\n @Output() onActiveFilter: EventEmitter = new EventEmitter();\r\n @Output() onDeleteFilter: EventEmitter = new EventEmitter();\r\n @Output() onDraftFilter: EventEmitter = new EventEmitter();\r\n @Output() onLockedFilter: EventEmitter = new EventEmitter();\r\n\r\n constructor(public agGridService: AgGridService,\r\n public storageService: StorageService,\r\n public commonTabService: CommonTabService,\r\n public notificationService: NotificationService,\r\n public toasterService: ToastrService,\r\n public customHeaderService: CustomeHeaderService) { }\r\n\r\n ngOnInit(): void {\r\n //set from permission\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n if (formPermission) {\r\n this.tableHeaderModel.canModify = formPermission.modifyPermission;\r\n this.tableHeaderModel.canDelete = formPermission.deletePermission;\r\n }\r\n }\r\n onActiveFilterClick(event){\r\n if(event.checked){ \r\n this.onActiveFilter.emit('2');\r\n }\r\n else{\r\n this.onActiveFilter.emit('');\r\n }\r\n }\r\n\r\n onDeleteFilterClick(event){\r\n if(event.checked){\r\n this.onDeleteFilter.emit('1');\r\n }\r\n else{\r\n this.onDeleteFilter.emit('');\r\n }\r\n }\r\n \r\n onDraftFilterClick(event){\r\n if(event.checked){\r\n this.onDraftFilter.emit('1');\r\n }\r\n else{\r\n this.onDraftFilter.emit('');\r\n }\r\n }\r\n\r\n onLockedFilterClick(event){\r\n if(event.checked){\r\n this.onLockedFilter.emit('4');\r\n }\r\n else{\r\n this.onLockedFilter.emit('');\r\n }\r\n }\r\n addRow() {\r\n var masterFormDataFieldName = (this.tableHeaderModel.masterDataColumnName == \"\" || this.tableHeaderModel.masterDataColumnName == undefined) ? this.tableHeaderModel.agGridI.masterIdStorageName.replace(\"_\",\"\").replace(\"ID\",\"\").toLocaleLowerCase()+ \"Name\" : this.tableHeaderModel.masterDataColumnName;\r\n const obj = {\r\n feeEligible: true,\r\n active: true,\r\n masterFormDataFieldName : this.tableHeaderModel.masterDataValueName \r\n } \r\n this.tableHeaderModel.agGridI.colDefs.forEach(agColumn=>{\r\n if(agColumn.cellType == \"number\"){ \r\n obj[agColumn.field] = 0 \r\n }\r\n });\r\n\r\n obj[masterFormDataFieldName] = this.tableHeaderModel.masterDataValueName;\r\n if (this.tableHeaderModel.agGridI.serversidepagination == true)\r\n this.onAddRow.emit();\r\n else { \r\n this.agGridService.addNewRow({ api: this.tableHeaderModel.gridApi, newRow: obj });\r\n var currentRows = this.tableHeaderModel.agGridI.gridApi.api.getModel().rowsToDisplay.map(a => a.data);\r\n this.storageService.store(this.tableHeaderModel.agGridI.initialRows, currentRows);\r\n }\r\n }\r\n exportAllItems() {\r\n if (this.tableHeaderModel.agGridI.serversidepagination == true)\r\n this.onExportAllTransactions.emit();\r\n else\r\n this.agGridService.exportAll(this.tableHeaderModel.gridApi, this.tableHeaderModel.agGridI.controllerName, false);\r\n }\r\n undo() {\r\n if (this.tableHeaderModel.agGridI.serversidepagination == true)\r\n this.onReset.emit(false);\r\n else {\r\n // this.tableHeaderModel.isShowDeletedButtonVisible = true;\r\n // this.tableHeaderModel.isHideDeletedButtonVisible = false;\r\n // this.tableHeaderModel.isResetDeletedButtonVisible = false;\r\n this.getTabData(undefined,true);\r\n }\r\n }\r\n resetFilter() {\r\n if(this.tableHeaderModel.agGridI != undefined)\r\n {\r\n if (this.tableHeaderModel.agGridI.serversidepagination == true)\r\n this.onReset.emit(true);\r\n else {\r\n this.agGridService.\r\n resetAllFilters(this.tableHeaderModel.agGridI.initialRows,\r\n this.tableHeaderModel.agGridI.filterStorageName,\r\n this.tableHeaderModel.agGridI.gridName, this.tableHeaderModel.gridApi);\r\n }\r\n }\r\n this.customHeaderService.isResetFilterIcon.emit(true);\r\n }\r\n\r\n clearSort() {\r\n this.storageService.store(this.tableHeaderModel.agGridI.gridName, []);\r\n this.tableHeaderModel.agGridI.gridApi.columnApi.applyColumnState({\r\n defaultState: { sort: null },\r\n });\r\n if(this.tableHeaderModel.agGridI.gridName==StorageName.TRANSACTION_LEVEL_GRID || this.tableHeaderModel.agGridI.gridName==StorageName.FUND_LEVEL_GRID )\r\n this.onRemoveSort.emit(this.tableHeaderModel.agGridI.gridName);\r\n }\r\n\r\n onDeleteOrReset(type: number) {\r\n var selectedRows = this.tableHeaderModel.gridApi.api.getSelectedRows();\r\n if (selectedRows.length > 0)\r\n this.deleteOrReset(type, selectedRows);\r\n else\r\n this.notificationService.warningpopup(\"select atleast one item\");\r\n }\r\n\r\n onlockUnlockSelectedItem(isLocked: boolean) {\r\n var selectedRows = this.tableHeaderModel.gridApi.api.getSelectedRows();\r\n if (selectedRows.length > 0) {\r\n const selectedIds = selectedRows.map(({ id }) => id);\r\n this.commonTabService.lockUnlockRecords(isLocked, selectedIds)\r\n .subscribe((res) => {\r\n if (res.isSuccess) {\r\n this.toasterService.success(res.message, \"\", {\r\n timeOut: 1000\r\n });\r\n }\r\n else {\r\n this.notificationService.errorpopup(res.errors);\r\n }\r\n this.onReset.emit(false);\r\n });\r\n }\r\n else\r\n this.notificationService.warningpopup(\"select atleast one item\");\r\n }\r\n\r\n deleteOrReset(type: number, selectedRows: any) {\r\n if (type == 1) {\r\n let result = this.notificationService.deleteOrReset(type);\r\n result.subscribe(res => {\r\n if (res.isConfirmed) {\r\n this.processDelete(type, selectedRows);\r\n }\r\n });\r\n } else this.processDelete(type, selectedRows);\r\n }\r\n\r\n processDelete(type: number, selectedRows: any) {\r\n const selectedIds = selectedRows.map(({ id }) => id);\r\n this.commonTabService.delete(this.tableHeaderModel.agGridI.controllerName, type, selectedIds)\r\n .subscribe((res) => {\r\n if (res.isSuccess) \r\n this.toasterService.success(res.message, \"\", {timeOut: 1000});\r\n else \r\n this.notificationService.errorpopup(res.errors);\r\n if (this.tableHeaderModel.agGridI.serversidepagination == true)\r\n this.onDeleteRows.emit(type== 1 ? selectedRows.length : 0);\r\n else\r\n this.getTabData(undefined,false,true);\r\n });\r\n }\r\n\r\n processAfterDeleted(selectedRows : any) {\r\n this.tableHeaderModel.agGridI.gridApi.api.forEachNode((rowNode, index) => {\r\n var temp = rowNode.data;\r\n var newData = selectedRows.filter(a=>a.id ==temp.id) ;\r\n if(newData != undefined && newData.length >0)\r\n rowNode.setData(newData[0]);\r\n });\r\n var currentRows = this.tableHeaderModel.agGridI.gridApi.api.getModel().rowsToDisplay.map(a => a.data);\r\n this.storageService.store(this.tableHeaderModel.agGridI.initialRows, currentRows);\r\n }\r\n\r\n onShowDeleted() {\r\n this.storageService.store(this.tableHeaderModel.agGridI.showDeleteStatusStorageName, true);\r\n this.tableHeaderModel.isShowDeletedButtonVisible = false;\r\n this.tableHeaderModel.isHideDeletedButtonVisible = true;\r\n this.tableHeaderModel.isResetDeletedButtonVisible = true;\r\n if (this.tableHeaderModel.agGridI.serversidepagination === true || this.tableHeaderModel.agGridI.serversidepagination != undefined)\r\n this.showDeleted.emit(true);\r\n else\r\n this.getTabData(undefined,false,true);\r\n }\r\n onHideDeleted() {\r\n this.storageService.store(this.tableHeaderModel.agGridI.showDeleteStatusStorageName, false);\r\n this.tableHeaderModel.isShowDeletedButtonVisible = true;\r\n this.tableHeaderModel.isHideDeletedButtonVisible = false;\r\n this.tableHeaderModel.isResetDeletedButtonVisible = false;\r\n if (this.tableHeaderModel.agGridI.serversidepagination === true)\r\n this.showDeleted.emit(false);\r\n else\r\n this.getTabData(undefined,false,true);\r\n }\r\n\r\n getTabData(gridApi = undefined, undo : boolean = false, resetAfterDelete : boolean = false) {\r\n var ochangedData = this.storageService.retrieve(this.tableHeaderModel.agGridI.initialRows).filter(a => a.isEdited == true || a.isAdded == true);\r\n if((ochangedData!= undefined && ochangedData.length == 0) || resetAfterDelete == true || undo ==true)\r\n {\r\n if(this.tableHeaderModel.isAddNew==false){\r\n if (gridApi != undefined)\r\n gridApi.api.showLoadingOverlay();\r\n var showDeleted = this.storageService.retrieve(this.tableHeaderModel.agGridI.showDeleteStatusStorageName);\r\n if(showDeleted == undefined){\r\n showDeleted = true;\r\n this.storageService.store(this.tableHeaderModel.agGridI.showDeleteStatusStorageName,showDeleted);\r\n }\r\n this.setDeleteButtonVisibility(showDeleted);\r\n var masterId = this.storageService.retrieve(this.tableHeaderModel.agGridI.masterIdStorageName);\r\n this.commonTabService.getTabData(this.tableHeaderModel.agGridI.controllerName, masterId == undefined ? 0 : masterId, showDeleted)\r\n .subscribe((res) => {\r\n if (res.isSuccess) {\r\n var dataEdited = this.tableHeaderModel.agGridI.gridApi.api.getModel().rowsToDisplay.map(a => a.data)?.filter((row) => row.isEdited == true );\r\n this.storageService.store(this.tableHeaderModel.agGridI.initialRows, res.response);\r\n var filteredRows = this.agGridService.performFilter(this.tableHeaderModel.agGridI);\r\n this.tableHeaderModel.gridApi.api.setRowData(filteredRows);\r\n if(resetAfterDelete == true)\r\n this.processAfterDeleted(dataEdited);\r\n if(this.tableHeaderModel.agGridI.controllerName == \"Calculation Settings\" && filteredRows.length == 0)\r\n this.addRow();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n setDeleteButtonVisibility(showDeleted) {\r\n if (this.tableHeaderModel.agGridI.controllerName != \"Permission\") {\r\n this.tableHeaderModel.isShowDeletedButtonVisible = !showDeleted;\r\n this.tableHeaderModel.isHideDeletedButtonVisible = showDeleted;\r\n this.tableHeaderModel.isResetDeletedButtonVisible = showDeleted;\r\n }\r\n else {\r\n this.tableHeaderModel.isShowDeletedButtonVisible = false;\r\n this.tableHeaderModel.isHideDeletedButtonVisible = false;\r\n this.tableHeaderModel.isResetDeletedButtonVisible = false;\r\n }\r\n }\r\n flexibleHeight: string =\r\n \"min-height: calc(100vh - 228px) !important;max-height: calc(100vh - 350px) !important;\";\r\n showHideInputs() {\r\n var e = document.getElementById(\"ContentElement\")\r\n e?.classList?.toggle(\"hide\");\r\n if (e?.classList?.contains(\"hide\")) {\r\n this.flexibleHeight =\r\n \"min-height: calc(100vh - 141px) !important;max-height: calc(100vh - 141px) !important;\";\r\n } else {\r\n this.flexibleHeight =\r\n \"min-height: calc(100vh - 228px) !important;max-height: calc(100vh - 350px) !important;\";\r\n }\r\n this.collapse = !this.collapse;\r\n }\r\n\r\n showDetails(){this.onShowDetails.emit(this.tableHeaderModel.showDetails);}\r\n showSummary(){this.onShowSummary.emit(this.tableHeaderModel.showSummary);}\r\n includeDraftStatus(){this.onIncludeDraftStatus.emit(this.tableHeaderModel.includeDraftStatus);}\r\n showGraph(){this.onShowGraph.emit();}\r\n TransactionStatusFilter(status: number) {\r\n this.onTransactionStatusFilter.emit(status);\r\n }\r\n}\r\n","import { AgGridI } from \"../ag-grid/ag-grid.interface\";\r\nexport interface ITableHeaderItemVisibilityFields\r\n{\r\n isAddButtonVisible? : boolean ;\r\n isExportButtonVisible? : boolean ; \r\n isUndoButtonVisible? : boolean ;\r\n isResetFilterButtonVisible? : boolean ;\r\n isSoftDeleteButtonVisible? : boolean ;\r\n isPermanentDeleteButtonVisible? : boolean ;\r\n isShowDeletedButtonVisible? : boolean ;\r\n isHideDeletedButtonVisible? : boolean ;\r\n isResetDeletedButtonVisible? : boolean ;\r\n isExpandButtonVisible? : boolean ;\r\n isUnlockButtonVisible? : boolean ;\r\n isLockButtonVisible? : boolean ;\r\n isCalculationForm? : boolean ;\r\n isTransactionStatusButtonVisible? : boolean ;\r\n isTransactionFilterCheckboxVisible? : boolean ;\r\n isActiveFilter? : boolean ;\r\n isDeletedFilter? : boolean ;\r\n isLockedFilter? : boolean ;\r\n isDraftFilter? : boolean ;\r\n masterDataColumnName? : string ;\r\n masterDataValueName? : string ;\r\n}\r\nexport class TableHeaderModel {\r\n setVisibility(tableHeaderItemVisibilityFields : ITableHeaderItemVisibilityFields)\r\n {\r\n this.isExportButtonVisible = tableHeaderItemVisibilityFields.isExportButtonVisible ?? true ; \r\n this.isAddButtonVisible = tableHeaderItemVisibilityFields.isAddButtonVisible ?? true ;\r\n this.isUndoButtonVisible = tableHeaderItemVisibilityFields.isUndoButtonVisible ?? true ;\r\n this.isResetFilterButtonVisible = tableHeaderItemVisibilityFields.isResetFilterButtonVisible ?? true ;\r\n this.isSoftDeleteButtonVisible = tableHeaderItemVisibilityFields.isSoftDeleteButtonVisible ?? true ;\r\n this.isPermanentDeleteButtonVisible = tableHeaderItemVisibilityFields.isPermanentDeleteButtonVisible ?? true ;\r\n this.isShowDeletedButtonVisible = tableHeaderItemVisibilityFields.isShowDeletedButtonVisible ?? true ;\r\n this.isExpandButtonVisible = tableHeaderItemVisibilityFields.isExpandButtonVisible ?? true ;\r\n this.isUnlockButtonVisible = tableHeaderItemVisibilityFields.isUnlockButtonVisible ?? false ;\r\n this.isLockButtonVisible = tableHeaderItemVisibilityFields.isLockButtonVisible ?? false ;\r\n this.isHideDeletedButtonVisible = tableHeaderItemVisibilityFields.isHideDeletedButtonVisible ?? false ;\r\n this.isResetDeletedButtonVisible = tableHeaderItemVisibilityFields.isResetDeletedButtonVisible ?? false ;\r\n this.isCalculationForm = tableHeaderItemVisibilityFields.isCalculationForm ?? false ;\r\n this.isTransactionStatusButtonVisible = tableHeaderItemVisibilityFields.isTransactionStatusButtonVisible ?? false ;\r\n this.isTransactionFilterCheckboxVisible = tableHeaderItemVisibilityFields.isTransactionFilterCheckboxVisible ?? false ;\r\n this.isActiveFilter = tableHeaderItemVisibilityFields.isActiveFilter ?? false ;\r\n this.isDeletedFilter = tableHeaderItemVisibilityFields.isDeletedFilter ?? false ;\r\n this.isDraftFilter = tableHeaderItemVisibilityFields.isDraftFilter ?? false ;\r\n this.isLockedFilter = tableHeaderItemVisibilityFields.isLockedFilter ?? false ;\r\n }\r\n\r\n isAddButtonVisible : boolean ;\r\n isExportButtonVisible : boolean ;\r\n // isExportButtonVisible1 : boolean ;\r\n isUndoButtonVisible : boolean ;\r\n isResetFilterButtonVisible : boolean ;\r\n isSoftDeleteButtonVisible : boolean ;\r\n isPermanentDeleteButtonVisible : boolean ;\r\n isShowDeletedButtonVisible : boolean ;\r\n isHideDeletedButtonVisible : boolean ;\r\n isResetDeletedButtonVisible : boolean ;\r\n isExpandButtonVisible : boolean ;\r\n isUnlockButtonVisible : boolean ;\r\n isLockButtonVisible : boolean ;\r\n agGridI : AgGridI ;\r\n gridApi : any ;\r\n canModify : boolean = false;\r\n canDelete : boolean = false;\r\n isAddNew : boolean = false;\r\n\r\n//for calculation form\r\n showDetails : boolean = true;\r\n showSummary : boolean = false;\r\n includeDraftStatus : boolean = false;\r\n isCalculationForm : boolean = false;\r\n isTransactionStatusButtonVisible : boolean = false;\r\n isTransactionFilterCheckboxVisible : boolean = false;\r\n isActiveFilter : boolean = false; \r\n isDeletedFilter : boolean = false; \r\n isLockedFilter : boolean = false; \r\n isDraftFilter : boolean = false; \r\n isGraohButtonVisible : boolean = false;\r\n masterDataColumnName : string ;\r\n masterDataValueName : string ;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n@NgModule({\r\n declarations: [\r\n // CheckboxComponent,\r\n // IconsComponent, \r\n ],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class TableHeaderButtonModule { }\r\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[autofocus]'\r\n})\r\nexport class AutofocusDirective {\r\n constructor(private host: ElementRef) { }\r\n\r\n ngAfterViewInit() {\r\n this.host.nativeElement.focus();\r\n }\r\n}","import { Directive, ElementRef, HostListener, OnDestroy, Renderer2 } from '@angular/core';\r\n\r\nexport enum KEY_CODE {\r\n ENTER = 39,\r\n}\r\n\r\n@Directive({\r\n selector: '[appEntercell]'\r\n})\r\nexport class EntercellDirective implements OnDestroy {\r\n\r\n\r\n constructor(private el: ElementRef, renderer: Renderer2) {\r\n\r\n }\r\n\r\n @HostListener('window:keydown.enter', ['$event'])\r\n handleKeyDown(event: KeyboardEvent) {\r\n let element = this.el.nativeElement;\r\n let datatablebodycell = element.closest('datatable-body-cell');\r\n if (datatablebodycell) {\r\n datatablebodycell.focus()//.click();//classList.add('active');\r\n }\r\n element.blur();\r\n event.stopPropagation();\r\n }\r\n\r\n public ngOnDestroy() {\r\n }\r\n\r\n}\r\n","import { Directive, HostBinding, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[onlyNumbers]'\r\n})\r\nexport class OnlyNumbersDirective {\r\n @HostBinding('autocomplete') public autocomplete;\r\n\r\n constructor() {\r\n this.autocomplete = 'off';\r\n }\r\n\r\n @HostListener('keypress', ['$event']) public disableKeys(e) {\r\n document.all ? e.keyCode : e.keyCode;\r\n return (e.keyCode == 8 || (e.keyCode >= 48 && e.keyCode <= 57));\r\n }\r\n}\r\n","import { CursorError } from '@angular/compiler/src/ml_parser/lexer';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { LoginService } from 'src/app/pages/login/login.service';\r\nimport { StorageName } from '../common/enum';\r\nimport { CommonTabService } from '../services/common-tab.service';\r\nimport { StorageService } from '../services/storage.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private loginService: LoginService,\r\n private storageService: StorageService,\r\n private commonService: CommonTabService,\r\n ) {}\r\n\r\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n //let currentUser = this.storageService.retrieve(StorageName.CURRENTUSER).loginUserDataModel ?? this.storageService.retrieve(StorageName.CURRENTUSER);\r\n const currentUser = this.loginService.currentUserValue;\r\n if (currentUser && currentUser.isQueSet == true) {\r\n if(!this.router.navigated && !route.data.formname)\r\n {\r\n if(currentUser.permissions == null || currentUser.permissions == undefined)\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }});\r\n //get permission on refresh\r\n const source$ = this.commonService.getById(StorageName.PERMISSION_CONTROLLER, parseInt(currentUser.permissions.role.id), false);\r\n const res = await firstValueFrom(source$);\r\n currentUser.permissions = res.response;\r\n this.storageService.store(StorageName.CURRENTUSER, currentUser);\r\n }\r\n // check if route is restricted by role\r\n if (route.data.formname) {\r\n \r\n var formPermission = currentUser.permissions.formPermissions.find(x => x.formName == route.data.formname);\r\n this.storageService.store(StorageName.CURRENT_FORM_PERMISSION, formPermission);\r\n if(!formPermission || formPermission.viewPermission == false) {\r\n // role not authorised so redirect to home page\r\n this.router.navigate(['/access-denied']);\r\n return false;\r\n }\r\n }\r\n\r\n // authorised so return true\r\n return true;\r\n }\r\n\r\n // not logged in so redirect to login page with the return url\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }});\r\n return false;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRouteSnapshot, CanDeactivate, NavigationEnd, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport Swal from 'sweetalert2';\r\nimport { CommonTabService } from '../services/common-tab.service';\r\nimport { NotificationService } from '../services/notification.service';\r\nimport { StorageService } from '../services/storage.service';\r\nimport { StorageName } from '../common/enum';\r\nexport interface ComponentCanDeactivate {\r\n canDeactivate: () => boolean | Observable;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DiretyCheckGuard implements CanDeactivate {\r\n\r\n private $destroy: Subject = new Subject();\r\n private redirectTo: string = '';\r\n private selfCall: boolean = false;\r\n\r\n constructor(\r\n private router: Router,\r\n public commonTabService: CommonTabService,\r\n public dialog: MatDialog,\r\n private notificationService: NotificationService,\r\n private storageService: StorageService\r\n ) {\r\n router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.$destroy.next();\r\n }\r\n });\r\n }\r\n\r\n canDeactivate(\r\n component: ComponentCanDeactivate,\r\n currentRoute: ActivatedRouteSnapshot,\r\n currentState: RouterStateSnapshot,\r\n nextState?: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n var confirmationSaveClicked = this.router.getCurrentNavigation().extras?.state?.confirmationSaveClicked;\r\n if (confirmationSaveClicked) {\r\n return true;\r\n }\r\n if (this.selfCall) {\r\n this.selfCall = false;\r\n return true;\r\n }\r\n else {\r\n this.redirectTo = decodeURI(nextState ? nextState.url : currentState.url);\r\n return component.canDeactivate ? (component.canDeactivate() ? true : this.openConfirmDialog()) : true;\r\n }\r\n }\r\n\r\n openConfirmDialog() {\r\n var formPermission = this.storageService.retrieve(StorageName.CURRENT_FORM_PERMISSION);\r\n //check if user don't have modify rihgts then no need to open open confirm dialog\r\n if (formPermission && formPermission.modifyPermission ) {\r\n \r\n this.notificationService.openConfirmDialog().subscribe((result) => {\r\n if (result.isDenied) {\r\n this.selfCall = true;\r\n this.router.navigate([this.redirectTo]);\r\n }\r\n else if (result.isConfirmed) {\r\n this.commonTabService.saveBeforeClose(); \r\n this.$destroy.next();\r\n this.commonTabService.setredirectUrlAfterSave(this.redirectTo);\r\n }\r\n })\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { NotificationService } from '../services/notification.service';\r\nimport { GlobalService } from '../services/global.service';\r\n\r\n@Injectable()\r\nexport class ErrorHandlerInterceptor implements HttpInterceptor {\r\n\r\n constructor(private notificationService: NotificationService,\r\n private globalservice: GlobalService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(\r\n catchError((error) => {\r\n this.notificationService.errorpopup(error.message, error.error?.title);\r\n this.globalservice.deactivateLoader();\r\n return throwError(error.message);\r\n })\r\n );\r\n }\r\n}\r\n","export class DropdownModel {\r\n name: string;\r\n id: string;\r\n color? : string= \"\";\r\n hoverColor?: string= \"\";\r\n}\r\n \r\nexport class FundList {\r\n id: number;\r\n fundName: string;\r\n}\r\n\r\nexport class AllInvestorVehicle {\r\n vehicleInvestorName: string;\r\n id: number;\r\n }\r\n\r\nexport class PositionList {\r\n id: number;\r\n positionName: string;\r\n positionGUID: string;\r\n}\r\n\r\nexport class InvestorList {\r\n investorName: string;\r\n id: number;\r\n}\r\n\r\nexport class InvestmentList {\r\n investmentName: string;\r\n investmentGUID: number;\r\n id: number;\r\n}\r\n\r\nexport class TierListModel {\r\n id: number;\r\n tierName: string;\r\n}\r\n\r\nexport class CalcRuleList {\r\n id: number;\r\n calcRuleName: string;\r\n}","export enum GroupOp {\r\n AND = 0,\r\n OR = 1\r\n}\r\n\r\nexport enum Operations {\r\n eq, // \"equal\"\r\n ne, // \"not equal\"\r\n lt, // \"less\"\r\n le, // \"less or equal\"\r\n gt, // \"greater\"\r\n ge, // \"greater or equal\"\r\n bw, // \"between\"\r\n bn, // \"does not begin with\"\r\n ew, // \"ends with\"\r\n en, // \"does not end with\"\r\n cn, // \"contains\"\r\n nc // \"does not contain\"\r\n}\r\n\r\nexport class Rule {\r\n field: string;\r\n op: Operations\r\n data: string\r\n}\r\n\r\nexport class Group {\r\n groupOp: string;\r\n rules: Rule[];\r\n}\r\n\r\nexport class Filters {\r\n constructor() {\r\n this.rules = [];\r\n this.groups = [];\r\n }\r\n rules: Rule[];\r\n groups: Group[];\r\n}","export class Pagination {\r\n page: number;\r\n count: number;\r\n pageSize: number;\r\n totalPages: number;\r\n fromRecordNumber: number;\r\n toRecordNumber: number;\r\n\r\n constructor(\r\n page?: number,\r\n count?: number,\r\n pageSize?: number,\r\n totalPages?: number\r\n ) {\r\n this.page = page;\r\n this.count = count;\r\n this.pageSize = pageSize;\r\n this.totalPages = totalPages;\r\n }\r\n}\r\n\r\nexport const defaultPageLimit = 25;\r\n\r\nexport class PaginationModelCommon {\r\n page: number = 1;\r\n pageSize: number = defaultPageLimit;\r\n totalPages: number ;\r\n count: number ;\r\n getAll: boolean = false;\r\n id : string = \"0\"\r\n}\r\n\r\nexport const pageLimitOptions = [\r\n { value: 25 },\r\n { value: 50 },\r\n { value: 75 },\r\n];","export class CommonFilterModel {\r\n columnName: string;\r\n ids: string;\r\n}\r\n\r\nexport class CommonFilter {\r\n type: string;\r\n textFilterValue : string = \"\";\r\n tableFilterValues: CommonFilterModel[];\r\n}\r\n\r\nexport class FilterModel {\r\n name: string;\r\n id: string;\r\n}\r\n\r\nexport class MainFilterModel {\r\n columnName: string;\r\n}\r\n\r\nexport enum AllColumnName {\r\n InvestorGroup = 'Investor Group',\r\n Investor = 'Investor',\r\n Investment = 'Investment',\r\n Position = 'Position',\r\n Status = 'Status',\r\n CalcRule = 'Calc Rule',\r\n TransferType = 'Transfer Type',\r\n TransferDate = 'Transfer Date',\r\n Fund = 'Fund',\r\n FundName = 'Fund Name'\r\n}\r\n\r\n\r\n\r\nexport interface Result {\r\n data: any;\r\n new(): Result;\r\n isSuccess: boolean;\r\n message: string;\r\n response: any;\r\n totalRecords: number;\r\n errors: string[];\r\n statusCode: number;\r\n\r\n}\r\n\r\n","import { DatePipe } from '@angular/common';\r\nimport { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';\r\nimport { DATE_FORMAT } from '../common/constant';\r\n\r\n@Pipe({\r\n name: 'mydate'\r\n})\r\nexport class MydatePipe implements PipeTransform {\r\n\r\n constructor(private datePipe: DatePipe,\r\n @Inject(LOCALE_ID) public locale: string) {\r\n this.locale = 'en-US'\r\n }\r\n\r\n transform(value: Date | number | string, ...options: string[]): string {\r\n return this.datePipe.transform(value, DATE_FORMAT);\r\n }\r\n\r\n getUsersLocale(): string {\r\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\r\n return this.locale;\r\n }\r\n const wn = window.navigator as any;\r\n let lang = wn.languages ? wn.languages[0] : this.locale;\r\n lang = lang || wn.language || wn.browserLanguage || wn.userLanguage;\r\n return lang;\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject, Observable, tap } from 'rxjs';\r\nimport { LoginService } from 'src/app/pages/login/login.service';\r\nimport { TransactionFilterCriteriaModel } from 'src/app/pages/transactions/tier-transactions/tier-transactions.model';\r\nimport { Result } from 'src/app/shared/model/response.model';\r\nimport { DataService } from 'src/app/shared/services/data.service';\r\nimport { StorageName } from '../common/enum';\r\nimport { StorageService } from './storage.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonTabService {\r\n onSaveBeforeClose = new EventEmitter();\r\n private redirectUrlAfterSave: BehaviorSubject;\r\n\r\n constructor(private service: DataService\r\n , private storageService: StorageService\r\n , public loginService: LoginService\r\n , private router: Router) {\r\n this.redirectUrlAfterSave = new BehaviorSubject(null);\r\n }\r\n\r\n updateDropdown(dropdownName: string, storageName: string) {\r\n let roleid = this.getRoleid();\r\n //let url = '/Dropdown/GetfilterDropdown/' + dropdownName;\r\n let url = '/Dropdown/GetfilterDropdown?formname='+ dropdownName + '&roleid='+ roleid;\r\n return this.service.get(url).pipe(tap((res: any) => {\r\n console.log(res)\r\n this.storageService.store(storageName, res.response);\r\n }))\r\n }\r\n\r\n public post(controllerName: string, data: any): Observable {\r\n let url = '/' + controllerName;\r\n return this.service.post(url, data).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n\r\n public get(formName: string, data: any): Observable {\r\n let url = '/' + formName;\r\n return this.service.post(url, data).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n\r\n public getById(formName: string, id: number, showDeleted: boolean): Observable {\r\n let roleid = this.getRoleid();\r\n let url = '/' + formName + '?Id=' + id + '&showDeleted=' + showDeleted+'&roleId='+roleid;\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n\r\n public getfilterDropdown(formName: string): Observable {\r\n let roleid = this.getRoleid();\r\n //let url = '/Dropdown/GetfilterDropdown/' + formName;\r\n let url = '/Dropdown/GetfilterDropdown?formname='+ formName + '&roleid='+ roleid;\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n\r\n public getCalcFilterDropdownByFundId(fundId: string): Observable {\r\n let roleid = this.getRoleid();\r\n //let url = '/Dropdown/GetfilterDropdown/' + formName;\r\n let url = '/Dropdown/getCalcFilterDropdownByFundId?fundId='+ fundId;\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n\r\n public getPermissionByGroupAndDomain(fundGroupId,domainId): Observable {\r\n if(fundGroupId != undefined && domainId != undefined)\r\n {\r\n let roleid = this.getRoleid();\r\n let url = '/permission/getPermissionByGroupAndDomain?roleid='+ roleid+'&fundGroupId='+ fundGroupId+'&domainId='+ domainId;\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n else\r\n return null\r\n }\r\n\r\n public getAllDropdowns(formname: string): Observable {\r\n let roleid = this.getRoleid();\r\n //let url = '/Dropdown/getAllDropdowns/' + formname;\r\n let url = '/Dropdown/getAllDropdowns?formname=' + formname + '&roleid='+ roleid;\r\n return this.service.get(url).pipe(tap((response: any) => {\r\n var fundModel = response.response;\r\n switch (formname) {\r\n case \"Funds\":\r\n this.storageService.store(StorageName.FUND_DROPDOWN, fundModel.fundDropdown);\r\n this.storageService.store(StorageName.FUND_TYPE_DROPDOWN, fundModel.fundTypeDropdown);\r\n this.storageService.store(StorageName.CURRENCY_DROPDOWN, fundModel.currencyDropdown);\r\n this.storageService.store(StorageName.FUND_GROUP_DROPDOWN, fundModel.fundGroupDropdown);\r\n this.storageService.store(StorageName.DOMAIN_DROPDOWN, fundModel.domainDropdown);\r\n this.storageService.store(StorageName.INVESTOR_GROUP_DROPDOWN, fundModel.investorGroupDropdown);\r\n this.storageService.store(StorageName.INVESTOR_DROPDOWN, fundModel.investorDropdown);\r\n this.storageService.store(StorageName.INVESTMENT_DROPDOWN, fundModel.investmentDropdown);\r\n this.storageService.store(StorageName.VEHICLE_INVESTOR_DROPDOWN, fundModel.vehicleInvestorDropdown);\r\n this.storageService.store(StorageName.POSITION_GRID_DROPDOWN, fundModel.positionDropdown);\r\n this.storageService.store(StorageName.CARRY_PARTNER_DESIGNATION_LEVEL_GRID_DROPDOWN, fundModel.carryPtrDesignationDropdown);\r\n this.storageService.store(StorageName.CALCULATION_LEVEL_GRID_DROPDOWN, fundModel.allocCalcLevelDropdown);\r\n this.storageService.store(StorageName.TRANSFER_TYPE_GRID_DROPDOWN, fundModel.transferTypeDropdown);\r\n this.storageService.store(StorageName.STATUS_GRID_DROPDOWN, fundModel.statusDropdown);\r\n this.storageService.store(StorageName.FILTERFUND_DROPDOWN, fundModel.filterFundDropdown);\r\n break;\r\n case \"Investors\": \r\n this.storageService.store(StorageName.FUND_DROPDOWN, fundModel.fundDropdown);\r\n this.storageService.store(StorageName.INVESTOR_DROPDOWN, fundModel.investorDropdown);\r\n this.storageService.store(StorageName.INVESTOR_GROUP_DROPDOWN, fundModel.investorGroupDropdown);\r\n this.storageService.store(StorageName.INVESTOR_CLASSIFICATION_DROPDOWN, fundModel.investorClassificationDropdown);\r\n break;\r\n case \"Investments\":\r\n this.storageService.store(StorageName.FUND_DROPDOWN, fundModel.fundDropdown);\r\n this.storageService.store(StorageName.INVESTMENT_DROPDOWN, fundModel.investmentDropdown);\r\n this.storageService.store(StorageName.POSITION_GRID_DROPDOWN, fundModel.positionDropdown);\r\n this.storageService.store(StorageName.CURRENCY_DROPDOWN, fundModel.currencyDropdown);\r\n this.storageService.store(StorageName.INVESTMENT_GROUP_DROPDOWN, fundModel.investmentGroupDropdown);\r\n this.storageService.store(StorageName.INVESTMENT_CLASSIFICATION_DROPDOWN, fundModel.investmentClassificationDropdown);\r\n break;\r\n case \"Positions\":\r\n this.storageService.store(StorageName.POSITION_DROPDOWN, fundModel.positionFormDropdown);\r\n break;\r\n\r\n case \"Transactions\":\r\n this.storageService.store(StorageName.FUND_DROPDOWN, fundModel.fundDropdown);\r\n this.storageService.store(StorageName.FILTERFUND_DROPDOWN, fundModel.filterFundDropdown);\r\n this.storageService.store(StorageName.INVESTOR_DROPDOWN, fundModel.investorDropdown);\r\n this.storageService.store(StorageName.INVESTMENT_DROPDOWN, fundModel.investmentDropdown);\r\n this.storageService.store(StorageName.POSITION_GRID_DROPDOWN, fundModel.positionDropdown);\r\n this.storageService.store(StorageName.TIER_DROPDOWN, fundModel.tierDropdown);\r\n this.storageService.store(StorageName.INVESTOR_GROUP_DROPDOWN, fundModel.investorGroupDropdown);\r\n this.storageService.store(StorageName.TRANSACTION_FILTER_DROPDOWN, fundModel.transactionFilterDropdown);\r\n this.storageService.store(StorageName.STATUS_GRID_DROPDOWN, fundModel.statusDropdown);\r\n break;\r\n case \"Calculations\":\r\n this.storageService.store(StorageName.CALCULATION_DROPDOWN, fundModel.calculationDropdown);\r\n this.storageService.store(StorageName.FUND_DROPDOWN, fundModel.fundDropdown);\r\n this.storageService.store(StorageName.INVESTMENT_DROPDOWN, fundModel.investmentDropdown);\r\n this.storageService.store(StorageName.CALCULATIONRULE_DROPDOWN, fundModel.calculationRuleDropdown);\r\n this.storageService.store(StorageName.POSITION_GRID_DROPDOWN, fundModel.positionDropdown);\r\n this.storageService.store(StorageName.CALCULATION_STATE_DROPDOWN, fundModel.calculationStateDropdown);\r\n this.storageService.store(StorageName.STATUS_GRID_DROPDOWN, fundModel.statusDropdown);\r\n this.storageService.store(StorageName.CALCULATION_TYPE_DROPDOWN, fundModel.calcTypeDropdown);\r\n this.storageService.store(StorageName.SUB_ACT_DROPDOWN, fundModel.subActDropdown);\r\n this.storageService.store(StorageName.LOCK_UNLOCK_STATUS_DROPDOWN, fundModel.lockUnlockStatusDropdown);\r\n this.storageService.store(StorageName.TIER_DROPDOWN, fundModel.tierDropdown);\r\n this.storageService.store(StorageName.OPERATOR_DROPDOWN, fundModel.operatorDropdown);\r\n this.storageService.store(StorageName.CALCULATION_LEVEL_DROPDOWN, fundModel.calculationLevelDropdown);\r\n this.storageService.store(StorageName.ALLOCATE_DROPDOWN, fundModel.allocateDropdown);\r\n this.storageService.store(StorageName.INVESTOR_GROUP_DROPDOWN, fundModel.investorGroupDropdown);\r\n break;\r\n case \"Reports\":\r\n this.storageService.store(StorageName.CALCULATIONRULE_DROPDOWN, fundModel.calculationRuleDropdown);\r\n this.storageService.store(StorageName.FUND_DROPDOWN, fundModel.fundDropdown);\r\n this.storageService.store(StorageName.REPORT_DROPDOWN, fundModel.reportDropdown);\r\n fundModel.reportTypeDropdown.forEach(element => {\r\n element.id = parseInt(element.id);\r\n });\r\n this.storageService.store(StorageName.REPORT_TYPE_DROPDOWN, fundModel.reportTypeDropdown);\r\n break;\r\n case \"CalculationRules\":\r\n this.storageService.store(StorageName.CALCULATIONRULE_DROPDOWN, fundModel.calculationRuleDropdown);\r\n this.storageService.store(StorageName.CALCULATION_GROUP_DROPDOWN, fundModel.calculationGroupDropdown);\r\n this.storageService.store(StorageName.PERFORMANCERULE_DROPDOWN, fundModel.prefRetRuleDropdown);\r\n this.storageService.store(StorageName.TIER_DROPDOWN, fundModel.tierDropdown);\r\n var systemTierNames = fundModel.tierDropdown.filter(a=>a.color != '' && a.color != null).map(a=>a.name).join(',');\r\n this.storageService.store(StorageName.NON_STSTEM_TIER_DROPDOWN, fundModel.nonSystemTierDropdown);\r\n this.storageService.store(StorageName.SYSTEM_TIERS, systemTierNames);\r\n this.storageService.store(StorageName.SUB_ACT_DROPDOWN, fundModel.subActDropdown);\r\n this.storageService.store(StorageName.HURDLE_DROPDOWN, fundModel.hurdleDropdown);\r\n this.storageService.store(StorageName.ROLLUP_LEVEL_DROPDOWN , fundModel.rollupLevelDropdown);\r\n this.storageService.store(StorageName.NUMERATOR_DENOMINATOR_DROPDOWN , fundModel.numeratorDenominatorDropdown);\r\n this.storageService.store(StorageName.FILTER_FIELD_DROPDOWN, fundModel.filterFieldDropdown);\r\n this.storageService.store(StorageName.FILTER_CRITERIA_DROPDOWN, fundModel.filterCriteriaDropdown);\r\n this.storageService.store(StorageName.OPERATOR_DROPDOWN, fundModel.operatorDropdown);\r\n this.storageService.store(StorageName.ALLOCATE_DROPDOWN, fundModel.allocateDropdown);\r\n this.storageService.store(StorageName.APPLY_FOR_DROPDOWN, fundModel.applyForDropdown);\r\n this.storageService.store(StorageName.INCLUDE_IN_BALANCE_DROPDOWN, fundModel.includeInBalanceDropdown);\r\n \r\n break;\r\n case \"Tiers\":\r\n this.storageService.store(StorageName.TIER_DROPDOWN, fundModel.tierDropdown);\r\n this.storageService.store(StorageName.FUND_GROUP_DROPDOWN, fundModel.fundGroupDropdown);\r\n this.storageService.store(StorageName.SUB_ACT_DROPDOWN, fundModel.subActDropdown);\r\n break;\r\n case \"PerformanceRules\":\r\n this.storageService.store(StorageName.PERFORMANCERULE_DROPDOWN, fundModel.prefRetRuleDropdown);\r\n this.storageService.store(StorageName.TIER_DROPDOWN, fundModel.tierDropdown);\r\n this.storageService.store(StorageName.CATCHUP_TYPE_DROPDOWN, fundModel.catchupMethodDropdown);\r\n this.storageService.store(StorageName.DAY_BASIS_SETTING_DROPDOWN, fundModel.dayBasisSettingDropdown);\r\n this.storageService.store(StorageName.CALCULATION_TYPE_DROPDOWN, fundModel.calcTypeDropdown);\r\n this.storageService.store(StorageName.NUMERATOR_DENOMINATOR_DROPDOWN, fundModel.numeratorDenominatorDropdown);\r\n break;\r\n case \"Permissions\":\r\n this.storageService.store(StorageName.PERMISSION_DROPDOWN, fundModel.permissionRoleDropdown);\r\n break;\r\n case \"Roles\":\r\n this.storageService.store(StorageName.ROLE_DROPDOWN, fundModel.roleDropdown);\r\n break;\r\n case \"Users\":\r\n this.storageService.store(StorageName.ROLE_DROPDOWN, fundModel.roleDropdown);\r\n this.storageService.store(StorageName.USER_GRID_DROPDOWN, fundModel.userDropdown);\r\n this.storageService.store(StorageName.USER_DROPDOWN, fundModel.userFormDropdown);\r\n break;\r\n case \"User Defined Fields\":\r\n break;\r\n case \"Lookups\":\r\n this.storageService.store(StorageName.LOOKUP_DROPDOWN, fundModel.lookupDropdown);\r\n break;\r\n case \"Dashboard\":\r\n this.storageService.store(StorageName.IMPORT_TYPE_DROPDOWN, fundModel.importTypeDropdown);\r\n this.storageService.store(StorageName.CALCULATION_DROPDOWN, fundModel.calculationDropdown);\r\n this.storageService.store(StorageName.FUND_DROPDOWN, fundModel.fundDropdown);\r\n this.storageService.store(StorageName.STATUS_GRID_DROPDOWN, fundModel.statusDropdown);\r\n // default:\r\n\r\n // this.storageService.store(StorageName.PREF_RET_RULE_DROPDOWN, fundModel.prefRetRuleDropdown );\r\n // this.storageService.store(StorageName.ROLLUP_LEVEL_DROPDOWN, fundModel.rollupLevelDropdown );\r\n // this.storageService.store(StorageName.PERMISSION_ROLE_DROPDOWN, fundModel.permissionRoleDropdown );\r\n\r\n break;\r\n }\r\n }))\r\n }\r\n\r\n public getFundfilterDropdown(transactionFilterCriteria: TransactionFilterCriteriaModel): Observable {\r\n //let roleid = this.getRoleid();\r\n //let url = '/Dropdown/getAllDropdowns/' + formname;\r\n let url = '/Dropdown/GetFundfilterDropdown';\r\n return this.service.post(url, transactionFilterCriteria, true).pipe(tap((response: any) => {\r\n var fundModel = response.response;\r\n //this.storageService.store(StorageName.FUND_DROPDOWN, fundModel.fundDropdown);\r\n //this.storageService.store(StorageName.FILTERFUND_DROPDOWN, fundModel.filterFundDropdown);\r\n this.storageService.store(StorageName.FUNDFILTER_INVESTOR_DROPDOWN, fundModel.fundFilterInvestorDropdown);\r\n this.storageService.store(StorageName.FUNDFILTER_INVESTMENT_DROPDOWN, fundModel.fundFilterInvestmentDropdown);\r\n this.storageService.store(StorageName.FUNDFILTER_POSITION_GRID_DROPDOWN, fundModel.fundFilterPositionDropdown);\r\n this.storageService.store(StorageName.FUNDFILTER_INVESTOR_GROUP_DROPDOWN, fundModel.fundFilterInvestorGroupDropdown);\r\n //this.storageService.store(StorageName.FUNDFILTER_TIER_DROPDOWN, fundModel.fundFilterTierDropdown);\r\n //this.storageService.store(StorageName.TRANSACTION_FILTER_DROPDOWN, fundModel.transactionFilterDropdown);\r\n //this.storageService.store(StorageName.STATUS_GRID_DROPDOWN, fundModel.statusDropdown);\r\n }))\r\n }\r\n\r\n public delete(controllerName: string, type: number, data: number[]): Observable {\r\n var json = { list: data, deleteType: type, formname: controllerName }\r\n let url = '/deleteRecord';\r\n return this.service.post(url, json).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n\r\n public getTabData(controllerName: string, id: number, showDeleted: any): Observable {\r\n let roleid = this.getRoleid();\r\n var json = { formName: controllerName, id: id, showDeleted: showDeleted, roleid : roleid }\r\n let url = '/RelationalRecord/';\r\n return this.service.post(url, json).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n\r\n public lockUnlockRecords(locked: boolean, data: number[]): Observable {\r\n var json = { list: data, isLocked: locked }\r\n let url = '/Transaction/LockTransactions';\r\n return this.service.post(url, json).pipe(tap((response: any) => {\r\n return response;\r\n }))\r\n }\r\n\r\n saveBeforeClose() {\r\n this.onSaveBeforeClose.emit();\r\n }\r\n\r\n getRoleid() {\r\n let roleid = 0;\r\n const currentUser = this.loginService.currentUserValue;\r\n if (currentUser && currentUser.permissions) {\r\n roleid = parseInt(currentUser.permissions.role.id);\r\n }\r\n return roleid;\r\n }\r\n\r\n\r\n getUserid() {\r\n var userId =\"\";\r\n const currentUser = this.loginService.currentUserValue;\r\n if (currentUser) {\r\n userId =currentUser.userName;\r\n }\r\n return userId;\r\n }\r\n\r\n\r\n\r\n\r\n // public get getredirectUrlAfterSave(): string {\r\n // return this.redirectUrlAfterSave.value;\r\n // }\r\n\r\n public setredirectUrlAfterSave(value: string) {\r\n this.redirectUrlAfterSave.next(value);\r\n }\r\n\r\n checkRedirectUrlAfterSave() {\r\n // redirect after save on save button click of confirmation popup\r\n const redirectUrl = this.redirectUrlAfterSave.value;\r\n if (redirectUrl) {\r\n this.router.navigate([redirectUrl], { state: { confirmationSaveClicked: true } });\r\n this.setredirectUrlAfterSave(null);\r\n }\r\n }\r\n \r\n}","import { Injectable, Renderer2 } from '@angular/core';\r\nimport { PaginationModel } from 'src/app/pages/fund-information/fund-information.model';\r\nimport {\r\n defaultPageLimit, pageLimitOptions,\r\n Pagination\r\n} from '../model/pagination.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CommonService {\r\n public readonly pageLimitOptions = pageLimitOptions;\r\n selectedPageLimit: number = defaultPageLimit;\r\n maxTotalPage: number = 0;\r\n goToPageNumber: number;\r\n pagination: Pagination = new Pagination(0, 0, this.selectedPageLimit);\r\n\r\n paginationModel = new PaginationModel();\r\n totalRecords: number = 0;\r\n\r\n // ngxDatatableSSRConfig = new NgxDatatableSSRConfig();\r\n\r\n constructor(\r\n public renderer2: Renderer2\r\n ) {\r\n this.paginationModel.page = 0;\r\n this.paginationModel.pageSize = 25;\r\n }\r\n\r\n //#region Delete Data\r\n\r\n // delete(controllerName : string,model : any)\r\n // {\r\n\r\n // }\r\n\r\n\r\n\r\n //#endregion\r\n\r\n //#region Pagination\r\n\r\n handlePageChange(event: any): void {\r\n this.pagination.page = event.offset;\r\n this.paginationModel.page = this.pagination.page\r\n\r\n this.updatePaginationObject();\r\n // this.PaginationGetById();\r\n }\r\n\r\n onLimitChange(event: any): void {\r\n this.pagination.pageSize = parseInt(event.toString());\r\n this.paginationModel.pageSize = this.pagination.pageSize\r\n\r\n this.updatePaginationObject();\r\n // this.PaginationGetById();\r\n }\r\n\r\n goToPage(event: any): void {\r\n if (this.goToPageNumber >= 0) {\r\n if (this.goToPageNumber > this.maxTotalPage) {\r\n //todo: show message \r\n this.pagination.page = this.maxTotalPage - 1;\r\n this.paginationModel.page = this.pagination.page;\r\n }\r\n else {\r\n this.pagination.page = this.goToPageNumber - 1;\r\n this.paginationModel.page = this.pagination.page\r\n }\r\n this.updatePaginationObject();\r\n }\r\n // this.PaginationGetById();\r\n }\r\n\r\n updatePaginationData(rows: any) {\r\n this.totalRecords = rows?.length;\r\n this.updatePaginationObject()\r\n }\r\n\r\n private updatePaginationObject() {\r\n this.pagination.count = this.totalRecords\r\n this.maxTotalPage = Math.ceil(this.pagination.count / this.pagination.pageSize);\r\n this.pagination.fromRecordNumber = (this.pagination.page * this.pagination.pageSize) + 1\r\n this.pagination.toRecordNumber = ((this.pagination.page * this.pagination.pageSize) + this.pagination.pageSize > this.pagination.count) ? this.pagination.count\r\n : (this.pagination.page * this.pagination.pageSize) + this.pagination.pageSize\r\n this.goToPageNumber = this.pagination.page + 1;\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n onUserEvent(e, rows, editing) {\r\n if (e.type == \"click\" || e.type == \"keydown\") {\r\n let that = this;\r\n const keyupenter$ = this.renderer2.listen(e.cellElement, \"keyup.enter\", event => {\r\n event.stopImmediatePropagation();\r\n if (keyupenter$) {\r\n keyupenter$();\r\n }\r\n let ele = event.target.nextElementSibling\r\n console.log(\"ele: \", event);\r\n if (ele) {\r\n ele.focus();\r\n ele.click();\r\n }\r\n });\r\n const keyupspace$ = this.renderer2.listen(e.cellElement, \"keydown.space\", event => {\r\n event.stopImmediatePropagation();\r\n if (keyupspace$) {\r\n keyupspace$();\r\n }\r\n console.log(\"data:\", e);\r\n let rowIndex = rows.findIndex(x => x.id == e.row.id);\r\n if (rowIndex > -1)\r\n editing[rowIndex + '-' + e.column.name] = true;\r\n });\r\n }\r\n }\r\n\r\n isNumber(str: string): boolean {\r\n if (typeof str !== 'string') {\r\n return false;\r\n }\r\n \r\n if (str.trim() === '') {\r\n return false;\r\n }\r\n \r\n return !Number.isNaN(Number(str));\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpClient,\r\n HttpHeaders\r\n} from \"@angular/common/http\";\r\nimport {\r\n Observable,\r\n throwError\r\n} from 'rxjs';\r\nimport {\r\n catchError,\r\n tap\r\n} from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { SecurityService } from './security.service';\r\nimport { environment } from 'src/environments/environment';\r\nconst baseUrl = environment.API_BASE_PATH;\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataService {\r\n constructor(\r\n private http: HttpClient,\r\n private securityService: SecurityService,\r\n public router: Router\r\n ) { }\r\n public get(url: string, params?: any, isEnableLoader: boolean = true): Observable {\r\n return this.doGet(baseUrl + url, false, params, isEnableLoader);\r\n //return this.doPost(baseUrl+url, data, false, params);\r\n }\r\n post(url: string, data: any, params?: any, isEnableLoader: boolean = true): Observable {\r\n return this.doPost(baseUrl + url, data, false, params, isEnableLoader);\r\n //return this.doPost(baseUrl+url, data, false, params);\r\n }\r\n postWithFormData(url: string, data: any, params?: any, isEnableLoader: boolean = true): Observable {\r\n return this.doPostWithMultipart(baseUrl + url, data, false, params, isEnableLoader);\r\n //return this.doPost(baseUrl+url, data, false, params);\r\n }\r\n postWithId(url: string, data: any, params?: any, isEnableLoader: boolean = true): Observable {\r\n return this.doPost(baseUrl + url, data, true, params, isEnableLoader);\r\n //return this.doPost(baseUrl+url, data, true, params);\r\n }\r\n putWithId(url: string, data: any, params?: any, isEnableLoader: boolean = true): Observable {\r\n return this.doPut(baseUrl + url, data, true, params, isEnableLoader);\r\n // return this.doPut(baseUrl+url, data, true, params);\r\n }\r\n private doGet(url: string, needId: boolean = false, params?: any, isEnableLoader: boolean = true): Observable {\r\n this.securityService.checkSessionTimeout();\r\n let headers = new HttpHeaders();\r\n headers.append('Content-Type', 'application/json');\r\n headers.append('Accept', 'application/json');\r\n let httpOptions = {\r\n headers: headers\r\n };\r\n //httpOptions = this.securityService.setHeaders(true);\r\n return this.http.get(url, httpOptions)\r\n .pipe(\r\n // retry(3), // retry a failed request up to 3 times\r\n tap((res: Response) => {\r\n return res;\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n private doPostWithMultipart(url: string, data: any, needId: boolean, params?: any, isEnableLoader: boolean = true): Observable {\r\n this.securityService.checkSessionTimeout();\r\n return this.http.post(url, data)\r\n .pipe(\r\n tap((res: Response) => {\r\n return res;\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private doPost(url: string, data: any, needId: boolean, params?: any, isEnableLoader: boolean = true): Observable {\r\n let httpOptions = {\r\n headers: new HttpHeaders()\r\n };\r\n httpOptions = this.securityService.setHeaders(needId);\r\n return this.http.post(url, data, httpOptions)\r\n .pipe(\r\n tap((res: Response) => {\r\n return res;\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n public delete(url: string, params?: any, isEnableLoader: boolean = true) {\r\n let httpOptions = {\r\n headers: new HttpHeaders()\r\n };\r\n httpOptions = this.securityService.setHeaders(true);\r\n this.http.delete(url, httpOptions)\r\n .subscribe((res) => {\r\n });\r\n }\r\n private doPut(url: string, data: any, needId: boolean, params?: any, isEnableLoader: boolean = true): Observable {\r\n let httpOptions = {\r\n headers: new HttpHeaders()\r\n };\r\n httpOptions = this.securityService.setHeaders(true);\r\n\r\n return this.http.put(baseUrl + url, data, httpOptions)\r\n .pipe(\r\n tap((res: Response) => {\r\n return res;\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n private handleError(error: any) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('Client side network error occurred:', error.error.message);\r\n }\r\n else {\r\n console.error('Backend - ' +\r\n `status: ${error?.status}, ` +\r\n `statusText: ${error?.statusText}, ` +\r\n `message: ${error?.error?.message}`);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError(error || 'server error');\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { saveAs } from 'file-saver';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportService {\r\n constructor() { }\r\n\r\n export(data: any) {\r\n\r\n // this.saveFile(data[0].headerData)\r\n // var blob;\r\n var link = document.createElement(\"a\");\r\n if (link.download != 'undefined') {\r\n \r\n //header file\r\n \r\n // blob = window.atob(data.headerData);\r\n link.href = 'data:text/xlsm;charset=utf-8;base64,' + data[0].headerData;\r\n link.target = '_blank';\r\n link.download = data[0].fileName+'.xlsm';\r\n link.click();\r\n \r\n }\r\n \r\n }\r\n\r\n saveFile(data) {\r\n saveAs(data, `filename.xlsx`)\r\n}\r\n\r\n exportFile(url: any) {\r\n var blob;\r\n var link = document.createElement(\"a\");\r\n if (link.download != 'undefined') {\r\n \r\n //header file\r\n\r\n link.href = url;\r\n link.target = '_blank';\r\n link.download = 'test'+'.xlsx';\r\n link.click();\r\n \r\n }\r\n \r\n}\r\n exportMultiple(data: any) {\r\n data.forEach(async object => {\r\n var blob;\r\n var link = document.createElement(\"a\");\r\n if (link.download != 'undefined') {\r\n \r\n //header file\r\n \r\n blob = window.atob(object.headerData);\r\n link.href = 'data:text/xlsx;charset=utf-8;base64,' + object.headerData;\r\n link.target = '_blank';\r\n link.download = object.fileName+'.xlsx';\r\n link.click();\r\n \r\n }\r\n });\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GlobalService {\r\n private readonly _loaderComponent = new BehaviorSubject(false);\r\n readonly isActivatedLoader$ = this._loaderComponent.asObservable();\r\n get isActivatedLoader(): boolean {\r\n return this._loaderComponent.getValue();\r\n }\r\n activateLoader(): void {\r\n this._loaderComponent.next(true);\r\n }\r\n deactivateLoader(): void {\r\n this._loaderComponent.next(false);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HeaderTitleService {\r\n private readonly _title = new BehaviorSubject(\"\");\r\n readonly _title$ = this._title.asObservable();\r\n get title(): string {\r\n return this._title.getValue();\r\n }\r\n set title(title: string) {\r\n this._title.next(title);\r\n }\r\n // title: string = '';\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport Swal, { SweetAlertResult } from 'sweetalert2';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n constructor() { }\r\n sucesspopup(message) {\r\n Swal.fire({\r\n position: 'top-right',\r\n width: 350,\r\n heightAuto: false,\r\n icon: 'success',\r\n text: message,\r\n showConfirmButton: false,\r\n timer: 1500\r\n })\r\n }\r\n //error with confirmbutton.\r\n errorpopup(message, title = null) {\r\n Swal.fire({\r\n title: '',\r\n html: message,\r\n icon: 'error',\r\n width: 350\r\n }).then((result) => { });\r\n // Swal.fire({\r\n // title: title,\r\n // position: 'center',\r\n // text: \"\",\r\n // html: message,\r\n // width: 350,\r\n // heightAuto: false,\r\n // // timer: 1500,\r\n // // showConfirmButton: false,\r\n // icon: 'error'\r\n // });\r\n }\r\n //\r\n warningpopup(message) {\r\n Swal.fire({\r\n title: '',\r\n html: message,\r\n position: 'center',\r\n width: 350,\r\n heightAuto: false,\r\n // timer: 1500,\r\n // showConfirmButton: false,\r\n icon: 'warning'\r\n });\r\n }\r\n deletepopup(): Observable {\r\n var subject = new Subject();\r\n Swal.fire({\r\n position: 'center',\r\n text: 'Are you sure you want to delete this item?',\r\n showDenyButton: true,\r\n width: 350,\r\n confirmButtonText: 'Yes',\r\n denyButtonText: `No`,\r\n }).then((result) => {\r\n subject.next(result);\r\n })\r\n return subject.asObservable();\r\n }\r\n deleteOrReset(type) {\r\n var subject = new Subject();\r\n var deleteTypeString = \"\";\r\n var confirmButtonString = \"Yes, delete it!\";\r\n switch (type) {\r\n case 1:\r\n deleteTypeString = \"

You won't be able to revert this!

\";\r\n break;\r\n case 2:\r\n deleteTypeString = \"This item will be temporarily deleted\"\r\n break;\r\n case 3:\r\n deleteTypeString = \"You are going to RESET temporary deleted items\"\r\n confirmButtonString = \"Yes, reset it!\"\r\n break;\r\n }\r\n Swal.fire({\r\n title: 'Are you sure?',\r\n html: deleteTypeString,\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: confirmButtonString,\r\n cancelButtonText: 'No, cancel!',\r\n width: 350\r\n }).then((result) => {\r\n subject.next(result);\r\n // if (result.isConfirmed) {\r\n // } \r\n // else if (result.isDenied) \r\n // this.notificationService.warningpopup(\"Changes are not saved\");\r\n });\r\n return subject.asObservable();\r\n }\r\n\r\n openConfirmDialog() {\r\n var subject = new Subject();\r\n Swal.fire({\r\n title: 'Proceed without Saving?',\r\n text: \"You have unsaved changes\",\r\n icon: 'question',\r\n showDenyButton: true,\r\n showCancelButton: true,\r\n confirmButtonText: 'Save',\r\n denyButtonText: `Don't save`,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonText: 'Cancel!',\r\n width: 350\r\n }).then((result) => {\r\n subject.next(result);\r\n });\r\n return subject.asObservable();\r\n }\r\n\r\n openImportSuccessDialog(msg : string) {\r\n var subject = new Subject();\r\n Swal.fire({\r\n title: 'File upload process',\r\n text:msg,\r\n icon: 'info',\r\n showDenyButton: false,\r\n showCancelButton: false,\r\n confirmButtonText: 'Ok',\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonText: 'Cancel!',\r\n width: 350\r\n }).then((result) => {\r\n subject.next(result);\r\n });\r\n return subject.asObservable();\r\n }\r\n}\r\n","import { LoginService } from './../../pages/login/login.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Inject, Injectable, Injector } from '@angular/core';\r\nimport { HttpClient, \r\n HttpHeaders } from '@angular/common/http';\r\nimport { Subject } from 'rxjs';\r\nimport { StorageService } from './storage.service';\r\nimport { StorageName } from '../common/enum';\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\nexport class SecurityService \r\n{\r\n private headers : HttpHeaders;\r\n private storage : StorageService;\r\n private authenticationSource = new Subject();\r\n authenticationChallenge$ = this.authenticationSource.asObservable();\r\n private authorityUrl = '';\r\n private sessionTimeout: number = 30 * 60 * 1000; // 30sec in milliseconds\r\n public loginService;\r\n constructor(\r\n private _http: HttpClient, \r\n private _router: Router, \r\n private route: ActivatedRoute, \r\n private _storageService: StorageService,\r\n private Injector:Injector\r\n ) \r\n {\r\n this.headers = new HttpHeaders();\r\n this.headers.append('Content-Type', 'application/json');\r\n this.headers.append('Accept', 'application/json');\r\n this.storage = _storageService;\r\n if (this.storage.retrieve('IsAuthorized') !== '') \r\n {\r\n this.IsAuthorized = this.storage.retrieve('IsAuthorized');\r\n this.authenticationSource.next(true);\r\n this.UserData = this.storage.retrieve('userData');\r\n }\r\n }\r\n public IsAuthorized: boolean;\r\n public GetToken(): any \r\n {\r\n return this.storage.retrieve('authorizationDataIdToken');\r\n }\r\n public ResetAuthorizationData() \r\n {\r\n this.storage.store('authorizationDataIdToken', '');\r\n this.IsAuthorized = false;\r\n this.storage.store('IsAuthorized', false);\r\n }\r\n public UserData: any;\r\n public SetAuthorizationData(token: any, id_token: any) \r\n {\r\n if (this.storage.retrieve('authorizationDataIdToken') !== '') {\r\n this.storage.store('authorizationDataIdToken', '');\r\n }\r\n this.storage.store('authorizationDataIdToken', id_token);\r\n this.IsAuthorized = true;\r\n this.storage.store('IsAuthorized', true);\r\n }\r\n \r\n \r\n public Logoff() \r\n {\r\n let authorizationUrl = this.authorityUrl + '/connect/endsession';\r\n let id_token_hint = this.storage.retrieve('authorizationDataIdToken');\r\n let post_logout_redirect_uri = location.origin + '/';\r\n let url =\r\n authorizationUrl + '?' +\r\n 'id_token_hint=' + encodeURI(id_token_hint) + '&' +\r\n 'post_logout_redirect_uri=' + encodeURI(post_logout_redirect_uri);\r\n this.ResetAuthorizationData();\r\n // emit observable\r\n this.authenticationSource.next(false);\r\n window.location.href = url;\r\n }\r\n public HandleError(error: any) \r\n {\r\n if (error.status == 403) \r\n {\r\n this._router.navigate(['/Forbidden']);\r\n }\r\n else if (error.status == 401) \r\n {\r\n // this.ResetAuthorizationData();\r\n this._router.navigate(['/Unauthorized']);\r\n }\r\n }\r\n private urlBase64Decode(str: string) \r\n {\r\n let output = str.replace('-', '+').replace('_', '/');\r\n switch (output.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n output += '==';\r\n break;\r\n case 3:\r\n output += '=';\r\n break;\r\n default:\r\n throw 'Illegal base64url string!';\r\n }\r\n return window.atob(output);\r\n }\r\n private getDataFromToken(token: any) \r\n {\r\n let data = {};\r\n if (typeof token !== 'undefined') {\r\n let encoded = token.split('.')[1];\r\n \r\n data = JSON.parse(this.urlBase64Decode(encoded));\r\n }\r\n return data;\r\n }\r\n \r\n public setHeaders(needId:boolean): any \r\n {\r\n this.checkSessionTimeout(); // for session Timeout check\r\n const httpOptions = {\r\n headers: new HttpHeaders()\r\n };\r\n\r\n httpOptions.headers = httpOptions.headers.set('Content-Type', 'application/json');\r\n return httpOptions;\r\n }\r\n\r\n checkSessionTimeout() {\r\n var data = this._router.url;\r\n if(data == \"/\" || data == \"/login\")\r\n {\r\n return;\r\n }\r\n \r\n var IsAuthenticated = this._storageService.retrieve(StorageName.Authenticated);\r\n if(!IsAuthenticated)\r\n {\r\n this.loginService = this.Injector.get(LoginService);\r\n if (this.loginService != undefined) \r\n \r\n this.loginService.logout();\r\n this._storageService.store(StorageName.Authenticated,false);\r\n this._router.navigate(['/login']);\r\n return;\r\n }\r\n \r\n \r\n // const currentTime = Date.now();\r\n let lastActivityTime = this._storageService.retrieve(StorageName.LASTACTIVITYTIME)??0;\r\n if (lastActivityTime === 0) {\r\n // First-time initialization, set lastActivityTime to the current time.\r\n this._storageService.store(StorageName.LASTACTIVITYTIME,Date.now());\r\n lastActivityTime = Date.now();\r\n }\r\n \r\n if ((Date.now() - lastActivityTime > this.sessionTimeout)) {\r\n // The session has timed out; perform logout and redirection.\r\n this.loginService = this.Injector.get(LoginService);\r\n if (this.loginService != undefined) {\r\n this.loginService.logout();\r\n this._storageService.store(StorageName.Authenticated,false);\r\n this._router.navigate(['/login']);\r\n return;\r\n } else {\r\n // If loginService is not available, just reset lastActivityTime.\r\n // this.lastActivityTime = currentTime;\r\n this._storageService.store(StorageName.LASTACTIVITYTIME,Date.now());\r\n this._storageService.store(StorageName.Authenticated,true);\r\n \r\n }\r\n } else {\r\n // Update lastActivityTime to the current time to extend the session.\r\n // this.lastActivityTime = currentTime;\r\n this._storageService.store(StorageName.LASTACTIVITYTIME,Date.now());\r\n this._storageService.store(StorageName.Authenticated,true);\r\n }\r\n \r\n \r\n }\r\n \r\n}","import { Injectable } from '@angular/core';\r\n@Injectable\r\n ({\r\n providedIn: 'root'\r\n })\r\nexport class StorageService {\r\n // isLoading = false;\r\n private storage: any;\r\n constructor() {\r\n this.storage = localStorage;//sessionStorage; // localStorage;\r\n }\r\n public retrieve(key: string): any {\r\n let item = this.storage.getItem(key);\r\n if (item && item !== 'undefined') {\r\n return JSON.parse(this.storage.getItem(key));\r\n }\r\n return;\r\n }\r\n public store(key: string, value: any) {\r\n this.storage.setItem(key, JSON.stringify(value));\r\n }\r\n public clear() {\r\n this.storage.clear();\r\n }\r\n public removeItem(key: string) {\r\n this.storage.removeItem(key);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport {\r\n MatNativeDateModule,\r\n MatRippleModule,\r\n MAT_DATE_FORMATS\r\n} from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { DataService } from './services/data.service';\r\nimport {\r\n MatMomentDateModule,\r\n MAT_MOMENT_DATE_ADAPTER_OPTIONS\r\n} from '@angular/material-moment-adapter';\r\nimport { OnlyNumbersDirective } from './directives/only-numbers.directive';\r\nimport { AutofocusDirective } from './directives/autofocus.directive';\r\nimport { MY_DATE_FORMATS } from './common/my-date-formats';\r\nimport { SortComponent } from './component/sort/sort.component';\r\nimport { MydatePipe } from './pipes/mydate.pipe';\r\nimport { EntercellDirective } from './directives/entercell.directive';\r\nimport { CustomeFilterComponent } from './component/custome-filter/custome-filter.component';\r\nimport { CustomeHeaderComponent } from './component/custome-header/custome-header.component';\r\nimport { AgGridComponent } from './component/ag-grid/ag-grid.component';\r\nimport { TableHeaderButtonsComponent } from './component/table-header-buttons/table-header-buttons.component';\r\nimport { TableHeaderButtonModule } from './component/table-header-buttons/table-header-buttons.module';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\nimport { IconModule } from './component/actions/icon.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CellEditorComponent } from './component/cell-editor/cell-editor.component';\r\nimport { MultiselectDropdownModule } from 'src/app/shared/component/multiselect-dropdown/multiselect-dropdown.module';\r\nimport { DatepickerComponent } from './component/datepicker/datepicker.component';\r\nimport { DatepickerEditorComponent } from './component/datepicker-editor/datepicker-editor.component';\r\nimport { RunComponent } from './component/run/run.component';\r\nimport { CheckboxRendererComponent } from './component/checkbox-renderer/checkbox-renderer.component';\r\nimport { NumericeditorComponent } from './component/numericeditor/numericeditor.component';\r\nimport { NumericValueEditorComponent } from './component/numeric-value-editor/numeric-value-editor.component';\r\nimport { FilterComponent } from './component/filter/filter/filter.component';\r\nimport { PageHeaderComponent } from './component/page-header/page-header.component';\r\nimport { CustomInputControlComponent } from './component/custom-input-control/custom-input-control.component';\r\nimport { Select2Module } from 'ng-select2-component';\r\nimport { CellEditorTransactionComponent } from './component/cell-editor-transaction/cell-editor-transaction.component';\r\nimport { PageHeaderImportFormComponent } from './component/page-header-import-form/page-header-import-form.component';\r\n\r\n@NgModule({\r\n imports: [\r\n AgGridModule,\r\n Select2Module,\r\n TableHeaderButtonModule,\r\n FormsModule,\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatStepperModule,\r\n MatMomentDateModule,\r\n IconModule,\r\n FormsModule,\r\n MultiselectDropdownModule\r\n ],\r\n\r\n providers: [\r\n DataService, { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },\r\n { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS },\r\n DatePipe,\r\n MydatePipe\r\n ],\r\n\r\n exports: [\r\n FlexLayoutModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatStepperModule,\r\n OnlyNumbersDirective,\r\n AutofocusDirective,\r\n EntercellDirective,\r\n SortComponent,\r\n MydatePipe,\r\n AgGridComponent,\r\n TableHeaderButtonsComponent,\r\n PageHeaderComponent,\r\n PageHeaderImportFormComponent,\r\n CustomInputControlComponent\r\n ],\r\n\r\n declarations: [\r\n OnlyNumbersDirective,\r\n AutofocusDirective,\r\n SortComponent,\r\n MydatePipe,\r\n EntercellDirective,\r\n CustomeFilterComponent,\r\n CustomeHeaderComponent,\r\n AgGridComponent,\r\n TableHeaderButtonsComponent,\r\n CellEditorComponent,\r\n CellEditorTransactionComponent,\r\n DatepickerComponent,\r\n DatepickerEditorComponent,\r\n RunComponent,\r\n CheckboxRendererComponent,\r\n NumericeditorComponent,\r\n NumericValueEditorComponent,\r\n FilterComponent,\r\n PageHeaderComponent,\r\n PageHeaderImportFormComponent,\r\n CustomInputControlComponent\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-applications',\r\n templateUrl: './applications.component.html',\r\n styleUrls: ['./applications.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ApplicationsComponent implements OnInit {\r\n\r\n constructor(){ }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}","import { Component } from '@angular/core';\r\nimport { ActivatedRoute, Router, ActivatedRouteSnapshot, UrlSegment, NavigationEnd } from \"@angular/router\"; \r\nimport { Title } from '@angular/platform-browser';\r\nimport { AppSettings } from '../../../app.settings';\r\nimport { Settings } from '../../../app.settings.model';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss']\r\n})\r\nexport class BreadcrumbComponent {\r\n\r\n public pageTitle:string;\r\n public breadcrumbs: {\r\n name: string;\r\n url: string\r\n }[] = [];\r\n\r\n public settings: Settings;\r\n constructor(public appSettings:AppSettings,\r\n public router: Router, \r\n public activatedRoute: ActivatedRoute, \r\n public title:Title){\r\n this.settings = this.appSettings.settings; \r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n this.breadcrumbs = []; \r\n this.parseRoute(this.router.routerState.snapshot.root); \r\n this.pageTitle = \"\";\r\n this.breadcrumbs.forEach(breadcrumb => {\r\n this.pageTitle += ' > ' + breadcrumb.name;\r\n }) \r\n this.title.setTitle(this.settings.name + this.pageTitle);\r\n }\r\n }) \r\n }\r\n\r\n private parseRoute(node: ActivatedRouteSnapshot) { \r\n if (node.data['breadcrumb']) {\r\n if(node.url.length){\r\n let urlSegments: UrlSegment[] = [];\r\n node.pathFromRoot.forEach(routerState => {\r\n urlSegments = urlSegments.concat(routerState.url);\r\n });\r\n let url = urlSegments.map(urlSegment => {\r\n return urlSegment.path;\r\n }).join('/');\r\n this.breadcrumbs.push({\r\n name: node.data['breadcrumb'],\r\n url: '/' + url\r\n }) \r\n } \r\n }\r\n if (node.firstChild) {\r\n this.parseRoute(node.firstChild);\r\n }\r\n }\r\n\r\n public closeSubMenus(){\r\n let menu = document.querySelector(\".sidenav-menu-outer\");\r\n if(menu){\r\n for (let i = 0; i < menu.children[0].children.length; i++) {\r\n let child = menu.children[0].children[i];\r\n if(child){\r\n if(child.children[0].classList.contains('expanded')){\r\n child.children[0].classList.remove('expanded');\r\n child.children[1].classList.remove('show');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AppSettings } from '../../../app.settings';\r\nimport { Settings } from '../../../app.settings.model';\r\n\r\n@Component({\r\n selector: 'app-flags-menu',\r\n templateUrl: './flags-menu.component.html',\r\n styleUrls: ['./flags-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FlagsMenuComponent implements OnInit {\r\n\r\n public settings: Settings;\r\n constructor(public appSettings:AppSettings){\r\n this.settings = this.appSettings.settings; \r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Component, ViewEncapsulation, ViewChild, HostListener, ElementRef} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-fullscreen',\r\n encapsulation: ViewEncapsulation.None,\r\n template: `\r\n \r\n `\r\n})\r\nexport class FullScreenComponent { \r\n toggle:boolean = false;\r\n @ViewChild('expand') private expand:ElementRef;\r\n @ViewChild('compress') private compress:ElementRef; \r\n \r\n requestFullscreen(elem) {\r\n if (elem.requestFullscreen) {\r\n elem.requestFullscreen();\r\n } else if (elem.webkitRequestFullscreen) {\r\n elem.webkitRequestFullscreen();\r\n } else if (elem.mozRequestFullScreen) {\r\n elem.mozRequestFullScreen();\r\n } else if (elem.msRequestFullscreen) {\r\n elem.msRequestFullscreen();\r\n } else {\r\n }\r\n };\r\n\r\n exitFullscreen() {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (document.webkitExitFullscreen) {\r\n document.webkitExitFullscreen();\r\n } else if (document.mozCancelFullScreen) {\r\n document.mozCancelFullScreen();\r\n } else if (document.msExitFullscreen) {\r\n document.msExitFullscreen();\r\n } else {\r\n }\r\n };\r\n\r\n @HostListener('click') getFullscreen(){\r\n if(this.expand){\r\n this.requestFullscreen(document.documentElement);\r\n }\r\n if(this.compress){\r\n this.exitFullscreen();\r\n }\r\n }\r\n\r\n @HostListener('window:resize') onFullScreenChange(){\r\n let fullscreenElement = document.fullscreenElement || document.mozFullScreenElement ||\r\n document.webkitFullscreenElement || document.msFullscreenElement;\r\n if (fullscreenElement != null) {\r\n this.toggle = true;\r\n } else {\r\n this.toggle = false; \r\n }\r\n } \r\n\r\n}","import { Menu } from './../menu.model';\r\nimport {\r\n Component,\r\n OnInit,\r\n Input,\r\n ViewChild,\r\n ViewEncapsulation,\r\n EventEmitter,\r\n Output,\r\n} from \"@angular/core\";\r\nimport {\r\n Router,\r\n NavigationEnd\r\n} from \"@angular/router\";\r\nimport { AppSettings } from \"../../../../app.settings\";\r\nimport { Settings } from \"../../../../app.settings.model\";\r\nimport { MenuService } from \"../menu.service\";\r\nimport { MatMenuTrigger } from \"@angular/material/menu\";\r\nimport { FundInformationService } from \"src/app/pages/fund-information/fund-information.service\";\r\nimport { FundsComponent } from \"src/app/pages/fund-information/funds/funds.component\";\r\nimport { AppComponent } from \"src/app/app.component\";\r\nimport { NotificationService } from \"src/app/shared/services/notification.service\";\r\nimport { LoginService } from 'src/app/pages/login/login.service';\r\n\r\n@Component({\r\n selector: \"app-horizontal-menu\",\r\n templateUrl: \"./horizontal-menu.component.html\",\r\n styleUrls: [\"./horizontal-menu.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [MenuService, FundsComponent, AppComponent],\r\n})\r\nexport class HorizontalMenuComponent implements OnInit {\r\n @Input(\"menuParentId\") menuParentId;\r\n @Output() id = new EventEmitter();\r\n @Output() onClickMenuItem: EventEmitter = new EventEmitter();\r\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\r\n\r\n public menuItems: Array;\r\n public settings: Settings;\r\n\r\n constructor(\r\n public appSettings: AppSettings,\r\n public menuService: MenuService,\r\n public fundInformationService: FundInformationService,\r\n public router: Router,\r\n public NotificationService: NotificationService,\r\n public loginService: LoginService,\r\n ) {\r\n this.settings = this.appSettings.settings;\r\n }\r\n\r\n ngOnInit() {\r\n this.menuItems = this.menuService.HorizontalMenu();\r\n \r\n //filter menu based on permission\r\n const currentUser = this.loginService.currentUserValue;\r\n var menuItemspermission = [];\r\n if (currentUser && currentUser.permissions) {\r\n //this.menuItems = this.menuItems.map(function (element) { \r\n for (let element of this.menuItems) {\r\n var vmenu = this.menuService.getVerticalMenuById(element.id);\r\n if(vmenu.menuItems.length > 0) {\r\n element.routerLink = vmenu.menuItems[0].routerLink;\r\n }\r\n \r\n element['allowed'] = element.title == 'Home' || element.title == 'Dashboard'||\r\n currentUser.permissions.formPermissions.findIndex(x => \r\n x.formName == element.title && x.viewPermission == true) >= 0;\r\n\r\n //return element;\r\n menuItemspermission.push(element);\r\n }\r\n this.menuItems = menuItemspermission.filter(x => x['allowed'] == true);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n if (this.settings.fixedHeader) {\r\n let mainContent = document.getElementById(\"main-content\");\r\n if (mainContent) {\r\n mainContent.scrollTop = 0;\r\n }\r\n } else {\r\n document.getElementsByClassName(\"mat-drawer-content\")[0].scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n onClick(menu: Menu) {\r\n document.getElementById(\"Fund Information\").classList.remove(\"ActiveMenu\");\r\n document.getElementById(\"Transactions\").classList.remove(\"ActiveMenu\")\r\n document.getElementById(\"Calculation Rule Library\").classList.remove(\"ActiveMenu\");\r\n document.getElementById(\"Administration\").classList.remove(\"ActiveMenu\")\r\n this.onClickMenuItem.emit(menu);\r\n }\r\n}\r\n","export class Menu {\r\n constructor(public id: number,\r\n public title: string,\r\n public routerLink: string,\r\n public icon: string,\r\n public target: string,\r\n public hasSubMenu: boolean,\r\n public parentId: number,\r\n public allowSideBar: boolean = false) { }\r\n} ","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\nimport { Menu } from \"./menu.model\";\r\nimport {\r\n getAdministrationVMenu,\r\n getCalculationRuleLibraryVMenu,\r\n getFundInformationVMenu,\r\n getHorizontalMenu,\r\n getTransactionVMenu,\r\n} from \"./menu\";\r\nimport { LoginService } from \"src/app/pages/login/login.service\";\r\n\r\n@Injectable()\r\nexport class MenuService {\r\n constructor(private location: Location, private router: Router, public loginService: LoginService) { }\r\n\r\n public HorizontalMenu(): Array {\r\n return getHorizontalMenu;\r\n }\r\n public FundInformationVMenu(): Array {\r\n return getFundInformationVMenu;\r\n }\r\n public TransactionVMenu(): Array {\r\n return getTransactionVMenu;\r\n }\r\n public CalculationRuleLibraryVMenu(): Array {\r\n return getCalculationRuleLibraryVMenu;\r\n }\r\n public AdministrationVMenu(): Array {\r\n return getAdministrationVMenu;\r\n }\r\n\r\n public expandActiveSubMenu(menu: Array) {\r\n let url = this.location.path();\r\n let routerLink = url; // url.substring(1, url.length);\r\n let activeMenuItem = menu.filter((item) => item.routerLink === routerLink);\r\n if (activeMenuItem[0]) {\r\n let menuItem = activeMenuItem[0];\r\n while (menuItem.parentId != 0) {\r\n let parentMenuItem = menu.filter(\r\n (item) => item.id == menuItem.parentId\r\n )[0];\r\n menuItem = parentMenuItem;\r\n this.toggleMenuItem(menuItem.id);\r\n }\r\n }\r\n }\r\n\r\n public toggleMenuItem(menuId) {\r\n let menuItem = document.getElementById(\"menu-item-\" + menuId);\r\n let subMenu = document.getElementById(\"sub-menu-\" + menuId);\r\n if (subMenu) {\r\n if (subMenu.classList.contains(\"show\")) {\r\n subMenu.classList.remove(\"show\");\r\n menuItem.classList.remove(\"expanded\");\r\n } else {\r\n subMenu.classList.add(\"show\");\r\n menuItem.classList.add(\"expanded\");\r\n }\r\n }\r\n }\r\n\r\n public closeOtherSubMenus(menu: Array, menuId) {\r\n let currentMenuItem = menu.filter((item) => item.id == menuId)[0];\r\n if (currentMenuItem.parentId == 0 && !currentMenuItem.target) {\r\n menu.forEach((item) => {\r\n if (item.id != menuId) {\r\n let subMenu = document.getElementById(\"sub-menu-\" + item.id);\r\n let menuItem = document.getElementById(\"menu-item-\" + item.id);\r\n if (subMenu) {\r\n if (subMenu.classList.contains(\"show\")) {\r\n subMenu.classList.remove(\"show\");\r\n menuItem.classList.remove(\"expanded\");\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getMenuByRouteUrl(url) {\r\n if (url) {\r\n if (url === \"/dashboard\") {\r\n return this.HorizontalMenu()[0];\r\n }\r\n \r\n if (\r\n url === \"/funds\" ||\r\n url === \"/funds/fund\" ||\r\n url === \"/funds/investors\" ||\r\n url === \"/funds/investments\" ||\r\n url === \"/funds/positions\" ||\r\n url === \"/funds/imports\"\r\n ) {\r\n return this.HorizontalMenu()[1];\r\n }\r\n\r\n if (\r\n url === \"/transactions\" ||\r\n url === \"/transactions/tier-transactions\" ||\r\n url === \"/transactions/import-transactions\"\r\n ) {\r\n return this.HorizontalMenu()[2];\r\n }\r\n\r\n if (url === \"/calculation\") {\r\n return this.HorizontalMenu()[3];\r\n }\r\n\r\n if (url === \"/reporting\") {\r\n return this.HorizontalMenu()[4];\r\n }\r\n if (\r\n url === \"/calculation-rules-library\" ||\r\n url === \"/calculation-rules-library/calculation-rules\" ||\r\n url === \"/calculation-rules-library/performance-rules\" ||\r\n url === \"/calculation-rules-library/tiers\"\r\n ) {\r\n return this.HorizontalMenu()[5];\r\n }\r\n if (\r\n url === \"/administration\" ||\r\n url === \"/administration/permissions\" ||\r\n url === \"/administration/roles\" ||\r\n url === \"/administration/users\" ||\r\n url === \"/administration/user-defined-fields\" ||\r\n url === \"/administration/lookups\"\r\n ) {\r\n return this.HorizontalMenu()[6];\r\n }\r\n // return this.HorizontalMenu().find(x => url.includes(x.routerLink))\r\n }\r\n return null;\r\n }\r\n\r\n setActiveMenu(menuName)\r\n {\r\n this.HorizontalMenu()[3].routerLink = \"\\reports\"\r\n\r\n }\r\n\r\n public getHorizontalMenuById(menuId) {\r\n if (menuId > 0) {\r\n return this.HorizontalMenu().find((x) => x.id == menuId);\r\n }\r\n return null;\r\n }\r\n\r\n public getVerticalMenuById(id) {\r\n var menuItems = [];\r\n var headerTitle = '';\r\n let menu = this.getHorizontalMenuById(id);\r\n switch (id) {\r\n case 2:\r\n {\r\n menuItems = this.FundInformationVMenu();\r\n headerTitle = 'Fund Admin';\r\n break;\r\n }\r\n case 3:\r\n {\r\n menuItems = this.TransactionVMenu();\r\n headerTitle = menu.title;\r\n break;\r\n }\r\n case 6:\r\n {\r\n menuItems = this.CalculationRuleLibraryVMenu();\r\n headerTitle = 'Calc. Rules Library';\r\n break;\r\n }\r\n case 7:\r\n {\r\n menuItems = this.AdministrationVMenu();\r\n headerTitle = menu.title;\r\n break;\r\n }\r\n default:\r\n {\r\n //this.parentMenu = [];\r\n menuItems = [];\r\n }\r\n }\r\n\r\n //filter menu based on permission\r\n const currentUser = this.loginService.currentUserValue;\r\n if (currentUser && currentUser.permissions) {\r\n menuItems = menuItems.filter(function (element) {\r\n return currentUser.permissions.formPermissions.findIndex(x =>\r\n x.formName == element.title && x.viewPermission == true) >= 0;\r\n });\r\n }\r\n\r\n return { menuItems, headerTitle };\r\n }\r\n\r\n}\r\n","import { Menu } from './menu.model';\r\n\r\nexport const getFundInformationVMenu = [\r\n\r\n new Menu(21, 'Funds', '/funds/fund', 'gesture', null, false, 0),\r\n new Menu(22, 'Investors', '/funds/investors', 'price_change', null, false, 0),\r\n new Menu(23, 'Investments', '/funds/investments', 'attach_money', null, false, 0),\r\n new Menu(24, 'Positions', '/funds/positions', 'hotel_class', null, false, 0),\r\n new Menu(25, 'Import', '/funds/imports', 'download', null, false, 0),\r\n\r\n];\r\n\r\nexport const getTransactionVMenu = [\r\n new Menu(31, 'Tier Transactions', '/transactions/tier-transactions', 'paid', null, false, 0),\r\n new Menu(32, 'Import Transactions', '/transactions/import-transactions', 'undo', null, false, 0),\r\n];\r\n\r\nexport const getCalculationRuleLibraryVMenu = [\r\n new Menu(41, 'Calculation Rules', '/calculation-rules-library/calculation-rules', 'rule_folder', null, false, 0),\r\n new Menu(42, 'Tiers', '/calculation-rules-library/tiers', 'north_east', null, false, 0),\r\n new Menu(43, 'Performance Rules', '/calculation-rules-library/performance-rules', 'data_exploration', null, false, 0),\r\n]\r\n\r\nexport const getAdministrationVMenu = [\r\n new Menu(51, 'Permissions', '/administration/permissions', 'psychology', null, false, 0),\r\n new Menu(52, 'Roles', '/administration/roles', 'manage_accounts', null, false, 0),\r\n new Menu(53, 'Users', '/administration/users', 'person', null, false, 0),\r\n new Menu(54, 'User Defined Fields', '/administration/user-defined-fields', 'recent_actors', null, false, 0),\r\n new Menu(55, 'Lookup Values', '/administration/lookups', 'pin', null, false, 0),\r\n]\r\n\r\n\r\n\r\nexport const getHorizontalMenu = [\r\n new Menu(1, 'Home', '/dashboard', 'home', null, false, 0),\r\n\r\n new Menu(2, 'Fund Information', '/funds', 'comment', null, false, 0, true),\r\n\r\n new Menu(3, 'Transactions', '/transactions', 'drive_file_move_outline', null, false, 0, true),\r\n\r\n new Menu(4, 'Calculations', '/calculation', 'calculate', null, false, 0),\r\n\r\n new Menu(5, 'Reporting', '/reporting', 'trending_up', null, false, 0),\r\n\r\n new Menu(6, 'Calculation Rule Library', '/calculation-rules-library', 'menu_book', null, false, 0, true),\r\n\r\n new Menu(7, 'Administration', '/administration', 'settings_suggest', null, false, 0, true),\r\n \r\n new Menu(8, 'Dashboard', '/new-dashboard', 'dashboard', null, false, 0),\r\n]","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {\r\n Router,\r\n NavigationEnd\r\n} from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { FundInformationService } from 'src/app/pages/fund-information/fund-information.service';\r\nimport { FundsComponent } from 'src/app/pages/fund-information/funds/funds.component';\r\nimport { HeaderTitleService } from 'src/app/shared/services/header-title.service';\r\nimport { NotificationService } from 'src/app/shared/services/notification.service';\r\nimport Swal from 'sweetalert2';\r\nimport { AppSettings } from '../../../../app.settings';\r\nimport { Settings } from '../../../../app.settings.model';\r\nimport { MenuService } from '../menu.service';\r\n\r\n@Component\r\n (\r\n {\r\n selector: 'app-vertical-menu',\r\n templateUrl: './vertical-menu.component.html',\r\n styleUrls: ['./vertical-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [MenuService, FundsComponent, AppComponent]\r\n }\r\n )\r\nexport class VerticalMenuComponent implements OnInit {\r\n @Input('menuItems') menuItems;\r\n @Input('menuParentId') menuParentId;\r\n onClose: Subject = new Subject();\r\n // isOpenSideMenu : boolean = true;\r\n parentMenu: Array;\r\n public settings: Settings;\r\n constructor\r\n (\r\n public appSettings: AppSettings,\r\n public menuService: MenuService,\r\n public fundInformationService: FundInformationService,\r\n public router: Router,\r\n private Funds: FundsComponent,\r\n public NotificationService: NotificationService,\r\n public headerTitleService: HeaderTitleService,\r\n ) {\r\n this.settings = this.appSettings.settings;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n changeSideNavContent(id): void {\r\n var vmenu = this.menuService.getVerticalMenuById(id); \r\n\r\n this.headerTitleService.title = vmenu.headerTitle;\r\n this.menuItems = vmenu.menuItems;\r\n\r\n this.parentMenu = this.menuItems.filter(item => item.parentId == this.menuParentId);\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n if (this.settings.fixedHeader) {\r\n let mainContent = document.getElementById('main-content');\r\n if (mainContent) {\r\n mainContent.scrollTop = 0;\r\n }\r\n }\r\n else {\r\n document.getElementsByClassName('mat-drawer-content')[0].scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n onClick(menuId) {\r\n document.getElementById(\"Fund Information\").classList.remove(\"ActiveMenu\");\r\n document.getElementById(\"Transactions\").classList.remove(\"ActiveMenu\")\r\n document.getElementById(\"Calculation Rule Library\").classList.remove(\"ActiveMenu\");\r\n document.getElementById(\"Administration\").classList.remove(\"ActiveMenu\")\r\n \r\n switch(menuId)\r\n {\r\n case 21:\r\n case 22:\r\n case 23:\r\n case 24:\r\n case 25:\r\n document.getElementById(\"Fund Information\").classList.add(\"ActiveMenu\");\r\n break;\r\n case 31:\r\n case 32:\r\n document.getElementById(\"Transactions\").classList.add(\"ActiveMenu\");\r\n break;\r\n case 41:\r\n case 42:\r\n case 43:\r\n document.getElementById(\"Calculation Rule Library\").classList.add(\"ActiveMenu\");\r\n break;\r\n case 51:\r\n case 52:\r\n case 53:\r\n case 54:\r\n case 55:\r\n document.getElementById(\"Administration\").classList.add(\"ActiveMenu\");\r\n break;\r\n }\r\n \r\n this.menuService.toggleMenuItem(menuId);\r\n this.menuService.closeOtherSubMenus(this.menuItems, menuId);\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\nimport { MessagesService } from './messages.service';\r\n\r\n@Component({\r\n selector: 'app-messages',\r\n templateUrl: './messages.component.html',\r\n styleUrls: ['./messages.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [ MessagesService ]\r\n})\r\nexport class MessagesComponent implements OnInit { \r\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\r\n public selectedTab:number=1;\r\n public messages:Array;\r\n public files:Array;\r\n public meetings:Array; \r\n constructor(private messagesService:MessagesService) { \r\n this.messages = messagesService.getMessages();\r\n this.files = messagesService.getFiles();\r\n this.meetings = messagesService.getMeetings(); \r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n openMessagesMenu() {\r\n this.trigger.openMenu();\r\n this.selectedTab = 0;\r\n }\r\n\r\n onMouseLeave(){\r\n this.trigger.closeMenu();\r\n }\r\n\r\n stopClickPropagate(event: any){\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core'\r\n\r\n@Injectable()\r\nexport class MessagesService {\r\n\r\n private messages = [\r\n {\r\n name: 'ashley',\r\n text: 'After you get up and running, you can place Font Awesome icons just about...',\r\n time: '1 min ago'\r\n },\r\n {\r\n name: 'michael',\r\n text: 'You asked, Font Awesome delivers with 40 shiny new icons in version 4.2.',\r\n time: '2 hrs ago'\r\n },\r\n {\r\n name: 'julia',\r\n text: 'Want to request new icons? Here\\'s how. Need vectors or want to use on the...',\r\n time: '10 hrs ago'\r\n },\r\n {\r\n name: 'bruno',\r\n text: 'Explore your passions and discover new ones by getting involved. Stretch your...',\r\n time: '1 day ago'\r\n },\r\n {\r\n name: 'tereza',\r\n text: 'Get to know who we are - from the inside out. From our history and culture, to the...',\r\n time: '1 day ago'\r\n },\r\n {\r\n name: 'adam',\r\n text: 'Need some support to reach your goals? Apply for scholarships across...',\r\n time: '2 days ago'\r\n },\r\n {\r\n name: 'michael',\r\n text: 'Wrap the dropdown\\'s trigger and the dropdown menu within .dropdown, or...',\r\n time: '1 week ago'\r\n }\r\n ]; \r\n\r\n private files = [ \r\n {\r\n text:'gradus.zip',\r\n size: '~6.2 MB',\r\n value: '47',\r\n color: 'primary'\r\n },\r\n {\r\n text: 'documentation.pdf',\r\n size: '~14.6 MB',\r\n value: '33',\r\n color: 'accent'\r\n },\r\n {\r\n text: 'wallpaper.jpg',\r\n size: '~558 KB',\r\n value: '60',\r\n color: 'warn'\r\n },\r\n {\r\n text: 'letter.doc',\r\n size: '~57 KB',\r\n value: '80',\r\n color: 'primary'\r\n },\r\n {\r\n text: 'azimuth.zip',\r\n size: '~10.2 MB',\r\n value: '55',\r\n color: 'warn'\r\n },\r\n {\r\n text: 'contacts.xlsx',\r\n size: '~96 KB',\r\n value: '75',\r\n color: 'accent'\r\n }\r\n ];\r\n\r\n private meetings = [\r\n {\r\n day: '09',\r\n month: 'May',\r\n title: 'Meeting with Bruno',\r\n text: 'Fusce ut condimentum velit, quis egestas eros. Quisque sed condimentum neque.',\r\n color: 'danger'\r\n }, \r\n {\r\n day: '15',\r\n month: 'May',\r\n title: 'Training course',\r\n text: 'Fusce arcu tortor, tempor aliquam augue vel, consectetur vehicula lectus.',\r\n color: 'primary'\r\n },\r\n {\r\n day: '12',\r\n month: 'June',\r\n title: 'Dinner with Ashley',\r\n text: 'Curabitur rhoncus facilisis augue sed fringilla.',\r\n color: 'info'\r\n },\r\n {\r\n day: '14',\r\n month: 'June',\r\n title: 'Sport time',\r\n text: 'Vivamus tristique enim eros, ac ultricies sem ultrices vitae.',\r\n color: 'warning'\r\n },\r\n {\r\n day: '29',\r\n month: 'July',\r\n title: 'Birthday of Julia',\r\n text: 'Nam porttitor justo nec elit efficitur vestibulum.',\r\n color:'success'\r\n }\r\n ];\r\n\r\n public getMessages():Array {\r\n return this.messages;\r\n }\r\n\r\n public getFiles():Array {\r\n return this.files;\r\n }\r\n\r\n public getMeetings():Array {\r\n return this.meetings;\r\n } \r\n\r\n}","import { Subscription } from 'rxjs';\r\nimport { Component, OnInit, ViewEncapsulation, ViewChild, Input, EventEmitter, Output, OnDestroy } from '@angular/core';\r\nimport { HeaderTitleService } from 'src/app/shared/services/header-title.service';\r\nimport { AppSettings } from '../../../app.settings';\r\nimport { Settings } from '../../../app.settings.model';\r\nimport { MenuService } from '../menu/menu.service';\r\nimport { VerticalMenuComponent } from '../menu/vertical-menu/vertical-menu.component';\r\n\r\n@Component({\r\n selector: 'app-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [MenuService]\r\n})\r\nexport class SidenavComponent implements OnInit, OnDestroy {\r\n public userImage = '../assets/img/users/user.jpg';\r\n @Input('menuItems') menuItems;\r\n @Input('menuParentId') menuParentId;\r\n @ViewChild(VerticalMenuComponent) childVerticalMenu: VerticalMenuComponent;\r\n // @Output() onClickMenuItem: EventEmitter = new EventEmitter();\r\n\r\n // public menuItems:Array;\r\n public menuHeader: string = \"\";\r\n public settings: Settings;\r\n private headerTitleSubscribe!: Subscription;\r\n constructor(public appSettings: AppSettings, public menuService: MenuService, public headerTitleService: HeaderTitleService,) {\r\n this.settings = this.appSettings.settings;\r\n }\r\n\r\n ngOnInit() {\r\n this.headerTitleSubscribe = this.headerTitleService._title$.subscribe((data) => {\r\n this.menuHeader = data;\r\n })\r\n }\r\n\r\n openVerticalMenu(menuId: number): void {\r\n return this.childVerticalMenu.changeSideNavContent(menuId);\r\n }\r\n\r\n public closeSubMenus() {\r\n let menu = document.getElementById(\"vertical-menu\");\r\n if (menu) {\r\n for (let i = 0; i < menu.children[0].children.length; i++) {\r\n let child = menu.children[0].children[i];\r\n if (child) {\r\n if (child.children[0].classList.contains('expanded')) {\r\n child.children[0].classList.remove('expanded');\r\n child.children[1].classList.remove('show');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public getMenuByRouteUrl(url) {\r\n return this.menuService.getMenuByRouteUrl(url);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.headerTitleSubscribe) {\r\n this.headerTitleSubscribe.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { LoginUserDataModel } from 'src/app/pages/login/login.model';\r\nimport { LoginService } from 'src/app/pages/login/login.service';\r\n\r\n@Component({\r\n selector: 'app-user-menu',\r\n templateUrl: './user-menu.component.html',\r\n styleUrls: ['./user-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UserMenuComponent implements OnInit {\r\n public userImage = '../assets/img/users/user.jpg';\r\n currentUser: LoginUserDataModel;\r\n currentUserSubscription: Subscription;\r\n\r\n constructor(\r\n private router: Router,\r\n private loginService: LoginService\r\n ) {\r\n this.currentUserSubscription = this.loginService.currentUser.subscribe(user => {\r\n if(user != null)\r\n this.currentUser = user;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy() {\r\n // unsubscribe to ensure no memory leaks\r\n this.currentUserSubscription.unsubscribe();\r\n }\r\n\r\n logout() {\r\n this.loginService.logout();\r\n this.router.navigate(['/login']);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'pagination'\r\n})\r\nexport class PaginationPipe implements PipeTransform {\r\n transform(data, args?) : Array {\r\n if(!args){\r\n args = {\r\n pageIndex: 0,\r\n pageSize: 6,\r\n length: data.length\r\n }\r\n } \r\n return this.paginate(data, args.pageSize, args.pageIndex);\r\n }\r\n\r\n paginate (array, page_size, page_number) {\r\n return array.slice(page_number * page_size, (page_number + 1) * page_size);\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { PaginationPipe} from './pagination/pagination.pipe';\r\nimport { ProfilePicturePipe } from './profilePicture/profilePicture.pipe';\r\nimport { ChatPersonSearchPipe } from './search/chat-person-search.pipe';\r\nimport { UserSearchPipe } from './search/user-search.pipe';\r\nimport { TruncatePipe } from './truncate/truncate.pipe';\r\nimport { MailSearchPipe } from './search/mail-search.pipe';\r\n\r\n@NgModule({\r\n imports: [ \r\n CommonModule \r\n ],\r\n declarations: [\r\n PaginationPipe,\r\n ProfilePicturePipe,\r\n ChatPersonSearchPipe,\r\n UserSearchPipe,\r\n TruncatePipe,\r\n MailSearchPipe\r\n ],\r\n exports: [\r\n PaginationPipe,\r\n ProfilePicturePipe,\r\n ChatPersonSearchPipe,\r\n UserSearchPipe,\r\n TruncatePipe,\r\n MailSearchPipe\r\n ]\r\n})\r\nexport class PipesModule { }\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({name: 'profilePicture'})\r\nexport class ProfilePicturePipe implements PipeTransform {\r\n transform(input:string, ext = 'jpg'):string {\r\n return '../assets/img/profile/' + input + '.' + ext;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'ChatPersonSearchPipe' })\r\nexport class ChatPersonSearchPipe implements PipeTransform {\r\n transform(value, args?): Array {\r\n let searchText = new RegExp(args, 'ig');\r\n if (value) {\r\n return value.filter(message => {\r\n if (message.author) {\r\n return message.author.search(searchText) !== -1;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'MailSearch'\r\n})\r\n\r\nexport class MailSearchPipe implements PipeTransform {\r\n transform(value, args?): Array {\r\n let searchText = new RegExp(args, 'ig');\r\n if (value) {\r\n return value.filter(mail => {\r\n if(mail.sender || mail.subject){\r\n if(mail.sender.search(searchText) !== -1 || mail.subject.search(searchText) !== -1){\r\n return true;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'UserSearchPipe', pure: false })\r\nexport class UserSearchPipe implements PipeTransform {\r\n transform(value, args?): Array {\r\n let searchText = new RegExp(args, 'ig');\r\n if (value) {\r\n return value.filter(user => {\r\n if (user.profile.name) {\r\n return user.profile.name.search(searchText) !== -1;\r\n }\r\n else{\r\n return user.username.search(searchText) !== -1;\r\n }\r\n });\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'truncate'\r\n})\r\nexport class TruncatePipe implements PipeTransform {\r\n transform(value: string, args?) : string {\r\n let limit = args > 0 ? parseInt(args) : 10;\r\n return value.length > limit ? value.substring(0, limit) + '...' : value;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\n\r\n@Injectable() \r\nexport class CustomOverlayContainer extends OverlayContainer {\r\n _createContainer(): void {\r\n let container = document.createElement('div');\r\n container.classList.add('cdk-overlay-container');\r\n document.getElementById('app').appendChild(container);\r\n this._containerElement = container;\r\n }\r\n}","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n\r\n API_BASE_PATH:'https://api.nscalc.com/api/v1',\r\n //API_BASE_PATH:'https://localhost:44335/api/v1',\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":[],"sourceRoot":"webpack:///"}