{"version":3,"sources":["webpack:///./projects/gmx-ng-infra/src/app/app.module.ts","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.config.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/components/components.module.ts","webpack:///./src/app/components/controls/controls-base-class.ts","webpack:///./src/app/components/controls/controls-container/controls.component.html","webpack:///./src/app/components/controls/controls-container/controls.component.ts","webpack:///./src/app/components/controls/controls.module.ts","webpack:///./src/app/components/controls/date-control/date-control.component.html","webpack:///./src/app/components/controls/date-control/date-control.component.ts","webpack:///./src/app/components/controls/select-box/select-box.component.html","webpack:///./src/app/components/controls/select-box/select-box.component.ts","webpack:///./src/app/components/dice-loader/dice-loader.component.html","webpack:///./src/app/components/dice-loader/dice-loader.component.ts","webpack:///./src/app/components/errors/not-found/not-found.component.html","webpack:///./src/app/components/errors/not-found/not-found.component.ts","webpack:///./src/app/components/errors/unauthorized-user/unauthorized-user.component.html","webpack:///./src/app/components/errors/unauthorized-user/unauthorized-user.component.ts","webpack:///./src/app/components/loader/loader.component.html","webpack:///./src/app/components/loader/loader.component.ts","webpack:///./src/app/components/modal/modal.component.html","webpack:///./src/app/components/modal/modal.component.ts","webpack:///./src/app/components/refresh-button/refresh-button.component.html","webpack:///./src/app/components/refresh-button/refresh-button.component.ts","webpack:///./src/app/components/ring-loader/ring-loader.component.html","webpack:///./src/app/components/ring-loader/ring-loader.component.ts","webpack:///./src/app/configs/adal.ts","webpack:///./src/app/configs/auto-logout-settings.ts","webpack:///./src/app/configs/grid-settings.config.ts","webpack:///./src/app/configs/user-settings.config.ts","webpack:///./src/app/core/UserService/user.service.ts","webpack:///./src/app/core/core.module.ts","webpack:///./src/app/directives/click-outside.directive.ts","webpack:///./src/app/directives/is-admin.directive.ts","webpack:///./src/app/enums/enums.ts","webpack:///./src/app/http-interceptor/http-interceptor.ts","webpack:///./src/app/http-interceptor/manage-http-interceptor.ts","webpack:///./src/app/material.module.ts","webpack:///./src/app/pipes/chart-type-family.pipe.ts","webpack:///./src/app/pipes/date-range.pipe.ts","webpack:///./src/app/pipes/dictionary-to-array.pipe.ts","webpack:///./src/app/pipes/font-scale.pipe.ts","webpack:///./src/app/pipes/format-value.pipe.ts","webpack:///./src/app/pipes/make-observable.pipe.ts","webpack:///./src/app/pipes/remove-mark-up.pipe.ts","webpack:///./src/app/pipes/safe.pipe.ts","webpack:///./src/app/pipes/scalar-title-width.pipe.ts","webpack:///./src/app/pipes/series-formatted-value.pipe.ts","webpack:///./src/app/pipes/series-tooltip-value-text.pipe.ts","webpack:///./src/app/pipes/series-tooltip-value-title.pipe.ts","webpack:///./src/app/pipes/sparkline-title.pipe.ts","webpack:///./src/app/pipes/table-is-chip.pipe.ts","webpack:///./src/app/pipes/table-item-style.pipe.ts","webpack:///./src/app/pipes/value-title.pipe.ts","webpack:///./src/app/services/admin.service.ts","webpack:///./src/app/services/auto-timeout.service.ts","webpack:///./src/app/services/breakpoint.service.ts","webpack:///./src/app/services/cache.service.ts","webpack:///./src/app/services/client/controls-client.service.ts","webpack:///./src/app/services/client/layout-client.service.ts","webpack:///./src/app/services/client/log.service.ts","webpack:///./src/app/services/client/navigation-client.service.ts","webpack:///./src/app/services/client/permissions.service.ts","webpack:///./src/app/services/client/user-client.service.ts","webpack:///./src/app/services/client/widgets-data-manager.service.ts","webpack:///./src/app/services/data-injester/map-ingest.service.ts","webpack:///./src/app/services/data-injester/number-ingest.service.ts","webpack:///./src/app/services/data-injester/series-ingest.service.ts","webpack:///./src/app/services/data-injester/table-ingest.service.ts","webpack:///./src/app/services/data-injester/text-ingest.service.ts","webpack:///./src/app/services/http-cancel.service.ts","webpack:///./src/app/services/listeners.service.ts","webpack:///./src/app/services/monitoring-service.ts","webpack:///./src/app/services/notifications.service.ts","webpack:///./src/app/services/pager.service.ts","webpack:///./src/app/services/routing.service.ts","webpack:///./src/app/services/themes.service.ts","webpack:///./src/app/services/update.service.ts","webpack:///./src/app/services/web-api-client.ts","webpack:///./src/app/uncaught-error-handler/custom-error-handler.ts","webpack:///./src/app/utils/utilities.ts","webpack:///./src/app/views/add-widget/add-widget.component.html","webpack:///./src/app/views/add-widget/add-widget.component.ts","webpack:///./src/app/views/content-page/content-page.component.html","webpack:///./src/app/views/content-page/content-page.component.ts","webpack:///./src/app/views/kendo.content.module.ts","webpack:///./src/app/views/main-layout/app-container/app-container.component.html","webpack:///./src/app/views/main-layout/app-container/app-container.component.ts","webpack:///./src/app/views/main-layout/layout/layout.component.html","webpack:///./src/app/views/main-layout/layout/layout.component.ts","webpack:///./src/app/views/main-layout/navigation-drawer/navigation-drawer.component.html","webpack:///./src/app/views/main-layout/navigation-drawer/navigation-drawer.component.ts","webpack:///./src/app/views/main-layout/top-bar/top-bar.component.html","webpack:///./src/app/views/main-layout/top-bar/top-bar.component.ts","webpack:///./src/app/views/report-controls/report-controls.component.html","webpack:///./src/app/views/report-controls/report-controls.component.ts","webpack:///./src/app/views/views.module.ts","webpack:///./src/app/widgets/charts/chart-base-class.ts","webpack:///./src/app/widgets/charts/series-chart/series-chart.component.html","webpack:///./src/app/widgets/charts/series-chart/series-chart.component.ts","webpack:///./src/app/widgets/charts/sparkline/sparkline.component.html","webpack:///./src/app/widgets/charts/sparkline/sparkline.component.ts","webpack:///./src/app/widgets/custom-map-overlay/custom-map-overlay.component.html","webpack:///./src/app/widgets/custom-map-overlay/custom-map-overlay.component.ts","webpack:///./src/app/widgets/kendo.widgets.module.ts","webpack:///./src/app/widgets/map/map.component.html","webpack:///./src/app/widgets/map/map.component.ts","webpack:///./src/app/widgets/numbers/number-base-class.ts","webpack:///./src/app/widgets/numbers/number-scalar/number-scalar.component.html","webpack:///./src/app/widgets/numbers/number-scalar/number-scalar.component.ts","webpack:///./src/app/widgets/numbers/percentage-change/percentage-change.component.html","webpack:///./src/app/widgets/numbers/percentage-change/percentage-change.component.ts","webpack:///./src/app/widgets/table/table.component.html","webpack:///./src/app/widgets/table/table.component.ts","webpack:///./src/app/widgets/text/text.component.html","webpack:///./src/app/widgets/text/text.component.ts","webpack:///./src/app/widgets/widget-base-class.ts","webpack:///./src/app/widgets/widget/widget.component.html","webpack:///./src/app/widgets/widget/widget.component.ts","webpack:///./src/app/widgets/widgets.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts","webpack:///./src/scss/sass-helper.component.ts.SassHelperComponent.html","webpack:///./src/scss/sass-helper.component.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import {BrowserModule} from '@angular/platform-browser';\r\nimport {ModuleWithProviders, NgModule} from '@angular/core';\r\n\r\nimport {AppRoutingModule} from './app-routing.module';\r\nimport {AppComponent} from './app.component';\r\nimport {ContextPaneComponent} from './context-pane/context-pane.component';\r\nimport {ContextPaneControlComponent} from './context-pane-control/context-pane-control.component';\r\n\r\nconst providers = [];\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ContextPaneComponent,\r\n ContextPaneControlComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule\r\n ],\r\n providers: [providers],\r\n exports: [\r\n ContextPaneComponent\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n}\r\n\r\n@NgModule({})\r\nexport class GmxNgInfraSharedModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: AppModule,\r\n providers: [providers],\r\n };\r\n }\r\n}\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","// Angular Imports\r\nimport {RouterModule, Routes} from '@angular/router';\r\nimport {InjectionToken, NgModule} from '@angular/core';\r\n// Gmx Views\r\n// Gmx Components\r\nimport {AuthenticationGuard} from 'microsoft-adal-angular6';\r\nimport {ContentPageComponent} from './views/content-page/content-page.component';\r\n\r\nconst externalUrlProvider = new InjectionToken('externalUrlRedirectResolver');\r\n\r\nconst appRoutes: Routes = [\r\n {path: '', redirectTo: '', pathMatch: 'full', canActivate: [AuthenticationGuard]},\r\n {path: '**', component: ContentPageComponent, canActivate: [AuthenticationGuard]},\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(appRoutes, {scrollPositionRestoration: 'top'})],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule {\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n","// Angular\r\nimport {Component} from '@angular/core';\r\n// Gmx Services\r\nimport {AutoTimeoutService} from './services/auto-timeout.service';\r\nimport {UserClientService} from './services/client/user-client.service';\r\nimport {MonitoringService} from './services/monitoring-service';\r\nimport {UpdateService} from './services/update.service';\r\nimport {Intercom} from 'ng-intercom';\r\n\r\n@Component({\r\n selector: 'gmx-bi-app',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n constructor(\r\n private autoLogout: AutoTimeoutService,\r\n public userClientService: UserClientService,\r\n private monitoringService: MonitoringService,\r\n private updateService: UpdateService,\r\n public intercom: Intercom\r\n ) {\r\n }\r\n}\r\n","import {HttpBackend, HttpClient} from '@angular/common/http';\r\nimport {environment} from '../environments/environment';\r\nimport {IAppConfig} from './app-config.model';\r\nimport {Injectable} from '@angular/core';\r\nimport {Observable, throwError} from 'rxjs';\r\nimport {catchError, map, tap} from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AppConfig {\r\n static settings: IAppConfig;\r\n private httpClient: HttpClient;\r\n\r\n constructor(private handler: HttpBackend) {\r\n this.httpClient = new HttpClient(handler);\r\n }\r\n\r\n public loadConfig(): Observable {\r\n const name = 'name';\r\n const jsonFile = `assets/config/config.${environment[name]}.json`;\r\n return this.httpClient.get(jsonFile).pipe(\r\n map(res => res),\r\n tap((response: IAppConfig) => AppConfig.settings = response as IAppConfig),\r\n catchError(err => {\r\n return throwError(`Could not load file '${jsonFile}': ${JSON.stringify(err)}`);\r\n })\r\n );\r\n }\r\n}\r\n","// Angular\r\nimport {APP_INITIALIZER, ErrorHandler, NgModule} from '@angular/core';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\r\n// 3rd Party Libraries\r\nimport {MaterialModule} from './material.module';\r\nimport {MDBModalRef} from 'ng-uikit-pro-standard';\r\n// Gmx Application\r\nimport {GmxNgInfraSharedModule} from '../../projects/gmx-ng-infra/src/app/app.module';\r\nimport {AppComponent} from './app.component';\r\nimport {CoreModule} from './core';\r\n// Gmx Services\r\n// Kendo\r\nimport 'hammerjs';\r\nimport {DropDownsModule} from '@progress/kendo-angular-dropdowns';\r\nimport {GridModule} from '@progress/kendo-angular-grid';\r\nimport {MenuModule} from '@progress/kendo-angular-menu';\r\nimport {ViewsModule} from './views/views.module';\r\nimport {ConfigurationService, TooltipTemplateService} from '@progress/kendo-angular-charts';\r\nimport {API_BASE_URL, WebApiClient} from './services/web-api-client';\r\nimport {AppRoutingModule} from './app-routing.module';\r\nimport {AppConfig} from './app.config';\r\nimport {AuthenticationGuard, MsAdalAngular6Module, MsAdalAngular6Service} from 'microsoft-adal-angular6';\r\nimport {HTTP_INTERCEPTORS} from '@angular/common/http';\r\nimport {HttpInterceptor} from './http-interceptor/http-interceptor';\r\nimport {ModalComponent} from './components/modal/modal.component';\r\nimport {CustomErrorHandler} from './uncaught-error-handler/custom-error-handler';\r\nimport {DateInputsModule} from '@progress/kendo-angular-dateinputs';\r\nimport {LayoutModule} from '@progress/kendo-angular-layout';\r\nimport {LogService} from './services/client/log.service';\r\nimport {NotificationModule} from '@progress/kendo-angular-notification';\r\nimport {HttpCancelService} from './services/http-cancel.service';\r\nimport {ManageHttpInterceptor} from './http-interceptor/manage-http-interceptor';\r\nimport {LZStringModule, LZStringService} from 'ng-lz-string';\r\nimport {ComponentsModule} from './components/components.module';\r\nimport {IntercomModule} from 'ng-intercom';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { environment } from '../environments/environment';\r\n\r\nlet adalConfig: any;\r\n\r\n// noinspection FunctionNamingConventionJS\r\nexport function msAdalAngular6ConfigFactory() {\r\n return adalConfig;\r\n}\r\n\r\nexport function initializeApp(appConfig: AppConfig) {\r\n return () =>\r\n appConfig.loadConfig().toPromise()\r\n .then(() => {\r\n adalConfig = {\r\n tenant: AppConfig.settings.adalConfig.tenant,\r\n clientId: AppConfig.settings.adalConfig.clientId,\r\n redirectUri: window.location.origin,\r\n endpoints: AppConfig.settings.adalConfig.endpoints,\r\n navigateToLoginRequestUrl: true,\r\n cacheLocation: AppConfig.settings.adalConfig.cacheLocation\r\n };\r\n });\r\n}\r\n\r\n@NgModule({\r\n declarations: [AppComponent],\r\n imports: [\r\n // 3rd party trackers\r\n IntercomModule.forRoot({\r\n appId: 'xdjguro4', // from your Intercom config\r\n updateOnRouterChange: true // will automatically run `update` on router event changes. Default: `false`\r\n }),\r\n\r\n // Angular\r\n BrowserModule,\r\n CoreModule,\r\n BrowserAnimationsModule,\r\n AppRoutingModule,\r\n // Kendo: 3rd Party Libraries\r\n DropDownsModule,\r\n LayoutModule,\r\n NotificationModule,\r\n\r\n // Gmx\r\n MaterialModule,\r\n\r\n GmxNgInfraSharedModule,\r\n MenuModule,\r\n ViewsModule,\r\n GridModule,\r\n\r\n // ADAL\r\n MsAdalAngular6Module,\r\n\r\n DateInputsModule,\r\n\r\n NotificationModule,\r\n LZStringModule,\r\n ComponentsModule,\r\n ServiceWorkerModule.register('ngsw-worker.js', {enabled: true})\r\n // ServiceWorkerModule.register('ngsw-worker.js', {enabled: environment.production})\r\n ],\r\n providers: [\r\n {\r\n provide: ErrorHandler,\r\n useClass: CustomErrorHandler,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpInterceptor,\r\n multi: true\r\n },\r\n HttpCancelService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ManageHttpInterceptor,\r\n multi: true\r\n },\r\n AppConfig,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: initializeApp,\r\n deps: [AppConfig],\r\n multi: true\r\n },\r\n MsAdalAngular6Service,\r\n {\r\n provide: 'adalConfig',\r\n useFactory: msAdalAngular6ConfigFactory,\r\n deps: []\r\n },\r\n {\r\n provide: API_BASE_URL,\r\n useValue:\r\n window.location.host.startsWith('localhost')\r\n ? 'http://localhost:5000'\r\n : (window.location.origin + '/API_VIA_GATEWAY')\r\n },\r\n AuthenticationGuard,\r\n // Kendo Services - added for the use of ngContent inside kendo charts\r\n ConfigurationService,\r\n TooltipTemplateService,\r\n WebApiClient,\r\n MDBModalRef,\r\n LogService,\r\n LZStringService\r\n ],\r\n bootstrap: [AppComponent],\r\n entryComponents: [ModalComponent]\r\n})\r\nexport class AppModule {\r\n}\r\n","// Angular\r\nimport {CommonModule} from '@angular/common';\r\nimport {RouterModule} from '@angular/router';\r\nimport {NgModule} from '@angular/core';\r\nimport {FormsModule} from '@angular/forms';\r\n// 3rd Party Libraries\r\nimport {MDBBootstrapModulesPro} from 'ng-uikit-pro-standard';\r\nimport {KendoWidgetsModule} from '../widgets/kendo.widgets.module';\r\n// Gmx Services\r\n// Gmx Components\r\nimport {NotificationComponent} from './notification/notification.component';\r\nimport {LoaderComponent} from './loader/loader.component';\r\nimport {NotFoundComponent} from './errors/not-found/not-found.component';\r\nimport {RefreshButtonComponent} from './refresh-button/refresh-button.component';\r\n// Gmx Services\r\nimport {ListenersService} from '../services/listeners.service';\r\nimport {DynamicModule} from 'ng-dynamic-component';\r\nimport {ModalComponent} from './modal/modal.component';\r\nimport {UnauthorizedUserComponent} from './errors/unauthorized-user/unauthorized-user.component';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport {NgbPopoverModule} from '@ng-bootstrap/ng-bootstrap';\r\nimport {EllipsisDirective} from '../directives/ellipsis.directive';\r\nimport {AutofocusDirective} from '../directives/autofocus.directive';\r\nimport {DiceLoaderComponent} from './dice-loader/dice-loader.component';\r\nimport {RingLoaderComponent} from './ring-loader/ring-loader.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n MDBBootstrapModulesPro.forRoot(),\r\n KendoWidgetsModule,\r\n [DynamicModule.withComponents([NotFoundComponent])],\r\n ScrollingModule,\r\n NgbPopoverModule\r\n ],\r\n declarations: [\r\n NotificationComponent,\r\n EllipsisDirective,\r\n AutofocusDirective,\r\n LoaderComponent,\r\n NotFoundComponent,\r\n RefreshButtonComponent,\r\n ModalComponent,\r\n UnauthorizedUserComponent,\r\n DiceLoaderComponent,\r\n RingLoaderComponent\r\n ],\r\n exports: [\r\n NotificationComponent,\r\n LoaderComponent,\r\n NotFoundComponent,\r\n RefreshButtonComponent,\r\n ModalComponent,\r\n UnauthorizedUserComponent,\r\n EllipsisDirective,\r\n AutofocusDirective,\r\n DiceLoaderComponent,\r\n RingLoaderComponent\r\n ],\r\n providers: [\r\n ListenersService\r\n ]\r\n})\r\nexport class ComponentsModule {\r\n}\r\n","//#region Imports\r\n\r\nimport {ChangeDetectorRef, EventEmitter, Injectable, Input, OnDestroy, Output} from '@angular/core';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {ReportControl} from '../../services/web-api-client';\r\nimport {ControlsClientService} from '../../services/client/controls-client.service';\r\nimport {Observable, Subject} from 'rxjs';\r\nimport {destroySubject, getComparisonOperator} from '../../utils/utilities';\r\nimport {IntlService} from '@progress/kendo-angular-intl';\r\nimport {ListenersService} from '../../services/listeners.service';\r\nimport {RoutingService} from '../../services/routing.service';\r\nimport RequestQueryParameterExtended = GmxBiWorks.ReportControls.RequestQueryParameterExtended;\r\n\r\n//#endregion\r\n\r\n@Injectable()\r\nexport abstract class ControlsBase implements OnDestroy {\r\n //#region Properties\r\n\r\n @Input() control: ReportControl;\r\n @Output() valueChanged: EventEmitter = new EventEmitter();\r\n\r\n public selectedValues: RequestQueryParameterExtended;\r\n public reportControl$ = new Subject();\r\n\r\n @Input() applyClickedEvent: Observable;\r\n public applyClicked$ = new Subject();\r\n public onDestroy$: Subject = new Subject();\r\n\r\n //#endregion\r\n\r\n constructor(public cdr: ChangeDetectorRef,\r\n public controlsClientService: ControlsClientService,\r\n public intl: IntlService,\r\n public listenersService: ListenersService,\r\n private routingService: RoutingService\r\n ) {\r\n }\r\n\r\n public applyControls(placeholderIndex?: number): void {\r\n this.controlsClientService.applyControls();\r\n this.routingService.checkParamsToUrl(placeholderIndex);\r\n }\r\n\r\n public initSelectedValues(values = []): void {\r\n this.selectedValues = {\r\n comparisonOperator: getComparisonOperator(this.control.visualType),\r\n controlTemplateId: this.control.controlTemplateId,\r\n values\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destroySubject(this.onDestroy$);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n \r\n {{ controlTitle }}{{ dateSummery }}\r\n \r\n\r\n \r\n
\r\n
1\"\r\n class=\"total-selected-values\">\r\n {{ currentControlSelectedValues }}\r\n
\r\n\r\n \"Cancel\"\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n {{control.title}}\r\n {{ currentTotalSelected }}\r\n \"close\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","//#region Imports\r\n\r\nimport {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {ControlsClientService} from '../../../services/client/controls-client.service';\r\nimport {ReportControl, ReportControlVisualType} from '../../../services/web-api-client';\r\nimport {NgbPopover} from '@ng-bootstrap/ng-bootstrap';\r\nimport {Subject} from 'rxjs';\r\nimport {RoutingService} from '../../../services/routing.service';\r\nimport {ThemesService} from '../../../services/themes.service';\r\nimport {WidgetsDataManagerService} from '../../../services/client/widgets-data-manager.service';\r\nimport {ListenersService} from '../../../services/listeners.service';\r\n\r\n//#endregion\r\n\r\n@Component({\r\n selector: 'gmx-bi-controls',\r\n templateUrl: './controls.component.html',\r\n styleUrls: ['./controls.component.scss']\r\n})\r\nexport class ControlsComponent implements OnInit {\r\n @ViewChild('summaryContainer') summaryContainer: ElementRef;\r\n //#region Properties\r\n @Input() control: ReportControl;\r\n @Input() customData: any;\r\n @Input() valueField: string;\r\n @Input() textField: string;\r\n @Input() placeholder: string;\r\n @Input() defaultValues: any;\r\n @Output() valueChangedEvent: EventEmitter = new EventEmitter();\r\n public applyEventsSubject$: Subject = new Subject();\r\n public placeholderKeyChanged$: Subject = new Subject();\r\n public dateControl = ReportControlVisualType.DateRange;\r\n public singleSelect = ReportControlVisualType.SingleSelect;\r\n public dynamicDatePlaceholder: string;\r\n public popoverShown: boolean;\r\n\r\n //#endregion\r\n\r\n constructor(\r\n private controlsClientService: ControlsClientService,\r\n private routingService: RoutingService,\r\n public themesService: ThemesService,\r\n private widgetsDataManagerService: WidgetsDataManagerService,\r\n private listenersService: ListenersService\r\n ) {\r\n }\r\n\r\n //#region Getters/Setters\r\n\r\n private _currentTotalSelected?: number = null;\r\n\r\n get currentTotalSelected(): number | null {\r\n return this._currentTotalSelected > 0 ? this._currentTotalSelected : null;\r\n }\r\n\r\n get dateSummery(): string {\r\n return this.dateControlSummary();\r\n }\r\n\r\n get controlTitle(): string {\r\n return this.controlTitleSummery();\r\n }\r\n\r\n get isControlStateTheSame(): boolean {\r\n return this.controlsClientService.isControlStateTheSame;\r\n }\r\n\r\n get currentControlSelectedValues(): number {\r\n let total: number;\r\n if (this.control.defaultValues) {\r\n total = this.control.defaultValues.length;\r\n }\r\n if (this.controlsClientService.lastSavedControlsState) {\r\n const currentControl = this.controlsClientService.lastSavedControlsState.find((control) =>\r\n control.controlTemplateId === this.control.controlTemplateId);\r\n\r\n total = currentControl && currentControl.values\r\n ? currentControl.values.length\r\n : null;\r\n }\r\n return total && total > 0 ? total : null;\r\n }\r\n\r\n //#endregion\r\n\r\n private static closeControlPopover(controlPopOver: NgbPopover): void {\r\n controlPopOver.close();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initializeDynamicDate();\r\n }\r\n\r\n public revertToDefaultAndApply(controlPopOver: NgbPopover): void {\r\n this.controlsClientService.revertToControlDefault(this.control);\r\n this.routingService.checkParamsToUrl();\r\n this.applyClick(controlPopOver);\r\n this.controlsClientService.updateFilterState();\r\n }\r\n\r\n public applyClick(controlPopOver: NgbPopover) {\r\n this.popoverShown = false;\r\n this.emitApplyClicked();\r\n ControlsComponent.closeControlPopover(controlPopOver);\r\n }\r\n\r\n public defaultControl(): boolean {\r\n return !!this.controlsClientService.originalDisplayedControls.controlsData\r\n .find((control) =>\r\n control.controlTemplateId === this.control.controlTemplateId);\r\n }\r\n\r\n public cancelChanges(controlPopOver: NgbPopover) {\r\n setTimeout(() => this.popoverShown = false, 300);\r\n this.initializeDynamicDate();\r\n this.controlsClientService.restoreControlToLastChanges();\r\n ControlsComponent.closeControlPopover(controlPopOver);\r\n }\r\n\r\n public onCurrentTotalSelectedChanged(currentTotalSelected?: number): void {\r\n this._currentTotalSelected = currentTotalSelected;\r\n }\r\n\r\n public trackByListFn(index, item): void {\r\n return item;\r\n }\r\n\r\n public changePredefinedRanges() {\r\n const placeholderKeyOverride = Object.keys(this.control.placeholdersList)\r\n .find(key => this.control.placeholdersList[key] === this.dynamicDatePlaceholder);\r\n const currentState = this.controlsClientService.currentControlState\r\n .find((state) => state.controlTemplateId === this.control.controlTemplateId);\r\n currentState.placeholderKeyOverride = placeholderKeyOverride;\r\n this.placeholderKeyChanged$.next(true);\r\n }\r\n\r\n togglePopover(controlPopOver: NgbPopover) {\r\n if (this.popoverShown) {\r\n this.popoverShown = false;\r\n return;\r\n }\r\n controlPopOver.open();\r\n }\r\n\r\n private controlTitleSummery(): string {\r\n if (this.control.visualType === this.dateControl) {\r\n return '';\r\n }\r\n\r\n const title = this.controlsClientService.controlsTitles\r\n .find((_control) => this.control.controlTemplateId === _control.controlTemplateId);\r\n return title ? title.title : this.control.title;\r\n }\r\n\r\n private dateControlSummary(): string {\r\n if (this.control.visualType === this.dateControl) {\r\n const dateControl = this.controlsClientService.dateControlsSummary.find((control) =>\r\n this.control.controlTemplateId === control.controlTemplateId);\r\n\r\n return dateControl ? dateControl.title : this.control.title;\r\n }\r\n return '';\r\n }\r\n\r\n private emitApplyClicked() {\r\n this.widgetsDataManagerService.getAllDataFromApi(this.control.reportId);\r\n this.listenersService.allDataRefresh.next(true);\r\n this.applyEventsSubject$.next(true);\r\n }\r\n\r\n private initializeDynamicDate() {\r\n if (this.control.placeholdersList) {\r\n const placeholderKeyOverride: string =\r\n this.controlsClientService.lastSavedControlsState\r\n .find((state) => state.controlTemplateId === this.control.controlTemplateId)\r\n .placeholderKeyOverride;\r\n this.dynamicDatePlaceholder = this.control.placeholdersList[placeholderKeyOverride];\r\n }\r\n }\r\n}\r\n","// Angular\r\nimport {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {FormsModule} from '@angular/forms';\r\n// 3rd Party Libraries\r\nimport {KendoWidgetsModule} from '../../widgets/kendo.widgets.module';\r\n// Gmx Components\r\nimport {ControlsComponent} from './controls-container/controls.component';\r\nimport {\r\n BadgeModule,\r\n ButtonsModule,\r\n CheckboxModule,\r\n DropdownModule,\r\n IconsModule,\r\n InputsModule,\r\n PopoverModule,\r\n TooltipModule,\r\n WavesModule\r\n} from 'ng-uikit-pro-standard';\r\nimport {ClickOutsideDirective} from '../../directives/click-outside.directive';\r\nimport {ComponentsModule} from '../components.module';\r\nimport {NgbPopoverModule} from '@ng-bootstrap/ng-bootstrap';\r\nimport {SelectBoxComponent} from './select-box/select-box.component';\r\nimport {MatListModule, MatRadioModule, MatTooltipModule} from '@angular/material';\r\nimport {DateControlComponent} from './date-control/date-control.component';\r\nimport {DateInputsModule, MultiViewCalendarModule} from '@progress/kendo-angular-dateinputs';\r\nimport {SafePipe} from '../../pipes/safe.pipe';\r\nimport {DateRangePipe} from '../../pipes/date-range.pipe';\r\nimport {DictionaryToArrayPipe} from '../../pipes/dictionary-to-array.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n KendoWidgetsModule,\r\n CheckboxModule,\r\n DropdownModule,\r\n IconsModule,\r\n BadgeModule,\r\n ComponentsModule,\r\n PopoverModule,\r\n NgbPopoverModule,\r\n MatListModule,\r\n MatRadioModule,\r\n MatTooltipModule,\r\n InputsModule,\r\n TooltipModule,\r\n ButtonsModule,\r\n WavesModule,\r\n MultiViewCalendarModule,\r\n DateInputsModule,\r\n ],\r\n declarations: [\r\n ClickOutsideDirective,\r\n ControlsComponent,\r\n SelectBoxComponent,\r\n DateControlComponent,\r\n SafePipe,\r\n DateRangePipe,\r\n DictionaryToArrayPipe\r\n ],\r\n exports: [\r\n ClickOutsideDirective,\r\n ControlsComponent,\r\n SelectBoxComponent,\r\n DateControlComponent,\r\n SafePipe,\r\n DictionaryToArrayPipe\r\n ]\r\n})\r\nexport class ControlsModule {\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n From\r\n {{ range.start | dateRange }}\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n To\r\n {{ range.end | dateRange }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","//#region Imports\r\n\r\nimport {AfterViewInit, Component, Input, OnDestroy, OnInit} from '@angular/core';\r\nimport {ControlsBase} from '../controls-base-class';\r\nimport {PredefinedDateRange} from '../../../services/web-api-client';\r\nimport {\r\n buildDateControlSummary,\r\n calculateRelativeDate,\r\n dateAsUtc,\r\n deepClone,\r\n destroySubject,\r\n endOfDayGmt,\r\n getDateWithoutTimezoneDifference,\r\n startOfDayGmt\r\n} from '../../../utils/utilities';\r\nimport {SelectionRange} from '@progress/kendo-angular-dateinputs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {GmxBiWorks} from '../../../../typings';\r\nimport eachDayOfInterval from 'date-fns/eachDayOfInterval';\r\nimport {Observable, of, Subject} from 'rxjs';\r\nimport RequestQueryParameterExtended = GmxBiWorks.ReportControls.RequestQueryParameterExtended;\r\n\r\n//#endregion\r\n\r\n@Component({\r\n selector: 'gmx-bi-date-control',\r\n templateUrl: './date-control.component.html',\r\n styleUrls: ['./date-control.component.scss']\r\n})\r\nexport class DateControlComponent extends ControlsBase implements OnInit, AfterViewInit, OnDestroy {\r\n //#region Properties\r\n\r\n @Input() dynamicDateSelected: Observable;\r\n @Input() placeholderKeyChanged: Observable;\r\n public range = {start: null, end: null};\r\n public focusedDate: Date = new Date();\r\n public disabledDatesArray: Date[];\r\n public predefinedRanges: PredefinedDateRange[];\r\n public predefinedRangesObservable: Observable;\r\n public dynamicDataLoading = true;\r\n public placeholderKeyChanged$ = new Subject();\r\n public minDateRange: Date;\r\n public maxDateRange: Date;\r\n\r\n //#endregion\r\n\r\n static getDefaultRange(predefinedRanges: PredefinedDateRange[]) {\r\n return predefinedRanges\r\n ? predefinedRanges\r\n .find((range) => range.selected)\r\n : null;\r\n }\r\n\r\n //#region Angular LifeCycle Functions\r\n\r\n public ngOnInit(): void {\r\n this.initSelectedValues();\r\n this.applyClickedEvent\r\n .pipe(\r\n takeUntil(this.applyClicked$)\r\n )\r\n .subscribe(() => this.apply());\r\n this.placeholderKeyChanged\r\n .pipe(\r\n takeUntil(this.placeholderKeyChanged$)\r\n )\r\n .subscribe(() => {\r\n this.dynamicDataLoading = true;\r\n this.predefinedRanges = this.getDynamicPredefined();\r\n this.predefinedRangesObservable = of(this.predefinedRanges);\r\n const defaultRange = DateControlComponent.getDefaultRange(this.predefinedRanges);\r\n if (defaultRange) {\r\n this.buildPredefinedCalenderRange(defaultRange);\r\n }\r\n if (this.control.dateFilterMetadata.hasDynamicData) {\r\n this.buildDynamicDates();\r\n } else {\r\n this.dynamicDataLoading = false;\r\n }\r\n });\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n if (this.control.placeholdersList) {\r\n this.predefinedRanges = this.getDynamicPredefined();\r\n } else {\r\n this.predefinedRanges = deepClone(this.control.dateFilterMetadata.predefinedRanges);\r\n }\r\n if (this.predefinedRanges) {\r\n this.predefinedRangesObservable = of(this.predefinedRanges);\r\n let defaultRange = DateControlComponent.getDefaultRange(this.predefinedRanges);\r\n\r\n let paramsFromUrl: PredefinedDateRange;\r\n\r\n if (this.controlsClientService.urlParams && this.controlsClientService.urlParams.urlQueryParams.length > 0) {\r\n paramsFromUrl = this.updatePredefinedRanges();\r\n }\r\n\r\n defaultRange = paramsFromUrl ? paramsFromUrl : defaultRange;\r\n if (defaultRange) {\r\n this.buildPredefinedCalenderRange(defaultRange);\r\n }\r\n } else {\r\n this.buildCalenderRange();\r\n }\r\n\r\n if (this.control.dateFilterMetadata.hasDynamicData) {\r\n this.buildDynamicDates();\r\n } else {\r\n this.dynamicDataLoading = false;\r\n }\r\n\r\n this.controlsClientService.updateFilterState();\r\n this.updateCdr();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.reportControl$);\r\n destroySubject(this.applyClicked$);\r\n destroySubject(this.placeholderKeyChanged$);\r\n }\r\n\r\n //#endregion\r\n\r\n public trackByListFn(index, item): void {\r\n return item.name;\r\n }\r\n\r\n public selectPredefinedRange(predefinedRange: PredefinedDateRange): void {\r\n if (predefinedRange.selected) {\r\n return;\r\n }\r\n this.predefinedRanges.filter((range) => range.selected = false);\r\n predefinedRange.selected = true;\r\n this.buildPredefinedCalenderRange(predefinedRange);\r\n this.setCurrentState();\r\n }\r\n\r\n public selectionRangeChange(newRange: SelectionRange): void {\r\n if (this.predefinedRanges) {\r\n this.predefinedRanges\r\n .filter((range) => range.selected = range.name === 'Custom');\r\n this.range = newRange;\r\n }\r\n setTimeout(() => this.setCurrentState());\r\n }\r\n\r\n public apply(): void {\r\n let placeholderIndex: number;\r\n const dateControl = this.controlsClientService.controls\r\n .find((control) => control.controlTemplateId === this.control.controlTemplateId);\r\n if (dateControl.placeholdersList) {\r\n const currentState = this.controlsClientService.currentControlState\r\n .find((control) => control.controlTemplateId === this.control.controlTemplateId);\r\n dateControl.dateFilterMetadata.predefinedRangesPerPlaceholder[currentState.placeholderKeyOverride] =\r\n deepClone(this.predefinedRanges);\r\n placeholderIndex =\r\n Object.keys(dateControl.dateFilterMetadata.predefinedRangesPerPlaceholder)\r\n .indexOf(currentState.placeholderKeyOverride);\r\n } else {\r\n dateControl.dateFilterMetadata.predefinedRanges = deepClone(this.predefinedRanges);\r\n }\r\n this.applyControls(placeholderIndex);\r\n this.buildSummary();\r\n }\r\n\r\n private getDynamicPredefined(): PredefinedDateRange[] {\r\n const currentControl = this.controlsClientService.currentControlState\r\n .find((state) => state.controlTemplateId === this.control.controlTemplateId);\r\n return deepClone(this.control.dateFilterMetadata.predefinedRangesPerPlaceholder[currentControl.placeholderKeyOverride]);\r\n }\r\n\r\n private setCurrentState(): void {\r\n this.selectedValues.values = [\r\n this.range.start,\r\n this.range.end\r\n ];\r\n const start = new Date(this.range.start);\r\n const end = new Date(this.range.end);\r\n const state: RequestQueryParameterExtended = {\r\n controlTemplateId: this.selectedValues.controlTemplateId,\r\n comparisonOperator: this.selectedValues.comparisonOperator,\r\n values: [\r\n dateAsUtc(startOfDayGmt(start)).toISOString(),\r\n dateAsUtc(endOfDayGmt(end)).toISOString()\r\n ],\r\n predefinedRanges: this.predefinedRanges\r\n };\r\n\r\n this.controlsClientService.setCurrentState(state);\r\n }\r\n\r\n private buildCalenderRange(): void {\r\n const currentState = this.controlsClientService.lastSavedControlsState\r\n .find((state) => state.controlTemplateId === this.control.controlTemplateId);\r\n if (currentState.values) {\r\n this.range = {\r\n start: getDateWithoutTimezoneDifference(new Date(currentState.values[0])),\r\n end: getDateWithoutTimezoneDifference(new Date(currentState.values[1]))\r\n };\r\n }\r\n this.focusedDate = new Date();\r\n this.setCurrentState();\r\n }\r\n\r\n private buildPredefinedCalenderRange(predefinedRange: PredefinedDateRange): void {\r\n let values;\r\n if (predefinedRange.name === 'Custom') {\r\n const currentControlState = this.controlsClientService.lastSavedControlsState\r\n .find((state) =>\r\n state.controlTemplateId === this.control.controlTemplateId);\r\n values = [\r\n currentControlState.values[0],\r\n currentControlState.values[1]\r\n ];\r\n } else {\r\n values = calculateRelativeDate(\r\n predefinedRange.includeToday,\r\n predefinedRange.periodCount,\r\n predefinedRange.periodType,\r\n predefinedRange.startOf);\r\n }\r\n this.range = {\r\n start: getDateWithoutTimezoneDifference(new Date(values[0])),\r\n end: getDateWithoutTimezoneDifference(new Date(values[1]))\r\n };\r\n this.focusedDate = new Date();\r\n this.setCurrentState();\r\n }\r\n\r\n private updateCdr(): void {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private buildDynamicDates(): void {\r\n this.controlsClientService.getReportControlData(\r\n this.control.reportId,\r\n this.control.controlTemplateId,\r\n this.controlsClientService.requestQueryParameters)\r\n .pipe(takeUntil(this.reportControl$))\r\n .subscribe((disabledDates) => {\r\n this.minDateRange = new Date(disabledDates[0].value);\r\n this.maxDateRange = new Date(disabledDates[disabledDates.length - 1].value);\r\n // need to convert to date only for the comparison between dates\r\n const existingDates = disabledDates.map((date) => startOfDayGmt(new Date(date.value)).toISOString());\r\n let fullDateArray: any[] = eachDayOfInterval(\r\n {\r\n start: this.minDateRange,\r\n end: this.maxDateRange\r\n });\r\n fullDateArray = fullDateArray.map((date) => date.toISOString());\r\n const missingDates = fullDateArray.filter((item) => !existingDates.includes(item));\r\n this.disabledDatesArray = missingDates.map((date) => new Date(date));\r\n\r\n if (this.disabledDatesArray.length === 0) {\r\n this.disabledDatesArray = null;\r\n }\r\n this.dynamicDataLoading = false;\r\n\r\n this.updateCdr();\r\n }, () => {\r\n this.dynamicDataLoading = false;\r\n });\r\n }\r\n\r\n private buildSummary(): void {\r\n const summaryControl = this.controlsClientService.dateControlsSummary.find((control) =>\r\n control.controlTemplateId === this.control.controlTemplateId);\r\n let title = buildDateControlSummary(this.selectedValues.values[0], this.selectedValues.values[1]);\r\n const currentControl = this.controlsClientService.currentControlState.find((state) =>\r\n state.controlTemplateId === this.control.controlTemplateId);\r\n if (this.control.placeholdersList) {\r\n title = `${this.control.placeholdersList[currentControl.placeholderKeyOverride]}: ${title}`;\r\n }\r\n if (summaryControl) {\r\n summaryControl.title = title;\r\n } else {\r\n this.controlsClientService.dateControlsSummary.push({\r\n title,\r\n controlTemplateId: this.control.controlTemplateId,\r\n isVisible: true\r\n });\r\n }\r\n }\r\n\r\n private updatePredefinedRanges(): PredefinedDateRange {\r\n const currentUrlParams = this.controlsClientService.urlParams.urlQueryParams\r\n .find((urlQueryParams) => urlQueryParams.controlTemplateId === this.control.controlTemplateId);\r\n if (!currentUrlParams) {\r\n return;\r\n }\r\n const currentUrlValues: any[] = currentUrlParams.values;\r\n let predefinedDateRanges = this.predefinedRanges.filter((range) => {\r\n range.selected = false;\r\n let values;\r\n if (range.name === 'Custom') {\r\n const currentControlState = this.controlsClientService.lastSavedControlsState\r\n .find((state) =>\r\n state.controlTemplateId === this.control.controlTemplateId);\r\n values = [\r\n currentControlState.values[0],\r\n currentControlState.values[1]\r\n ];\r\n } else {\r\n values = calculateRelativeDate(\r\n range.includeToday,\r\n range.periodCount,\r\n range.periodType,\r\n range.startOf);\r\n }\r\n if (values[0] === currentUrlValues[0] && values[1] === currentUrlValues[1]) {\r\n range.selected = true;\r\n return range;\r\n }\r\n this.range = {\r\n start: getDateWithoutTimezoneDifference(new Date(values[0])),\r\n end: getDateWithoutTimezoneDifference(new Date(values[1]))\r\n };\r\n });\r\n if (predefinedDateRanges.length > 1) {\r\n predefinedDateRanges = predefinedDateRanges.filter((range) => {\r\n if (range.name === 'Custom') {\r\n this.predefinedRanges.forEach((currentRanges) => {\r\n if (currentRanges.name === 'Custom') {\r\n currentRanges.selected = false;\r\n }\r\n });\r\n } else {\r\n return range;\r\n }\r\n });\r\n }\r\n return predefinedDateRanges[0];\r\n }\r\n}\r\n","
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \"search\"\r\n\r\n \"cancel\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n 0; else noData\">\r\n \r\n\r\n
\r\n \r\n\r\n

\r\n {{control.dynamicDataMetadata?.valueTitle}}\r\n \r\n \r\n {{control.dynamicDataMetadata?.counterTitle}}\r\n \r\n \r\n

\r\n\r\n \r\n
\r\n {{ option.text }}\r\n\r\n \r\n {{ formatCounter(option.counter, control.dynamicDataMetadata?.counterFormat) }}\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n

\r\n \r\n \r\n {{selectDeselectPrefix}}\r\n \r\n \r\n \r\n \r\n {{control.dynamicDataMetadata?.counterTitle}}\r\n \r\n \r\n

\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n {{ formatCounter(option.counter, control.dynamicDataMetadata?.counterFormat) }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n No Data Available...\r\n
\r\n
\r\n
\r\n
\r\n","//#region Imports\r\n\r\nimport {AfterViewInit, Component, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {FilterValue, ReportControlVisualType} from '../../../services/web-api-client';\r\nimport {debounceTime, map, switchMap, takeUntil} from 'rxjs/operators';\r\nimport {GmxBiWorks} from '../../../../typings';\r\nimport {\r\n checkIfNumber,\r\n deepClone,\r\n destroySubject,\r\n formatNumericValue,\r\n indexesOfOccurrences,\r\n sortAscending,\r\n sortDescending\r\n} from '../../../utils/utilities';\r\nimport {BehaviorSubject, EMPTY, Observable, of, Subject} from 'rxjs';\r\nimport {MatRadioButton, MatSelectionList} from '@angular/material';\r\nimport {NgbPopover} from '@ng-bootstrap/ng-bootstrap';\r\nimport {ControlsBase} from '../controls-base-class';\r\nimport FilterData = GmxBiWorks.ReportControls.FilterData;\r\nimport AutoCompleteSelected = GmxBiWorks.ReportControls.AutoCompleteSelected;\r\nimport RequestQueryParameterExtended = GmxBiWorks.ReportControls.RequestQueryParameterExtended;\r\n\r\n//#endregion\r\n\r\n@Component({\r\n selector: 'gmx-bi-select-box',\r\n templateUrl: './select-box.component.html',\r\n styleUrls: ['./select-box.component.scss']\r\n})\r\nexport class SelectBoxComponent extends ControlsBase implements OnInit, AfterViewInit, OnDestroy {\r\n //#region Properties\r\n\r\n @ViewChild('selectionList') selectionList: MatSelectionList;\r\n @Input() searchPlaceholder: string;\r\n @Input() controlIdToReset: number;\r\n @Output() currentTotalSelected: BehaviorSubject = new BehaviorSubject(0);\r\n\r\n // we need originalData and finalData because of filtering and searches - we need to save the original data\r\n public originalData: FilterData[];\r\n public finalData: FilterData[];\r\n public loading = false;\r\n public showSearchBar: boolean;\r\n public computeSearchPlaceholder: string;\r\n public searchHasValue: boolean;\r\n // noinspection ParameterNamingConventionJS\r\n public selectDeselectPrefix = 'Select all ';\r\n public selectAll = true;\r\n private finalDataUnsorted: FilterData[] = null;\r\n private filterValue: string;\r\n private autoCompleteSelectedList: AutoCompleteSelected;\r\n private sortOrder = 1; // 0 - unsorted, 1 - Ascending, 2 - Descending\r\n //#endregion\r\n private currentlySelectedRadioButton: MatRadioButton;\r\n //#region Getters/Setters\r\n private filterValueSubject$ = new Subject();\r\n\r\n public get isAutoComplete() {\r\n return this.control.visualType === ReportControlVisualType.AutoCompleteSingle\r\n || this.control.visualType === ReportControlVisualType.AutoCompleteMulti;\r\n }\r\n\r\n //#endregion\r\n\r\n public get isSingleSelect() {\r\n return this.control.visualType === ReportControlVisualType.AutoCompleteSingle\r\n || this.control.visualType === ReportControlVisualType.SingleSelect;\r\n }\r\n\r\n //#region Angular LifeCycle Functions\r\n\r\n public get isMultiSelect() {\r\n return this.control.visualType === ReportControlVisualType.MultiSelect\r\n || this.control.visualType === ReportControlVisualType.AutoCompleteMulti;\r\n }\r\n\r\n public get lastSavedControlsState(): RequestQueryParameterExtended[] {\r\n return this.controlsClientService.lastSavedControlsState;\r\n }\r\n\r\n static sortSelectedData(data: FilterData[]) {\r\n if (!data) {\r\n return;\r\n }\r\n data.sort((a) =>\r\n a.selected ? -1 : 1);\r\n data.sort((a, b) =>\r\n a.selected ? -1 : 1 || a.text.localeCompare(b.text));\r\n }\r\n\r\n private static replaceCharInString(str: string, indices: number[], searchLength: number): string {\r\n const charArray: string[] = str.split('');\r\n for (const item of indices) {\r\n charArray[item] = '' + charArray[item];\r\n charArray[item + searchLength] += '';\r\n }\r\n return charArray.join('');\r\n }\r\n\r\n //#endregion\r\n\r\n public ngOnInit(): void {\r\n if (this.isAutoComplete) {\r\n this.showSearchBar = this.isAutoComplete;\r\n this.computeSearchPlaceholder = this.searchPlaceholder\r\n ? this.searchPlaceholder\r\n : `Search ${this.control.title.toLowerCase()}`;\r\n const autoCompleteSelected = this.getAutoCompleteSelected();\r\n this.finalData = autoCompleteSelected\r\n ? autoCompleteSelected.filteredData\r\n : [];\r\n this.initSelectedValues(this.getSelectedValuesValues());\r\n this.filterValueSubject$\r\n .pipe(\r\n debounceTime(500),\r\n map(valueChanged => valueChanged),\r\n switchMap(valueChanged => valueChanged\r\n ? this.controlsClientService.getReportControlData(\r\n this.control.reportId,\r\n this.control.controlTemplateId,\r\n this.controlsClientService.requestQueryParameters,\r\n this.filterValue)\r\n : EMPTY),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((controlData) => {\r\n this.initSelectedValues(this.getSelectedValuesValues());\r\n this.originalData = deepClone(this.normalizeData(controlData));\r\n const autoCompleteSelectedList =\r\n this.getAutoCompleteSelected()\r\n ? this.getAutoCompleteSelected().filteredData\r\n : [];\r\n\r\n if (autoCompleteSelectedList.length <= 0) {\r\n this.finalData = deepClone(this.originalData);\r\n } else {\r\n const uniqueArray = deepClone(autoCompleteSelectedList);\r\n this.originalData.filter((data) => {\r\n const uniqueValue = autoCompleteSelectedList\r\n .find((selected) =>\r\n selected.value === data.value);\r\n if (!uniqueValue) {\r\n uniqueArray.push(data);\r\n }\r\n });\r\n this.finalData = deepClone(uniqueArray);\r\n SelectBoxComponent.sortSelectedData(this.finalData);\r\n }\r\n this.loading = false;\r\n this.emitCurrentTotalSelected();\r\n }, () => {\r\n this.loading = false;\r\n });\r\n } else {\r\n this.loading = true;\r\n this.initializeControlData()\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((data) => {\r\n this.finalData = data;\r\n if (data) {\r\n this.checkIfAllSelected();\r\n }\r\n if (this.control.visualType !== ReportControlVisualType.SingleSelect) {\r\n SelectBoxComponent.sortSelectedData(this.finalData);\r\n }\r\n this.showSearchBar = this.isAutoComplete ||\r\n (this.originalData && this.originalData.length > 10);\r\n\r\n this.computeSearchPlaceholder = this.searchPlaceholder\r\n ? this.searchPlaceholder\r\n : `Search ${this.control.title.toLowerCase()}`;\r\n this.loading = false;\r\n this.emitCurrentTotalSelected();\r\n }, () => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.applyClickedEvent\r\n .pipe(\r\n takeUntil(this.applyClicked$)\r\n )\r\n .subscribe((clicked) => {\r\n if (clicked) {\r\n this.apply();\r\n }\r\n });\r\n if (this.isAutoComplete) {\r\n this.emitCurrentTotalSelected();\r\n }\r\n }, 0);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.filterValueSubject$);\r\n destroySubject(this.reportControl$);\r\n destroySubject(this.applyClicked$);\r\n }\r\n\r\n public trackByListFn(index, item): void {\r\n return item.text;\r\n }\r\n\r\n public initializeControlData(): Observable {\r\n this.initSelectedValues(this.getSelectedValuesValues());\r\n if (this.control.staticData) {\r\n this.originalData = deepClone(this.normalizeData(this.control.staticData));\r\n return of(this.originalData);\r\n }\r\n\r\n return new Observable(observer => {\r\n this.controlsClientService.getReportControlData(\r\n this.control.reportId,\r\n this.control.controlTemplateId,\r\n this.controlsClientService.requestQueryParameters)\r\n .pipe(takeUntil(this.reportControl$))\r\n .subscribe((filterData) => {\r\n this.controlsClientService.updateFilterState();\r\n this.originalData = deepClone(this.normalizeData(filterData));\r\n this.finalData = deepClone(this.originalData);\r\n observer.next(this.normalizeData(filterData));\r\n }, (error) => {\r\n observer.error(error);\r\n }, (() => {\r\n observer.complete();\r\n })\r\n );\r\n });\r\n }\r\n\r\n public handleSearch(currentTarget: EventTarget): void {\r\n const searchTerm = (currentTarget as HTMLInputElement).value;\r\n if (this.isAutoComplete) {\r\n if (searchTerm.length >= 2) {\r\n this.loading = true;\r\n this.filterValue = searchTerm;\r\n this.filterValueSubject$.next(true);\r\n } else {\r\n const autoCompleteSelectedList = this.getAutoCompleteSelected();\r\n this.finalData =\r\n autoCompleteSelectedList\r\n ? autoCompleteSelectedList.filteredData\r\n : [];\r\n }\r\n } else {\r\n this.finalData = this.transform(this.originalData, searchTerm);\r\n }\r\n this.searchHasValue = searchTerm.length > 0;\r\n }\r\n\r\n public clearSearch() {\r\n this.finalData = deepClone(this.originalData);\r\n this.searchHasValue = false;\r\n }\r\n\r\n public multiSelectValueChanged(option: FilterData): void {\r\n option.selected = !option.selected;\r\n let optionIndexInSelectedValues = this.selectedValues.values.indexOf(option.value);\r\n if (optionIndexInSelectedValues === -1) {\r\n if (checkIfNumber(option.value)) {\r\n optionIndexInSelectedValues = this.selectedValues.values.indexOf(+option.value);\r\n }\r\n }\r\n if (optionIndexInSelectedValues === -1) {\r\n this.selectedValues.values.push(option.value);\r\n this.addToAutoCompleteSelected(option);\r\n } else {\r\n this.selectedValues.values.splice(optionIndexInSelectedValues, 1);\r\n this.removeFromAutoCompleteSelected(optionIndexInSelectedValues);\r\n }\r\n this.emitCurrentTotalSelected();\r\n this.controlsClientService.setCurrentState(this.selectedValues);\r\n }\r\n\r\n public singleSelectValueChanged(option: FilterData,\r\n currentlySelectedRadioButton: MatRadioButton): void {\r\n this.currentlySelectedRadioButton = currentlySelectedRadioButton;\r\n this.selectedValues.values = [option.value];\r\n option.selected = true;\r\n this.emitCurrentTotalSelected();\r\n this.controlsClientService.setCurrentState(this.selectedValues);\r\n }\r\n\r\n public isTruncated($event: MouseEvent, listItem: NgbPopover): void {\r\n const e: any = $event.currentTarget;\r\n if (e.offsetWidth < e.scrollWidth) {\r\n listItem.open();\r\n }\r\n }\r\n\r\n formatCounter(counter: number, counterFormat: string) {\r\n return formatNumericValue(counter, this.intl, counterFormat, false);\r\n }\r\n\r\n public checkAll(selectAll: boolean): void {\r\n this.finalData.forEach((data) => data.selected = selectAll);\r\n\r\n if (selectAll) {\r\n this.autoCompleteSelectedList.filteredData = this.finalData.map((data) => data);\r\n this.selectedValues.values = this.finalData.map((data) => data.value);\r\n } else {\r\n this.autoCompleteSelectedList.filteredData = [];\r\n this.selectedValues.values = [];\r\n }\r\n\r\n this.controlsClientService.setAutoCompleteSelectedValue(this.autoCompleteSelectedList);\r\n this.emitCurrentTotalSelected();\r\n this.controlsClientService.setCurrentState(this.selectedValues);\r\n\r\n this.selectAll = !selectAll;\r\n this.selectDeselectPrefix =\r\n this.selectAll\r\n ? 'Select all '\r\n : 'Deselect all ';\r\n }\r\n\r\n public sortData(): void {\r\n if (!this.finalDataUnsorted) {\r\n this.finalDataUnsorted = deepClone(this.finalData);\r\n }\r\n switch (this.sortOrder) {\r\n // Unsorted\r\n case 0:\r\n this.sortOrder++;\r\n this.unsort();\r\n break;\r\n\r\n // Ascending\r\n case 1:\r\n this.sortOrder++;\r\n this.finalData = sortAscending(this.finalData, 'counter');\r\n break;\r\n\r\n // Descending\r\n default:\r\n this.sortOrder = 0;\r\n this.finalData = sortDescending(this.finalData, 'counter');\r\n break;\r\n }\r\n }\r\n\r\n private unsort() {\r\n const selectedData: string[] = this.finalData.map((filterData) => {\r\n if (filterData.selected) {\r\n return filterData.text;\r\n }\r\n }).filter((el) => el !== undefined);\r\n this.finalData = deepClone(this.finalDataUnsorted);\r\n selectedData.forEach((text) => {\r\n const filterData = this.finalData.find((value) => value.text === text);\r\n filterData.selected = true;\r\n });\r\n }\r\n\r\n private transform(items: FilterData[], searchTerm: string): FilterData[] {\r\n if (!items || !searchTerm) {\r\n return items;\r\n }\r\n const searchLength = searchTerm.length - 1;\r\n const originalResults: FilterData[] =\r\n deepClone(items.filter((item) => item.text.toLowerCase().includes(searchTerm.toLowerCase()) === true));\r\n\r\n const transformedResults: FilterData[] = deepClone(originalResults);\r\n\r\n transformedResults.filter((value) => {\r\n const indices: number[] = indexesOfOccurrences(value.text, searchTerm);\r\n value.text = SelectBoxComponent.replaceCharInString(value.text, indices, searchLength);\r\n });\r\n return transformedResults;\r\n }\r\n\r\n private apply(): void {\r\n this.applyControls();\r\n this.emitCurrentSelectedTitle();\r\n }\r\n\r\n private getAutoCompleteSelected(): AutoCompleteSelected {\r\n const originalState = this.controlsClientService.originalAutoCompleteSelected.find((selected) =>\r\n selected.controlTemplateId === this.control.controlTemplateId);\r\n const currentState = this.controlsClientService.autoCompleteSelected.find((selected) =>\r\n selected.controlTemplateId === this.control.controlTemplateId);\r\n if (currentState) {\r\n return deepClone(currentState);\r\n }\r\n return deepClone(originalState);\r\n }\r\n\r\n private normalizeData(filterData: FilterValue[]): FilterData[] {\r\n if (filterData.length === 0) {\r\n return null;\r\n }\r\n\r\n return filterData.map(filterRow => {\r\n // == is intentional to check it's value even if the type is wrong\r\n // tslint:disable-next-line:triple-equals\r\n let values = this.selectedValues.values.find(selectedValue => selectedValue == filterRow.value);\r\n values = !values && !filterRow.value && this.selectedValues.values[0] === '' ? true : values;\r\n return {\r\n text: filterRow.text,\r\n value: filterRow.value ? filterRow.value : '',\r\n selected: values !== undefined,\r\n counter: filterRow.counter\r\n };\r\n });\r\n }\r\n\r\n private getSelectedValuesValues(): any[] {\r\n const autoCompleteSelected = this.getAutoCompleteSelected();\r\n this.autoCompleteSelectedList = {\r\n controlTemplateId: this.control.controlTemplateId,\r\n filteredData: autoCompleteSelected ? autoCompleteSelected.filteredData : []\r\n };\r\n if (this.lastSavedControlsState) {\r\n const currentControl =\r\n this.lastSavedControlsState.find((control) =>\r\n control.controlTemplateId === this.control.controlTemplateId);\r\n return deepClone(currentControl.values) || [];\r\n }\r\n if (this.control.defaultValues) {\r\n return deepClone(this.control.defaultValues.map(val => val.value));\r\n }\r\n return [];\r\n }\r\n\r\n private addToAutoCompleteSelected(option: FilterData) {\r\n this.autoCompleteSelectedList.filteredData.push(option);\r\n this.controlsClientService.setAutoCompleteSelectedValue(this.autoCompleteSelectedList);\r\n }\r\n\r\n private removeFromAutoCompleteSelected(optionIndexInSelectedValues: number) {\r\n this.autoCompleteSelectedList.filteredData.splice(optionIndexInSelectedValues, 1);\r\n this.controlsClientService.setAutoCompleteSelectedValue(this.autoCompleteSelectedList);\r\n }\r\n\r\n private emitCurrentTotalSelected(): void {\r\n this.currentTotalSelected.next(this.selectedValues.values.length);\r\n }\r\n\r\n private emitCurrentSelectedTitle(): void {\r\n const control = this.controlsClientService.controlsTitles\r\n .find((_control) => _control.controlTemplateId === this.control.controlTemplateId);\r\n\r\n // if only 1 selected value => update control with it or create if control does not exist\r\n if (this.selectedValues && this.selectedValues.values && this.selectedValues.values.length === 1) {\r\n // to avoid sending the marked up tokenized title we do this:\r\n control.title = this.originalData\r\n ? this.originalData.find((data) => data.value === this.selectedValues.values[0]).text\r\n : control.title;\r\n return;\r\n }\r\n\r\n // if more or less than 1 selected value => update control with it or create if control does not exist\r\n control.title = this.control.title;\r\n }\r\n\r\n private checkIfAllSelected() {\r\n const notAllSelected = this.finalData.find((data) => !data.selected);\r\n if (!notAllSelected) {\r\n this.selectDeselectPrefix = 'Deselect all ';\r\n this.selectAll = false;\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

Please wait..

\r\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gmx-bi-dice-loader',\r\n templateUrl: './dice-loader.component.html',\r\n styleUrls: ['./dice-loader.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DiceLoaderComponent {\r\n}\r\n","
\r\n
\r\n
\r\n

\r\n An Error has occurred!\r\n {{error.errors[0].error}}\r\n

\r\n\r\n
\r\n
Status Code: {{ error.statusCode }}
\r\n
Status Text: {{ error.statusText }}
\r\n
\r\n\r\n
\r\n {{ status }}\r\n
\r\n
\r\n \r\n

\r\n An unknown error has occurred\r\n

\r\n
\r\n
\r\n
\r\n","//#region Imports\r\n\r\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\nimport {GmxBiWorks} from '../../../../typings';\r\nimport {Observable} from 'rxjs';\r\n\r\n//#endregion\r\n\r\n@Component({\r\n selector: 'gmx-bi-not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NotFoundComponent {\r\n //#region Properties\r\n\r\n @Input() errorObservable: Observable;\r\n public forbiddenError: 403;\r\n\r\n //#endregion\r\n\r\n public trackByFn(index, item) {\r\n return item.id;\r\n }\r\n\r\n public copyText(status: string) {\r\n status = status.slice(status.lastIndexOf(': ')).substring(2);\r\n event.preventDefault();\r\n\r\n\r\n const listener = (e: ClipboardEvent) => {\r\n // Support all Browsers copy function\r\n const clipboard = e.clipboardData || (window as any).clipboardData;\r\n clipboard.setData('text', status);\r\n e.preventDefault();\r\n };\r\n\r\n document.addEventListener('copy', listener, false);\r\n document.execCommand('copy');\r\n document.removeEventListener('copy', listener, false);\r\n }\r\n}\r\n","
\r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n

\r\n Welcome {{userClientService.user.name}}\r\n

\r\n
\r\n You are not assigned to a Tenant\r\n
\r\n\r\n \r\n Please contact your nearest administrator to bestow a Tenant upon you\r\n \r\n\r\n
\r\n \r\n\r\n
\r\n \r\n\r\n
\r\n","//#region Imports\r\n\r\nimport {Component} from '@angular/core';\r\nimport {UserClientService} from '../../../services/client/user-client.service';\r\n\r\n//#endregion\r\n\r\n@Component({\r\n selector: 'gmx-bi-unauthorized-user',\r\n templateUrl: './unauthorized-user.component.html',\r\n styleUrls: ['./unauthorized-user.component.scss']\r\n})\r\nexport class UnauthorizedUserComponent {\r\n constructor(public userClientService: UserClientService) {\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n Loading...\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import {Component, Input} from '@angular/core';\r\nimport {LoaderStyle} from '../../enums/enums';\r\n\r\n@Component({\r\n selector: 'gmx-bi-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.scss']\r\n})\r\nexport class LoaderComponent {\r\n @Input() loading: boolean;\r\n @Input() progressBar: boolean;\r\n @Input() overlay: boolean;\r\n @Input() loaderStyle: LoaderStyle;\r\n public style = LoaderStyle;\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

{{ heading }}

\r\n
\r\n
\r\n
{{ content.heading }}
\r\n

{{ content.description }}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import {Component, Injectable, Input} from '@angular/core';\r\nimport {MDBModalRef} from 'ng-uikit-pro-standard';\r\nimport {Subject} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'gmx-bi-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.scss']\r\n})\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalComponent {\r\n @Input() public heading: string;\r\n @Input() public content: any;\r\n @Input() public closeModal: any;\r\n\r\n public action: Subject = new Subject();\r\n\r\n constructor(public modalRef: MDBModalRef) {\r\n }\r\n\r\n onCloseClick() {\r\n this.modalRef.hide();\r\n this.action.next(this.closeModal);\r\n }\r\n}\r\n","\r\n \r\n\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {animate, keyframes, style, transition, trigger} from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'gmx-bi-refresh-button',\r\n templateUrl: './refresh-button.component.html',\r\n styleUrls: ['./refresh-button.component.scss'],\r\n animations: [\r\n trigger('spinAnimation', [\r\n transition(\r\n 'start <=> finish',\r\n animate(\r\n '600ms ease-in',\r\n keyframes([style({transform: 'rotate(0deg)'}), style({transform: 'rotate(360deg)'})])\r\n )\r\n )\r\n ])\r\n ]\r\n})\r\nexport class RefreshButtonComponent {\r\n @Output() refreshClickEvent = new EventEmitter();\r\n @Input() tooltipText: string;\r\n state = 'start';\r\n\r\n animateMe() {\r\n this.state = this.state === 'start' ? 'finish' : 'start';\r\n this.refreshClickEvent.emit();\r\n }\r\n}\r\n","
\r\n
\r\n
L
\r\n
o
\r\n
a
\r\n
d
\r\n
i
\r\n
n
\r\n
g
\r\n
.
\r\n
.
\r\n
.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
L
\r\n
o
\r\n
a
\r\n
d
\r\n
i
\r\n
n
\r\n
g
\r\n
.
\r\n
.
\r\n
.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gmx-bi-ring-loader',\r\n templateUrl: './ring-loader.component.html',\r\n styleUrls: ['./ring-loader.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class RingLoaderComponent {\r\n}\r\n","export const MICROSOFT_RENEW_TOKEN_URL = 'https://graph.microsoft.com';","export const MINUTES_TO_LOGOUT = 300; // in Minutes\r\n\r\nconst MINUTES_TO_CHECK_PERMISSIONS = 5; // in Minutes\r\n\r\nexport const LOGOUT_REFRESH_RATE = MINUTES_TO_LOGOUT * 60 * 1000; // in ms\r\n\r\nexport const PERMISSIONS_REFRESH_RATE = MINUTES_TO_CHECK_PERMISSIONS * 60 * 1000; // in ms\r\n","export const GRID_SIZE = {\r\n cellsPerRow: 120,\r\n outerMargin: 30,\r\n margin: 0\r\n};\r\n","import {GmxBiWorks} from '../../typings';\r\nimport FilterData = GmxBiWorks.ReportControls.FilterData;\r\n\r\nexport const colors = {\r\n material: ['#3F51B5', '#2196F3', '#43A047', '#FFC107', '#FF5722', '#E91E63', '#7F35B2'],\r\n kendo: ['#FF6358', '#FFD246', '#78D237', '#28B4C8', '#2D73F5', '#AA46BE', '#E11E85'],\r\n happyDay: ['#3399FF', '#CC66FF', '#FF6633', '#66CC66', '#FF66FF', '#99CCFF', '#FFCC33'],\r\n sunnyDay: ['#AA46BE', '#FFD246', '#78D237', '#28B4C8', '#FF6358', '#2D73F5', '#CCCCCC'],\r\n savvyEsthetics: ['#4197D7', '#91E59B', '#775AD9', '#8F4C6B', '#CE764E', '#E6E6E6', '#D9D679'],\r\n techTrust: ['#6AB8DC', '#878787', '#A3C964', '#B7B7DD', '#DB6013', '#DCBA3F', '#E2171E'],\r\n bird: ['#EAC124', '#3563EB', '#D92405', '#FBCC88', '#4ED5C7', '#6C7197', '#FF6358'],\r\n pleasent: ['#FC6472', '#F4B2A6', '#ECCDB3', '#BCEFD0', '#A1E8E4', '#23C8B2', '#C3ECEE'],\r\n summerNight: ['#725CA5', '#022336', '#9CDFF0', '#60824F', '#FBDF72', '#A64027', '#2A7185'],\r\n royal: ['#06004B', '#0106D1', '#2A0161', '#5225D8', '#5C015E', '#C000A4', '#F85C05'],\r\n spring: ['#C60002', '#ADBDF7', '#FCAA02', '#FA71B5', '#C2CD07', '#F85C05', '#E73981'],\r\n museLightMode: [\r\n '#24c7db', '#7560ef', '#ffb126', '#8feba1',\r\n '#fc4c6b', '#229955', '#79ADF2', '#A86B00',\r\n '#661188', '#115588', '#992222', '#557777',\r\n '#BBDDDD', '#330008', '#555577'],\r\n museDarkMode: [\r\n '#00ddf8', '#ac9ff5', '#ffa600', '#00f835', '#ff455d'\r\n ],\r\n customColors: [\r\n '#00ddf8', '#9483f5', '#FFC94D', '#2CE69B',\r\n '#ff00e5', '#ff455d', '#6198FF', '#FF7B9B'\r\n ]\r\n};\r\n\r\nexport const colorPalletDropDownItems: FilterData[] = [\r\n {category: null, text: 'material', value: 1, selected: true},\r\n {category: null, text: 'kendo', value: 2, selected: false},\r\n {category: null, text: 'happyDay', value: 3, selected: false},\r\n {category: null, text: 'sunnyDay', value: 4, selected: false},\r\n {category: null, text: 'savvyEsthetics', value: 5, selected: false},\r\n {category: null, text: 'techTrust', value: 6, selected: false},\r\n {category: null, text: 'bird', value: 7, selected: false},\r\n {category: null, text: 'pleasent', value: 8, selected: false},\r\n {category: null, text: 'summerNight', value: 9, selected: false},\r\n {category: null, text: 'royal', value: 10, selected: false},\r\n {category: null, text: 'spring', value: 11, selected: false}\r\n];\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n constructor() {\r\n }\r\n\r\n static login(user, password) {\r\n const headers = new Headers();\r\n headers.append('Content-Type', 'application/json');\r\n\r\n return true;\r\n // return this.http\r\n // .post(\r\n // this.baseUrl + '/auth/login',\r\n // JSON.stringify({ user, password }),{ headers }\r\n // )\r\n // .map(res => res.json())\r\n // .map(res => {\r\n // localStorage.setItem('auth_token', res.auth_token);\r\n // this.loggedIn = true;\r\n // this._authNavStatusSource.next(true);\r\n // return true;\r\n // })\r\n // .catch(this.handleError);\r\n }\r\n\r\n static register(email: string, password: string, firstName: string, lastName: string, location: string) {\r\n return true;\r\n // let body = JSON.stringify({ email, password, firstName, lastName,location });\r\n // let headers = new Headers({ 'Content-Type': 'application/json' });\r\n // let options = new RequestOptions({ headers: headers });\r\n\r\n // return this.http.post(this.baseUrl + \"/accounts\", body, options)\r\n // .map(res => true)\r\n // .catch(this.handleError);\r\n }\r\n}\r\n","import {NgModule, Optional, SkipSelf} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {HttpClientModule} from '@angular/common/http';\r\n\r\nimport {UserService} from './UserService/user.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ],\r\n declarations: [],\r\n providers: [\r\n UserService\r\n ]\r\n})\r\nexport class CoreModule {\r\n /* make sure CoreModule is imported only by one NgModule the AppModule */\r\n constructor(\r\n @Optional() @SkipSelf() parentModule: CoreModule\r\n ) {\r\n if (parentModule) {\r\n throw new Error('CoreModule is already loaded. Import only in AppModule');\r\n }\r\n }\r\n}\r\n","import {Directive, ElementRef, EventEmitter, HostListener, Output} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[gmxBiClickOutside]'\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() public gmxBiClickOutside = new EventEmitter();\r\n\r\n constructor(private elementRef: ElementRef) {\r\n }\r\n\r\n @HostListener('document:mousedown', ['$event.target'])\r\n public onClick(targetElement) {\r\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.gmxBiClickOutside.emit(targetElement);\r\n }\r\n }\r\n}\r\n","import {Directive, HostListener} from '@angular/core';\r\nimport {AdminService} from '../services/admin.service';\r\n\r\n@Directive({\r\n selector: '[gmxBiIsAdmin]'\r\n})\r\nexport class IsAdminDirective {\r\n private firstPress = false;\r\n\r\n constructor(private adminService: AdminService) {\r\n }\r\n\r\n @HostListener('window:keyup', ['$event'])\r\n keyEvent(event: KeyboardEvent) {\r\n if (event.key === 'Control') {\r\n if (this.firstPress) {\r\n // they have already clicked once, we have a double\r\n this.adminService.inAdminMode = !this.adminService.inAdminMode;\r\n this.firstPress = false;\r\n } else {\r\n // this is their first key press\r\n this.firstPress = true;\r\n\r\n // if they don't click again in half a second, reset\r\n window.setTimeout(() => {\r\n this.firstPress = false;\r\n }, 500);\r\n }\r\n }\r\n }\r\n}\r\n","export enum WidgetDataType {\r\n table,\r\n chart\r\n}\r\n\r\nexport enum ChartTypeComponent {\r\n // noinspection LocalVariableNamingConventionJS\r\n SeriesChartComponent = 'SeriesChartComponent',\r\n TableComponent = 'TableComponent',\r\n PercentageChangeComponent = 'PercentageChangeComponent',\r\n NumberScalarComponent = 'NumberScalarComponent',\r\n LinearGaugeComponent = 'LinearGaugeComponent',\r\n MapComponent = 'MapComponent',\r\n SparklineComponent = 'SparklineComponent',\r\n TextComponent = 'Text'\r\n}\r\n\r\nexport enum FilterType {\r\n // noinspection LocalVariableNamingConventionJS\r\n 'Relative' = 'Relative date filtering',\r\n 'Custom' = 'Custom time filtering'\r\n}\r\n\r\nexport enum LogLevel {\r\n // noinspection LocalVariableNamingConventionJS\r\n All = 0,\r\n Debug = 1,\r\n Info = 2,\r\n Warning = 3,\r\n Error = 4,\r\n Fatal = 5,\r\n Off = 6\r\n}\r\n\r\nexport enum HttpStatusCode {\r\n // noinspection LocalVariableNamingConventionJS\r\n OK = 200,\r\n NoContent = 204,\r\n BadRequest = 400,\r\n Unauthorized = 401,\r\n Forbidden = 403,\r\n NotFound = 404,\r\n MethodNotAllowed = 405,\r\n InternalServerError = 500\r\n}\r\n\r\nexport enum PERMISSION_NAME {\r\n CanCustomizeReport = 'Report.CanCustomize'\r\n}\r\n\r\nexport enum ApiCallComponent {\r\n ReportMetadata = 'ReportMetadata',\r\n ControlData = 'ControlData',\r\n WidgetData = 'WidgetData'\r\n}\r\n\r\nexport enum LoaderStyle {\r\n 'progress',\r\n 'spinner',\r\n 'circle'\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {MsAdalAngular6Service} from 'microsoft-adal-angular6';\r\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpRequest} from '@angular/common/http';\r\n\r\nimport {Observable, of, throwError} from 'rxjs';\r\nimport {catchError, delay, map, mergeMap, retryWhen, shareReplay} from 'rxjs/operators';\r\nimport {GmxBiWorks} from '../../typings';\r\nimport {blobToText} from '../utils/utilities';\r\nimport {LogService} from '../services/client/log.service';\r\nimport {MICROSOFT_RENEW_TOKEN_URL} from '../configs/adal';\r\n\r\n@Injectable()\r\nexport class HttpInterceptor implements HttpInterceptor {\r\n constructor(\r\n private adalSvc: MsAdalAngular6Service,\r\n private logger: LogService) {\r\n }\r\n\r\n private static successfulHttpCall(event: HttpEvent) {\r\n return event;\r\n }\r\n\r\n // noinspection JSUnusedGlobalSymbols\r\n intercept(req: HttpRequest, next: HttpHandler) {\r\n let resource = this.adalSvc.GetResourceForEndpoint(req.url);\r\n if (!resource) {\r\n resource = MICROSOFT_RENEW_TOKEN_URL;\r\n this.adalSvc.RenewToken(resource);\r\n }\r\n\r\n return this.executeRequest(req, next, resource);\r\n }\r\n\r\n // Executes HTTP request\r\n // 1. Acquire Token\r\n // 2. Execute request with token as bearer\r\n // 3. Retry on failure (up to 3 times, 100ms interval)\r\n private executeRequest(req: HttpRequest, next: HttpHandler, resource: string) {\r\n return this.adalSvc\r\n .acquireToken(resource)\r\n .pipe(\r\n mergeMap((token: string) => {\r\n const authorizedRequest = req.clone({\r\n headers: req.headers.set('Authorization', `Bearer ${token}`),\r\n });\r\n\r\n return next.handle(authorizedRequest)\r\n .pipe(\r\n this.retryWithBackOff(),\r\n map((event: HttpEvent) => {\r\n return HttpInterceptor.successfulHttpCall(event);\r\n }),\r\n catchError((httpError: HttpErrorResponse) => {\r\n return this.failedHttpCall(httpError);\r\n }),\r\n shareReplay()\r\n );\r\n })\r\n );\r\n }\r\n\r\n private failedHttpCall(httpError: HttpErrorResponse) {\r\n this.logger.logError(httpError, 'HttpInterceptor');\r\n\r\n return blobToText(httpError.error).pipe(mergeMap(responseText => {\r\n const errorContent = responseText ? JSON.parse(responseText) : null;\r\n const data: GmxBiWorks.HttpError.CustomHttpError = {\r\n errors: errorContent\r\n ? Array.isArray(errorContent)\r\n ? errorContent\r\n : [errorContent]\r\n : null,\r\n httpErrorResponse: httpError,\r\n statusCode: httpError.status,\r\n statusText: httpError.statusText,\r\n uuid: null\r\n };\r\n return throwError(data);\r\n }));\r\n }\r\n\r\n private retryWithBackOff(totalRetries = 3, minDelayMs = 100) {\r\n let retriesCount = 1;\r\n return (src: Observable) =>\r\n src.pipe(\r\n retryWhen((errors: Observable) =>\r\n errors.pipe(\r\n mergeMap(error => {\r\n // if ([404, 502, 503, 504].includes(error.status) && retriesCount++ <= totalRetries) {\r\n // return of(error).pipe(delay(retriesCount * minDelayMs));\r\n // }\r\n\r\n // error.status 0 is when the server is dead - only then do we retry the call\r\n if (error.status === 0 && retriesCount++ <= totalRetries) {\r\n return of(error).pipe(delay(retriesCount * minDelayMs));\r\n }\r\n return throwError(error);\r\n })\r\n ))\r\n );\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\r\nimport {Observable} from 'rxjs';\r\nimport {ActivationEnd, Router} from '@angular/router';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {HttpCancelService} from '../services/http-cancel.service';\r\n\r\n@Injectable()\r\nexport class ManageHttpInterceptor implements HttpInterceptor {\r\n\r\n constructor(router: Router,\r\n private httpCancelService: HttpCancelService) {\r\n router.events.subscribe(event => {\r\n // An event triggered at the end of the activation part of the Resolve phase of routing.\r\n if (event instanceof ActivationEnd) {\r\n // Cancel pending calls\r\n this.httpCancelService.cancelPendingRequests();\r\n }\r\n });\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(req).pipe(takeUntil(this.httpCancelService.onCancelPendingRequests()));\r\n }\r\n}\r\n","import {A11yModule} from '@angular/cdk/a11y';\r\nimport {PortalModule} from '@angular/cdk/portal';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport {CdkStepperModule} from '@angular/cdk/stepper';\r\nimport {CdkTableModule} from '@angular/cdk/table';\r\nimport {CdkTreeModule} from '@angular/cdk/tree';\r\nimport {NgModule} from '@angular/core';\r\nimport {\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\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 MatStepperModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule\r\n} from '@angular/material';\r\n\r\n@NgModule({\r\n exports: [\r\n A11yModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\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 MatTreeModule,\r\n PortalModule,\r\n ScrollingModule\r\n ]\r\n})\r\nexport class MaterialModule {\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'chartTypeFamily'\r\n})\r\nexport class ChartTypeFamilyPipe implements PipeTransform {\r\n transform(widgetVisual: any): any {\r\n switch (widgetVisual) {\r\n case 'line':\r\n case 'bar':\r\n return 'Categorical';\r\n case 'donut':\r\n case 'donutmulti':\r\n case 'pie':\r\n return 'Circular';\r\n default:\r\n return 'Categorical';\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {format} from 'date-fns';\r\n\r\n@Pipe({\r\n name: 'dateRange'\r\n})\r\nexport class DateRangePipe implements PipeTransform {\r\n transform(range: any): any {\r\n return range\r\n ? format(new Date(range), 'dd MMM yyyy')\r\n : '';\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dictionaryToArray'\r\n})\r\nexport class DictionaryToArrayPipe implements PipeTransform {\r\n transform(value: any): any {\r\n return Object.values(value);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'fontScale'\r\n})\r\nexport class FontScalePipe implements PipeTransform {\r\n // Root font size is 16px\r\n transform(value: number): string {\r\n return `${value * 16}px`;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {formatNumericValue} from '../utils/utilities';\r\nimport {IntlService} from '@progress/kendo-angular-intl';\r\n\r\n@Pipe({\r\n name: 'formatValue'\r\n})\r\nexport class FormatValuePipe implements PipeTransform {\r\n\r\n transform(intl: IntlService, value: number, format: string = null, shouldMillify: boolean = true): any {\r\n return formatNumericValue(value, intl, format, shouldMillify);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {of} from 'rxjs';\r\n\r\n@Pipe({\r\n name: 'makeObservable'\r\n})\r\nexport class MakeObservablePipe implements PipeTransform {\r\n transform(data: any): any {\r\n return of(data);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'removeMarkUp'\r\n})\r\nexport class RemoveMarkUpPipe implements PipeTransform {\r\n transform(markupString: string): string {\r\n return markupString.replace(/<[^>]*>/g, '');\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe'\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n constructor(protected sanitizer: DomSanitizer) {\r\n }\r\n\r\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n switch (type) {\r\n case 'html':\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n case 'style':\r\n return this.sanitizer.bypassSecurityTrustStyle(value);\r\n case 'script':\r\n return this.sanitizer.bypassSecurityTrustScript(value);\r\n case 'url':\r\n return this.sanitizer.bypassSecurityTrustUrl(value);\r\n case 'resourceUrl':\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n default:\r\n console.log(`Unable to bypass security for invalid type: ${type}`);\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {GmxBiWorks} from '../../typings';\r\nimport NumbersChangeResult = GmxBiWorks.DataPoints.NumbersChangeResult;\r\n\r\n@Pipe({\r\n name: 'scalarTitleWidth'\r\n})\r\nexport class ScalarTitleWidthPipe implements PipeTransform {\r\n transform(item: NumbersChangeResult): any {\r\n return item.newValue !== 0 || item.sparklineData ? 'w-50' : 'w-100';\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {formatNumericValue, getTooltipCategoryFormat} from '../utils/utilities';\r\nimport {IntlService} from '@progress/kendo-angular-intl';\r\n\r\n@Pipe({\r\n name: 'seriesFormattedValue'\r\n})\r\nexport class SeriesFormattedValuePipe implements PipeTransform {\r\n transform(intl: IntlService, metadata, originalData, formattedData, category, visualIndex: number = -1): any {\r\n if (visualIndex > -1) {\r\n return this.getTooltipValueText(intl, metadata, category, visualIndex);\r\n }\r\n const index = originalData.findIndex((_category) => _category === category);\r\n if (index !== -1) {\r\n return formattedData[index];\r\n }\r\n return getTooltipCategoryFormat(category);\r\n }\r\n\r\n public getTooltipValueText(intl, metadata, value, visualIndex = 0, point: any = null): string {\r\n if (point && point.dataItem && point.dataItem.tooltip && point.dataItem.tooltip.formattedValue) {\r\n return point.dataItem.tooltip.formattedValue;\r\n }\r\n\r\n return this.formatValue(intl, value, metadata.visuals[visualIndex].format);\r\n }\r\n\r\n public formatValue(intl, value: number, format: string = null, shouldMillify: boolean = true): string {\r\n return formatNumericValue(value, intl, format, shouldMillify);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {formatNumericValue} from '../utils/utilities';\r\nimport {IntlService} from '@progress/kendo-angular-intl';\r\n\r\n@Pipe({\r\n name: 'seriesTooltipValueText'\r\n})\r\nexport class SeriesTooltipValueTextPipe implements PipeTransform {\r\n\r\n static formatValue(intl: IntlService, value: number, format: string = null): string {\r\n return formatNumericValue(value, intl, format, false);\r\n }\r\n\r\n transform(intl: IntlService, metaData, allSeries, value, name, point: any = null): any {\r\n if (point && point.dataItem && point.dataItem.tooltip && point.dataItem.tooltip.formattedValue) {\r\n return point.dataItem.tooltip.formattedValue;\r\n }\r\n const vIndex = this.getVisualIndex(allSeries, name);\r\n return SeriesTooltipValueTextPipe.formatValue(intl, value, metaData.visuals[vIndex].format);\r\n }\r\n\r\n private getVisualIndex(allSeries, name: string = null) {\r\n let index = 0;\r\n allSeries.forEach((series, i) => {\r\n series.forEach((seriesData) => {\r\n if (name === seriesData.name) {\r\n index = i;\r\n return;\r\n }\r\n });\r\n });\r\n return index;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'seriesTooltipValueTitle'\r\n})\r\nexport class SeriesTooltipValueTitlePipe implements PipeTransform {\r\n\r\n transform(metadata, visualIndex = 0, title: string = null, point: any = null): any {\r\n if (title) {\r\n return title;\r\n }\r\n if (point && point.dataItem && point.dataItem.tooltip && point.dataItem.tooltip.valueTitle) {\r\n return point.dataItem.tooltip.valueTitle;\r\n }\r\n const visualMetadata = metadata.visuals[visualIndex];\r\n return visualMetadata && visualMetadata.title ? visualMetadata.title.text : '';\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {GmxBiWorks} from '../../typings';\r\nimport {getTooltipCategoryFormat} from '../utils/utilities';\r\nimport SparklineData = GmxBiWorks.DataPoints.SparklineData;\r\n\r\n@Pipe({\r\n name: 'sparklineTitle'\r\n})\r\nexport class SparklineTitlePipe implements PipeTransform {\r\n transform(currentValue: number, sparklineData: SparklineData): any {\r\n const index = sparklineData.values.findIndex((value) => value === currentValue);\r\n return getTooltipCategoryFormat(sparklineData.dates[index]);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {ColumnSetting} from '../services/web-api-client';\r\n\r\n@Pipe({\r\n name: 'tableIsChip'\r\n})\r\nexport class TableIsChipPipe implements PipeTransform {\r\n\r\n transform(column: ColumnSetting, dataItemElement: any): boolean {\r\n if (column.tableTemplate && column.tableTemplate.badgeColor) {\r\n return !!(column.tableTemplate.badgeColor[dataItemElement]);\r\n }\r\n return false;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {ColumnSetting} from '../services/web-api-client';\r\n\r\n@Pipe({\r\n name: 'tableItemStyle'\r\n})\r\nexport class TableItemStylePipe implements PipeTransform {\r\n\r\n transform(column: ColumnSetting, dataItemElement: any): any {\r\n const hasTemplate = column.tableTemplate;\r\n let customStyle = {};\r\n\r\n if (hasTemplate && column.tableTemplate.width) {\r\n customStyle = {...{width: column.tableTemplate.width + 'px'}};\r\n }\r\n\r\n if (hasTemplate && column.tableTemplate.badgeColor) {\r\n const color = column.tableTemplate.badgeColor[dataItemElement];\r\n if (color) {\r\n customStyle = {\r\n ...customStyle,\r\n ...{\r\n color: color.color,\r\n 'background-color': color.bg,\r\n 'tooltip-background-color': color.bg\r\n }\r\n };\r\n }\r\n }\r\n\r\n return customStyle;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {GmxBiWorks} from '../../typings';\r\nimport WidgetVisualMetadata = GmxBiWorks.DataPoints.WidgetVisualMetadata;\r\n\r\n@Pipe({\r\n name: 'valueTitle'\r\n})\r\nexport class ValueTitlePipe implements PipeTransform {\r\n\r\n transform(visual: WidgetVisualMetadata, field: 'OldValue' | 'NewValue'): any {\r\n return visual.columns.find((column) => column.field === field).title;\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BehaviorSubject, Observable, of} from 'rxjs';\r\nimport {ThemesService} from './themes.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdminService {\r\n isAdmin$ = new BehaviorSubject(false);\r\n\r\n constructor(private themesService: ThemesService) {\r\n }\r\n\r\n private _inAdminMode = false;\r\n\r\n get inAdminMode(): boolean {\r\n return this._inAdminMode;\r\n }\r\n\r\n set inAdminMode(value: boolean) {\r\n setTimeout(() => {\r\n if (value) {\r\n this.themesService.setDarkTheme();\r\n } else {\r\n this.themesService.setLightTheme();\r\n }\r\n this._inAdminMode = value;\r\n this.isAdmin$.next(value);\r\n }, 0);\r\n }\r\n\r\n public isAdminObservable(): Observable {\r\n return of(this.inAdminMode);\r\n }\r\n}\r\n","import {ApplicationRef, ComponentFactoryResolver, HostListener, Injectable, Injector, NgZone, OnDestroy} from '@angular/core';\r\nimport {MsAdalAngular6Service} from 'microsoft-adal-angular6';\r\nimport {Subject} from 'rxjs';\r\nimport {LOGOUT_REFRESH_RATE, MINUTES_TO_LOGOUT, PERMISSIONS_REFRESH_RATE} from '../configs/auto-logout-settings';\r\nimport {ModalComponent} from '../components/modal/modal.component';\r\nimport {MDBModalRef, MDBModalService} from 'ng-uikit-pro-standard';\r\nimport {UserClientService} from './client/user-client.service';\r\nimport {destroySubject} from '../utils/utilities';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AutoTimeoutService implements OnDestroy {\r\n private userInactivityTimeoutId;\r\n private userInactivity$: Subject = new Subject();\r\n private userDataIntervalId;\r\n private userData$: Subject = new Subject();\r\n private modalRef: MDBModalRef;\r\n private onDestroy$: Subject = new Subject();\r\n\r\n constructor(private msAdalAngularService: MsAdalAngular6Service,\r\n private modal: ModalComponent,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector,\r\n private modalService: MDBModalService,\r\n private userClientService: UserClientService,\r\n private ngZone: NgZone,\r\n ) {\r\n this.userInactivity$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n this.openModal(\r\n 'User Logout',\r\n {\r\n heading: 'User Idle',\r\n description: `User has been idle for more than ${MINUTES_TO_LOGOUT} minutes`\r\n },\r\n 'Logout');\r\n });\r\n this.userData$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n this.openModal(\r\n 'Your settings have changed',\r\n {\r\n heading: 'Don\\'t worry, be happy ;)',\r\n description: `Click Refresh to reload the page`\r\n },\r\n 'Refresh');\r\n clearInterval(this.userDataIntervalId);\r\n });\r\n\r\n this.initAutoTimeout();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.userInactivity$);\r\n destroySubject(this.userData$);\r\n destroySubject(this.onDestroy$);\r\n }\r\n\r\n // To activate Auto logout remove the comment inside the function\r\n @HostListener('window:mousemove') refreshUserState() {\r\n clearTimeout(this.userInactivityTimeoutId);\r\n // this.setInactivityTimeout();\r\n }\r\n\r\n private initAutoTimeout(): void {\r\n this.setInactivityTimeout();\r\n this.setUserDataTimeout();\r\n }\r\n\r\n private openModal(headingText: string,\r\n content: {\r\n heading: string,\r\n description: string\r\n },\r\n closeModalText: string) {\r\n this.modalRef = this.modalService.show(ModalComponent, {\r\n backdrop: true,\r\n keyboard: false,\r\n focus: true,\r\n show: false,\r\n ignoreBackdropClick: true,\r\n class: '',\r\n containerClass: '',\r\n animated: true,\r\n data: {\r\n heading: headingText,\r\n content: {\r\n heading: content.heading,\r\n description: content.description\r\n },\r\n closeModal: closeModalText\r\n }\r\n });\r\n\r\n this.modalRef.content.action\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((result: any) => {\r\n switch (result) {\r\n case 'Logout':\r\n this.msAdalAngularService.logout();\r\n break;\r\n case 'Refresh':\r\n location.reload();\r\n break;\r\n }\r\n });\r\n }\r\n\r\n private setInactivityTimeout() {\r\n this.userInactivityTimeoutId =\r\n this.ngZone.runOutsideAngular(() => {\r\n setTimeout(() => this.userInactivity$.next(), LOGOUT_REFRESH_RATE);\r\n });\r\n }\r\n\r\n private setUserDataTimeout() {\r\n this.userDataIntervalId =\r\n this.ngZone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n this.userClientService.getUser(true)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n if (this.userClientService.hasUserChanged) {\r\n this.userData$.next();\r\n }\r\n\r\n this.setUserDataTimeout();\r\n });\r\n }, PERMISSIONS_REFRESH_RATE);\r\n });\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, of} from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BreakpointService {\r\n private _isSmallScreen: boolean;\r\n\r\n get isSmallScreen(): boolean {\r\n return this._isSmallScreen;\r\n }\r\n\r\n set isSmallScreen(value: boolean) {\r\n this._isSmallScreen = value;\r\n }\r\n\r\n public getSmallScreenObservable(): Observable {\r\n return of(this._isSmallScreen);\r\n }\r\n\r\n}\r\n","import {Inject, Injectable} from '@angular/core';\r\nimport {LOCAL_STORAGE, StorageService} from 'ngx-webstorage-service';\r\nimport {UserClientService} from './client/user-client.service';\r\nimport {ApiCallComponent} from '../enums/enums';\r\nimport {RequestQueryParameter} from './web-api-client';\r\nimport {LZStringService} from 'ng-lz-string';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CacheService {\r\n private hours = 1;\r\n private userId: string = null;\r\n\r\n constructor(\r\n @Inject(LOCAL_STORAGE) private storage: StorageService,\r\n private userClientService: UserClientService,\r\n private lz: LZStringService\r\n ) {\r\n }\r\n\r\n // encode to base 64\r\n private static encode(data: any): string {\r\n return btoa(JSON.stringify(data));\r\n }\r\n\r\n // decode from base 64\r\n private static decode(data: string): any {\r\n return JSON.parse(atob(data));\r\n }\r\n\r\n /**\r\n * @param reportId - id of the report.\r\n * @param apiCallComponent - string that represents which api call was made - ReportMetadata/ControlData/DynamicData\r\n * @param uniqueId - id of the Report/Control/WidgetData/WidgetMetadata\r\n * @param data - the data to be stored\r\n * @param requestQueryParameters - any additional info like url params to be added to the key\r\n * @param filteredText - filtered text for the controls data\r\n */\r\n public saveDataToCache(reportId: number, apiCallComponent: ApiCallComponent, uniqueId: number,\r\n data: any, requestQueryParameters?: RequestQueryParameter[],\r\n filteredText?: string) {\r\n const savedKey = this.getSavedKey();\r\n this.storage.set(savedKey, new Date().getTime());\r\n const dataKey = this.getDataKey(reportId, apiCallComponent, uniqueId, requestQueryParameters, filteredText);\r\n this.storage.set(dataKey, this.lz.compress(JSON.stringify(data)));\r\n }\r\n\r\n /**\r\n * if the cached version is older than 1 hour - it removes it from cache and returns false\r\n * else it returns the cached version\r\n * @param reportId - id of the report.\r\n * @param apiCallComponent - string that represents which api call was made - ReportMetadata/ControlData/DynamicData\r\n * @param uniqueId - id of the Report/Control/WidgetData/WidgetMetadata\r\n * @param requestQueryParameters - any additional info like url params to be added to the key\r\n * @param filteredText - filtered text for the controls data\r\n */\r\n public getDataFromCache(reportId: number, apiCallComponent: ApiCallComponent,\r\n uniqueId: number, requestQueryParameters?: RequestQueryParameter[],\r\n filteredText?: string): any {\r\n const savedKey = this.getSavedKey();\r\n const saved: any = this.storage.get(savedKey);\r\n if (saved && (new Date().getTime() - saved > this.hours * 60 * 60 * 1000)) {\r\n this.storage.remove(savedKey);\r\n return false;\r\n }\r\n const dataKey = this.getDataKey(reportId, apiCallComponent, uniqueId, requestQueryParameters, filteredText);\r\n return this.storage.has(dataKey)\r\n ? JSON.parse(this.lz.decompress(this.storage.get(dataKey)))\r\n : false;\r\n }\r\n\r\n public clearCurrentUserCache() {\r\n const storageKeys: string[] = Object.keys((this.storage as any).storage);\r\n const currentUserKeys: string[] = [];\r\n storageKeys.forEach((key) => {\r\n const decodedKey: string = CacheService.decode(key);\r\n if (decodedKey.includes(this.userId)) {\r\n currentUserKeys.push(key);\r\n }\r\n });\r\n currentUserKeys.forEach((key) => this.storage.remove(key));\r\n }\r\n\r\n private getUserId(): void {\r\n if (this.userId) {\r\n return;\r\n }\r\n this.userId = this.userClientService.user.username;\r\n }\r\n\r\n private getSavedKey(): string {\r\n this.getUserId();\r\n return CacheService.encode(`saved${this.userId}`);\r\n }\r\n\r\n private getDataKey(reportId: number, apiCallComponent: ApiCallComponent,\r\n uniqueId: number, requestQueryParameters?: RequestQueryParameter[],\r\n filteredText?: string): string {\r\n this.getUserId();\r\n // convert requestQueryParameters to a single string\r\n const additionalKey = requestQueryParameters\r\n ? requestQueryParameters.map((params) =>\r\n `${params.controlTemplateId}${params.comparisonOperator}${params.placeholderKeyOverride}${params.values.toString()}`\r\n )\r\n : null;\r\n return CacheService.encode(`${this.userId}${reportId}${apiCallComponent}${uniqueId}${additionalKey}${filteredText}`);\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {\r\n areObjectsEqual,\r\n buildDateControlSummary,\r\n calculateRelativeDate,\r\n createUrlParams,\r\n deepClone,\r\n destroySubject,\r\n formatValue,\r\n getComparisonOperator,\r\n replaceUrl\r\n} from '../../utils/utilities';\r\nimport {\r\n FilterValue,\r\n PredefinedDateRange,\r\n ReportControl,\r\n ReportControlVisualType,\r\n RequestQueryParameter,\r\n WebApiClient\r\n} from '../web-api-client';\r\nimport {Location} from '@angular/common';\r\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {ListenersService} from '../listeners.service';\r\nimport {NavigationClientService} from './navigation-client.service';\r\nimport {map, takeUntil} from 'rxjs/operators';\r\nimport AutoCompleteSelected = GmxBiWorks.ReportControls.AutoCompleteSelected;\r\nimport DisplayedControls = GmxBiWorks.ReportControls.DisplayedControls;\r\nimport DisplayedControlData = GmxBiWorks.ReportControls.DisplayedControlData;\r\nimport ControlTitles = GmxBiWorks.ReportControls.ControlTitles;\r\nimport UrlParams = GmxBiWorks.Routing.UrlParams;\r\nimport UrlQueryParams = GmxBiWorks.Routing.UrlQueryParams;\r\nimport FilterData = GmxBiWorks.ReportControls.FilterData;\r\nimport DefaultSelected = GmxBiWorks.ReportControls.DefaultSelected;\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ControlsClientService implements OnDestroy {\r\n public controlsFinished: BehaviorSubject = new BehaviorSubject(false);\r\n private mandatoryControls: any = [];\r\n private _invalidControls: string[];\r\n private originalControlsTitles: ControlTitles[] = [];\r\n private _originalDateControlsSummary: DisplayedControlData[] = [];\r\n private onDestroy$: Subject = new Subject();\r\n\r\n constructor(\r\n private webApiClient: WebApiClient,\r\n private listenersService: ListenersService,\r\n public navigationClientService: NavigationClientService,\r\n private location: Location,\r\n // private cacheService: CacheService\r\n ) {\r\n }\r\n\r\n private _allReportsUrlParams: UrlParams[] = [];\r\n\r\n get allReportsUrlParams(): UrlParams[] {\r\n return this._allReportsUrlParams;\r\n }\r\n\r\n set allReportsUrlParams(value: UrlParams[]) {\r\n this._allReportsUrlParams = value;\r\n }\r\n\r\n private _navigatedFromReport: number;\r\n\r\n get navigatedFromReport(): number {\r\n return this._navigatedFromReport;\r\n }\r\n\r\n set navigatedFromReport(value: number) {\r\n this._navigatedFromReport = value;\r\n }\r\n\r\n private _originalDateFormattedControlState: RequestQueryParameter[] = null;\r\n\r\n get originalDateFormattedControlState(): RequestQueryParameter[] {\r\n return this._originalDateFormattedControlState;\r\n }\r\n\r\n private _originalControlState: RequestQueryParameter[];\r\n\r\n get originalControlState(): RequestQueryParameter[] {\r\n return this._originalControlState;\r\n }\r\n\r\n private _controlsTitles: ControlTitles[];\r\n\r\n get controlsTitles(): ControlTitles[] {\r\n return this._controlsTitles;\r\n }\r\n\r\n private _originalDisplayedControls: DisplayedControls;\r\n\r\n get originalDisplayedControls(): DisplayedControls {\r\n return this._originalDisplayedControls;\r\n }\r\n\r\n private _dateControlsSummary: DisplayedControlData[] = [];\r\n\r\n get dateControlsSummary(): DisplayedControlData[] {\r\n return this._dateControlsSummary;\r\n }\r\n\r\n //#region Getters\\Setters\r\n\r\n private _originalAutoCompleteSelected: AutoCompleteSelected[] = [];\r\n\r\n get originalAutoCompleteSelected(): AutoCompleteSelected[] {\r\n return this._originalAutoCompleteSelected;\r\n }\r\n\r\n private _autoCompleteSelected: AutoCompleteSelected[] = [];\r\n\r\n get autoCompleteSelected(): AutoCompleteSelected[] {\r\n return this._autoCompleteSelected;\r\n }\r\n\r\n private _lastSavedControlsState: RequestQueryParameter[];\r\n\r\n get lastSavedControlsState(): RequestQueryParameter[] {\r\n return this._lastSavedControlsState;\r\n }\r\n\r\n private _currentControlState: RequestQueryParameter[];\r\n\r\n get currentControlState(): RequestQueryParameter[] {\r\n return this._currentControlState;\r\n }\r\n\r\n public get isControlStateTheSame(): boolean {\r\n return !this._lastSavedControlsState ||\r\n areObjectsEqual(this._currentControlState, this._lastSavedControlsState);\r\n }\r\n\r\n private _displayedControls: DisplayedControls = {\r\n totalControls: 0,\r\n controlsData: []\r\n };\r\n\r\n get displayedControls(): DisplayedControls {\r\n return this._displayedControls;\r\n }\r\n\r\n private _urlParams: UrlParams;\r\n\r\n get urlParams(): UrlParams {\r\n return this._urlParams;\r\n }\r\n\r\n set urlParams(value: UrlParams) {\r\n this._urlParams = value;\r\n }\r\n\r\n private _currentUrl: string;\r\n\r\n get currentUrl(): string {\r\n return this._currentUrl;\r\n }\r\n\r\n set currentUrl(value: string) {\r\n this._currentUrl = value;\r\n }\r\n\r\n private _controls: DefaultSelected[];\r\n\r\n get controls(): DefaultSelected[] {\r\n return this._controls;\r\n }\r\n\r\n set controls(defaultsSelected: DefaultSelected[]) {\r\n this.updateControlsFinished(false);\r\n const drillThroughOccurred: boolean = !!this.navigationClientService.drillThroughControl;\r\n if (defaultsSelected) {\r\n const state = defaultsSelected.map((control: DefaultSelected) => {\r\n return this.createControlState(control);\r\n });\r\n this._controlsTitles = drillThroughOccurred\r\n ? deepClone(this.getDrillThroughControlTitles(this.navigationClientService.controlsAfterInnerRouting.controlsTitles))\r\n : deepClone(this.originalControlsTitles);\r\n\r\n this._originalControlState = deepClone(state);\r\n this._originalControlState.forEach(control => {\r\n control.values =\r\n control.values\r\n ? control.values.map(_state => formatValue(_state))\r\n : null;\r\n });\r\n this.getDefaultAutoComplete(defaultsSelected);\r\n this.setRelativeDate(defaultsSelected);\r\n this.initCurrentState(drillThroughOccurred);\r\n this.applyOriginalControl(defaultsSelected, drillThroughOccurred);\r\n } else {\r\n this.resetControls();\r\n }\r\n this.stateChanged();\r\n this.navigationClientService.drillThroughControl = null;\r\n this.navigationClientService.controlsAfterInnerRouting = null;\r\n if (this.navigatedFromReport) {\r\n this.replaceNavigatedParams();\r\n }\r\n if (this.urlParams) {\r\n this.updateControlsFromUrl();\r\n } else {\r\n this.updateControlsFinished(true);\r\n }\r\n }\r\n\r\n get requestQueryParameters(): RequestQueryParameter[] {\r\n if (this._currentControlState && this._currentControlState.length > 0) {\r\n return this._currentControlState.filter(control => {\r\n return control.values\r\n ? control\r\n : null;\r\n });\r\n }\r\n return null;\r\n }\r\n\r\n private static getControlTitle(control: DefaultSelected): string {\r\n let placeHolder: string;\r\n if (control.placeholdersList) {\r\n placeHolder = Object.values(control.placeholdersList)[0];\r\n }\r\n const title = control.defaultValues && control.defaultValues.length === 1\r\n ? control.defaultValues[0].text\r\n : control.title;\r\n\r\n return placeHolder\r\n ? `${placeHolder}: ${title}`\r\n : title;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.onDestroy$);\r\n }\r\n\r\n public setAutoCompleteSelectedValue(value: AutoCompleteSelected, valuesFromRoute?: AutoCompleteSelected) {\r\n value = value\r\n ? value\r\n : {\r\n controlTemplateId: valuesFromRoute.controlTemplateId,\r\n filteredData: valuesFromRoute.filteredData\r\n };\r\n const selectedIndex: number = this._autoCompleteSelected\r\n .findIndex((selectedValue) =>\r\n selectedValue.controlTemplateId === value.controlTemplateId);\r\n if (selectedIndex === -1) {\r\n this._autoCompleteSelected.push(value);\r\n } else {\r\n if (valuesFromRoute) {\r\n this._autoCompleteSelected[selectedIndex].filteredData.push(valuesFromRoute.filteredData[0]);\r\n } else {\r\n this._autoCompleteSelected[selectedIndex].filteredData = value.filteredData;\r\n }\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n public getReportControlData(reportId: number, controlTemplateId: number, parameters?: RequestQueryParameter[], filteredText?: string)\r\n : Observable {\r\n // const cachedVersion =\r\n // this.cacheService.getDataFromCache(reportId,\r\n // ApiCallComponent.ControlData, controlTemplateId, parameters, filteredText);\r\n // if (cachedVersion) {\r\n // return of(cachedVersion);\r\n // }\r\n return this.webApiClient.getDynamicData(reportId, controlTemplateId, parameters, filteredText)\r\n .pipe(\r\n map((data) => {\r\n // this.cacheService.saveDataToCache(reportId,\r\n // ApiCallComponent.ControlData,\r\n // controlTemplateId, data, parameters, filteredText);\r\n return data;\r\n }\r\n ));\r\n }\r\n\r\n public checkIsMandatory() {\r\n this._invalidControls = this.mandatoryControls.filter(mandatoryControl => {\r\n return this.currentControlState.find(control =>\r\n (control.controlTemplateId === mandatoryControl.controlTemplateId)\r\n &&\r\n (!control.values || control.values.length === 0));\r\n });\r\n }\r\n\r\n public stateChanged(): boolean {\r\n const stateNotChanged = this._originalDateFormattedControlState\r\n ? areObjectsEqual(this._originalDateFormattedControlState, this._currentControlState)\r\n : areObjectsEqual(this._originalControlState, this._currentControlState);\r\n\r\n // const stateChanged = !areObjectsEqual(this._originalControlState, this._currentControlState)\r\n // || !areObjectsEqual(this._originalDateFormattedControlState, this._currentControlState);\r\n if (stateNotChanged) {\r\n return false;\r\n }\r\n this.initCurrentState(!!this.navigationClientService.drillThroughControl);\r\n return true;\r\n }\r\n\r\n public updateFilterState() {\r\n this.checkIsMandatory();\r\n this._lastSavedControlsState = deepClone(this._currentControlState);\r\n }\r\n\r\n public getControlDefaultValues(controlTemplateId: number): any {\r\n const data: RequestQueryParameter =\r\n this._originalDateFormattedControlState\r\n ? this._originalDateFormattedControlState.find(\r\n (control: RequestQueryParameter) =>\r\n control && control.controlTemplateId === controlTemplateId)\r\n : this._originalControlState.find(\r\n (control: RequestQueryParameter) =>\r\n control && control.controlTemplateId === controlTemplateId);\r\n\r\n return data ? data.values : null;\r\n }\r\n\r\n public restoreControlToDefaultValues(controlTemplateId: number): void {\r\n const currentControl = this._currentControlState\r\n .find((current) => current.controlTemplateId === controlTemplateId);\r\n currentControl.values = this.getControlDefaultValues(controlTemplateId);\r\n }\r\n\r\n public revertToControlDefault(control: ReportControl, restoreAllControls?: boolean): void {\r\n this.restoreControlToDefaultValues(control.controlTemplateId);\r\n if (control.visualType === ReportControlVisualType.DateRange) {\r\n this.restoreDefaultPredefinedRanges(control);\r\n } else if (!control.defaultValues || !control.isDefaultFilter) {\r\n this.checkFilterBar(control, false);\r\n }\r\n if (control.visualType === ReportControlVisualType.AutoCompleteSingle\r\n || control.visualType === ReportControlVisualType.AutoCompleteMulti) {\r\n this._autoCompleteSelected = deepClone(this.originalAutoCompleteSelected);\r\n }\r\n this.restoreControlTitle(control.controlTemplateId);\r\n if (restoreAllControls) {\r\n this.listenersService.allDataRefresh.next(true);\r\n }\r\n }\r\n\r\n public restoreAllControlsToDefaults() {\r\n this._controls.forEach((control) => this.revertToControlDefault(control), true);\r\n }\r\n\r\n public setCurrentState(newState) {\r\n const state = this._currentControlState\r\n .find(control => control && control.controlTemplateId === newState.controlTemplateId);\r\n if (state) {\r\n state.values = newState.values.length === 0 ? null : newState.values;\r\n if (newState.placeholderKeyOverride) {\r\n state.placeholderKeyOverride = newState.placeholderKeyOverride;\r\n }\r\n } else {\r\n this._currentControlState.push(newState);\r\n }\r\n }\r\n\r\n public revertDisplayedControls() {\r\n this._displayedControls = deepClone(this._originalDisplayedControls);\r\n }\r\n\r\n public applyControls() {\r\n if (!this.isControlStateTheSame) {\r\n this.updateFilterState();\r\n if (this._invalidControls.length === 0) {\r\n this.listenersService.allDataRefresh.next(true);\r\n } else {\r\n alert('Invalid controls: ' + this._invalidControls);\r\n }\r\n }\r\n }\r\n\r\n public removeFromDisplayedControls(controlTemplateId: number): void {\r\n this.displayedControls.controlsData =\r\n this.displayedControls.controlsData\r\n .filter((displayedControl) =>\r\n displayedControl.controlTemplateId !== controlTemplateId);\r\n }\r\n\r\n hideOverflowFilters(overflowFilters: number[]) {\r\n this.displayedControls.controlsData\r\n .forEach(control =>\r\n control.isVisible = !overflowFilters.includes(control.controlTemplateId)\r\n );\r\n }\r\n\r\n showOverflowFilters() {\r\n this.displayedControls.controlsData.forEach(control => control.isVisible = true);\r\n }\r\n\r\n restoreDefaultPredefinedRanges(control: ReportControl): void {\r\n const dateControl = this._controls\r\n .find((defaultControl) => defaultControl.controlTemplateId === control.controlTemplateId);\r\n\r\n const defaultState = this._originalControlState\r\n .find((defaultControl) => defaultControl.controlTemplateId === control.controlTemplateId);\r\n\r\n if (dateControl.dateFilterMetadata.predefinedRanges) {\r\n dateControl.dateFilterMetadata.predefinedRanges\r\n .filter((range) => range.selected = range.name === defaultState.values[0].name);\r\n } else {\r\n if (!control.defaultValues || !control.isDefaultFilter) {\r\n this.checkFilterBar(control, false);\r\n }\r\n }\r\n }\r\n\r\n public restoreControlToLastChanges(): void {\r\n this._currentControlState = deepClone(this._lastSavedControlsState);\r\n }\r\n\r\n // noinspection FunctionWithMoreThanThreeNegationsJS\r\n public checkFilterBar(control: ReportControl, hasValues: boolean, sameAsDefault?: boolean): void {\r\n const isControlDisplayed =\r\n this.isControlDisplayed(control.controlTemplateId);\r\n\r\n // if the control is NOT DISPLAYED\r\n // && HAS VALUES - add it\r\n if (!isControlDisplayed && hasValues && !sameAsDefault) {\r\n this.addToDisplayedControls(control);\r\n return;\r\n }\r\n\r\n const isControlInDefaultDisplayed =\r\n this.isControlInDefaultDisplayed(control.controlTemplateId);\r\n\r\n // if the control IS DISPLAYED\r\n // && IS NOT in the default displayed controls\r\n // && DOES NOT have values - remove it\r\n if (isControlDisplayed && !isControlInDefaultDisplayed && !hasValues) {\r\n this.removeFromDisplayedControls(control.controlTemplateId);\r\n }\r\n }\r\n\r\n public resetControls() {\r\n this._controls = null;\r\n this._originalControlState = null;\r\n this._currentControlState = null;\r\n this._lastSavedControlsState = null;\r\n this._originalDateFormattedControlState = null;\r\n this._displayedControls.controlsData = [];\r\n this._originalDateControlsSummary = [];\r\n this._dateControlsSummary = [];\r\n this.originalControlsTitles = [];\r\n this._controlsTitles = [];\r\n this._invalidControls = [];\r\n this.mandatoryControls = [];\r\n this._originalAutoCompleteSelected = [];\r\n }\r\n\r\n public updateControlsFinished(controlsFinished: boolean) {\r\n this.controlsFinished.next(controlsFinished);\r\n }\r\n\r\n private replaceNavigatedParams() {\r\n const oldReportParams: UrlParams = deepClone(this.allReportsUrlParams.find((report) =>\r\n report.reportId === this.navigatedFromReport));\r\n if (!oldReportParams) {\r\n return;\r\n }\r\n oldReportParams.urlQueryParams = deepClone(this.removeHiddenControls(oldReportParams.urlQueryParams));\r\n if (this.urlParams) {\r\n const currentUrlParams =\r\n this.allReportsUrlParams\r\n .find((urlParams) => urlParams.reportId === this.urlParams.reportId);\r\n\r\n this.urlParams.urlQueryParams = this.getNewUrlParams(oldReportParams.urlQueryParams, this.urlParams.urlQueryParams);\r\n\r\n if (currentUrlParams) {\r\n currentUrlParams.urlQueryParams = deepClone(this.urlParams.urlQueryParams);\r\n } else {\r\n this.allReportsUrlParams.push(this.urlParams);\r\n }\r\n } else {\r\n this.urlParams = {\r\n reportId: this.controls[0].reportId,\r\n urlQueryParams: deepClone(oldReportParams.urlQueryParams)\r\n };\r\n this.allReportsUrlParams.push(this.urlParams);\r\n }\r\n\r\n replaceUrl(createUrlParams(this.urlParams.urlQueryParams), this.currentUrl, this.location);\r\n }\r\n\r\n private addToDisplayedControls(control): void {\r\n this.displayedControls.controlsData.push({\r\n controlTemplateId: control.controlTemplateId,\r\n title: control.title,\r\n isVisible: true,\r\n totalSelectedValues: control.defaultValues\r\n ? control.defaultValues.length\r\n : 0,\r\n defaultSelected: control\r\n });\r\n }\r\n\r\n // setTimeout => to update the control title - won't work without\r\n private restoreControlTitle(controlTemplateId: number) {\r\n setTimeout(() => {\r\n const control = this.controlsTitles.find((_control) =>\r\n controlTemplateId === _control.controlTemplateId);\r\n const originalControl = this.originalControlsTitles.find((_control) =>\r\n controlTemplateId === _control.controlTemplateId);\r\n control.title = originalControl.title;\r\n });\r\n }\r\n\r\n private isControlDisplayed(controlTemplateId: number): boolean {\r\n return !!this.displayedControls.controlsData\r\n .find((displayedControl) =>\r\n displayedControl.controlTemplateId === controlTemplateId);\r\n }\r\n\r\n private isControlInDefaultDisplayed(controlTemplateId: number): boolean {\r\n return !!this.originalDisplayedControls.controlsData\r\n .find((_control) => _control.controlTemplateId === controlTemplateId);\r\n }\r\n\r\n private initCurrentState(drillThroughOccurred: boolean) {\r\n this._currentControlState = drillThroughOccurred\r\n ? deepClone(this.navigationClientService.controlsAfterInnerRouting.currentControlState)\r\n : this._originalDateFormattedControlState\r\n ? deepClone(this._originalDateFormattedControlState)\r\n : deepClone(this._originalControlState);\r\n this._lastSavedControlsState = deepClone(this._currentControlState);\r\n this._dateControlsSummary = drillThroughOccurred\r\n ? deepClone(this.navigationClientService.controlsAfterInnerRouting.dateControlsSummary)\r\n : deepClone(this._originalDateControlsSummary);\r\n }\r\n\r\n private initDisplayedControls() {\r\n this._displayedControls = {\r\n totalControls: this._controls.filter(c => !c.hidden).length,\r\n controlsData: []\r\n };\r\n }\r\n\r\n private applyFiltersFromDrillThrough(): void {\r\n const controlsAfterInnerRouting = this.navigationClientService.controlsAfterInnerRouting;\r\n // TODO: Do i need this?\r\n // this._controls = deepClone(this.getDrillThroughControls(controlsAfterInnerRouting.controls));\r\n\r\n this._displayedControls = deepClone(this.getDrillThroughDisplayedControls(controlsAfterInnerRouting.displayedControls));\r\n this._autoCompleteSelected = controlsAfterInnerRouting.autoCompleteSelected\r\n ? deepClone(this.getDrillThroughAutoCompleteControls(controlsAfterInnerRouting.autoCompleteSelected))\r\n : null;\r\n\r\n this.applyControls();\r\n }\r\n\r\n private setRelativeDate(defaultsSelected: DefaultSelected[]) {\r\n const dateRange = defaultsSelected.filter((defaultSelected) =>\r\n defaultSelected.visualType === ReportControlVisualType.DateRange);\r\n if (dateRange.length > 0) {\r\n this._originalDateFormattedControlState = deepClone(this._originalControlState);\r\n this._originalDateFormattedControlState.forEach((control, i) => {\r\n if (control.values) {\r\n if (control.values[0].periodType) {\r\n const currentControl = defaultsSelected.find((ctrl) =>\r\n ctrl.controlTemplateId === control.controlTemplateId\r\n );\r\n if (!currentControl.hidden) {\r\n this.addDefaultValuesToParams(null, control, currentControl.reportId);\r\n }\r\n let placeholder: string;\r\n if (control.placeholderKeyOverride) {\r\n placeholder = defaultsSelected[i].placeholdersList[control.placeholderKeyOverride];\r\n }\r\n if (dateRange.length > 1 && !placeholder) {\r\n placeholder = dateRange.find((dateControl) =>\r\n dateControl.controlTemplateId === control.controlTemplateId).title;\r\n }\r\n const val = control.values[0];\r\n control.values = calculateRelativeDate(val.includeToday, val.periodCount, val.periodType, val.startOf);\r\n const title = buildDateControlSummary(control.values[0], control.values[1]);\r\n this._originalDateControlsSummary.push({\r\n controlTemplateId: control.controlTemplateId,\r\n title: placeholder\r\n ? `${placeholder}: ${title}`\r\n : title,\r\n isVisible: true\r\n });\r\n } else {\r\n control.values.map(_state => formatValue(_state));\r\n }\r\n } else {\r\n if (defaultsSelected[i].visualType === ReportControlVisualType.DateRange) {\r\n this._originalDateControlsSummary.push({\r\n controlTemplateId: control.controlTemplateId,\r\n title: defaultsSelected[i].title,\r\n isVisible: defaultsSelected[i].isDefaultFilter\r\n });\r\n } else {\r\n control.values = null;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n private applyOriginalControl(defaultsSelected: DefaultSelected[], drillThroughOccurred: boolean) {\r\n this._controls = deepClone(defaultsSelected);\r\n this.initDisplayedControls();\r\n this._controls.forEach((control: DefaultSelected) => {\r\n if (control.defaultValues) {\r\n control.defaultValues.forEach(_value => {\r\n _value.value = formatValue(_value.value);\r\n });\r\n if (!control.hidden) {\r\n this.addDefaultValuesToParams(control, null);\r\n }\r\n }\r\n\r\n // Display controls with default values\r\n // if (control.isDefaultFilter || control.defaultValues) {\r\n\r\n // Display only default controls\r\n if (control.isDefaultFilter) {\r\n this._displayedControls.controlsData.push({\r\n controlTemplateId: control.controlTemplateId,\r\n title: control.title,\r\n isVisible: true,\r\n totalSelectedValues: control.defaultValues\r\n ? control.defaultValues.length\r\n : 0,\r\n defaultSelected: control\r\n });\r\n }\r\n });\r\n this._originalDisplayedControls = deepClone(this._displayedControls);\r\n\r\n if (drillThroughOccurred) {\r\n this.applyFiltersFromDrillThrough();\r\n }\r\n }\r\n\r\n private createControlState(control: DefaultSelected) {\r\n let defaultValues;\r\n let placeholderKeyOverride: string;\r\n if (control.defaultValues) {\r\n defaultValues = control.defaultValues.map(v => v.value);\r\n }\r\n\r\n if (control.dateFilterMetadata) {\r\n let selected: PredefinedDateRange;\r\n if (control.dateFilterMetadata.predefinedRanges) {\r\n selected = control.dateFilterMetadata.predefinedRanges\r\n .find((range) => range.selected);\r\n }\r\n if (control.dateFilterMetadata.predefinedRangesPerPlaceholder) {\r\n const predefinedRanges = Object.values(control.dateFilterMetadata.predefinedRangesPerPlaceholder)[0];\r\n selected = predefinedRanges\r\n .find((range) => range.selected);\r\n placeholderKeyOverride = Object.keys(control.dateFilterMetadata.predefinedRangesPerPlaceholder)[0];\r\n }\r\n defaultValues = selected ? [deepClone(selected)] : selected;\r\n }\r\n\r\n if (control.isMandatory) {\r\n this.mandatoryControls.push({\r\n controlTemplateId: control.controlTemplateId,\r\n title: control.title\r\n });\r\n }\r\n\r\n this.originalControlsTitles.push({\r\n title: ControlsClientService.getControlTitle(control),\r\n controlTemplateId: control.controlTemplateId\r\n });\r\n\r\n return {\r\n controlTemplateId: control.controlTemplateId,\r\n comparisonOperator: getComparisonOperator(control.visualType),\r\n values: deepClone(defaultValues),\r\n placeholderKeyOverride\r\n };\r\n }\r\n\r\n private getDrillThroughControlTitles(routedControlsTitles: any): ControlTitles[] {\r\n const controlTitles: ControlTitles[] = [];\r\n // Remove control titles that don't exist in the report\r\n this.originalControlsTitles.forEach((originalTitle) => {\r\n routedControlsTitles.find((routedTitle: ControlTitles) => {\r\n if (originalTitle.controlTemplateId === routedTitle.controlTemplateId) {\r\n controlTitles.push({\r\n title: routedTitle.title,\r\n controlTemplateId: routedTitle.controlTemplateId\r\n });\r\n }\r\n });\r\n });\r\n // Add missing control titles from original list\r\n this.originalControlsTitles.forEach((originalTitle) => {\r\n if (!controlTitles.some((controlTitle) => originalTitle.controlTemplateId === controlTitle.controlTemplateId)) {\r\n controlTitles.push({\r\n title: originalTitle.title,\r\n controlTemplateId: originalTitle.controlTemplateId\r\n });\r\n }\r\n });\r\n return controlTitles;\r\n }\r\n\r\n private getDrillThroughControls(controls: any): DefaultSelected[] {\r\n const defaultSelected: DefaultSelected[] = [];\r\n // Remove controls that don't exist in the report\r\n this._controls.forEach((originalControl) => {\r\n controls.find((routedControl: DefaultSelected) => {\r\n if (originalControl.controlTemplateId === routedControl.controlTemplateId) {\r\n defaultSelected.push(routedControl);\r\n }\r\n });\r\n });\r\n // Add missing control titles from original list\r\n this._controls.forEach((originalControl) => {\r\n if (!defaultSelected.some((controlTitle) => originalControl.controlTemplateId === controlTitle.controlTemplateId)) {\r\n defaultSelected.push(originalControl);\r\n }\r\n });\r\n return defaultSelected;\r\n }\r\n\r\n private getDrillThroughDisplayedControls(routedDisplayedControls: DisplayedControls): DisplayedControls {\r\n const totalDisplayedControls: DisplayedControls = {controlsData: [], totalControls: 0};\r\n totalDisplayedControls.controlsData.push(...this._displayedControls.controlsData);\r\n routedDisplayedControls.controlsData.forEach((routedControl) => {\r\n if (!this._displayedControls.controlsData.some((control) =>\r\n routedControl.controlTemplateId === control.controlTemplateId)\r\n && this.controls.some((control) => routedControl.controlTemplateId === control.controlTemplateId)) {\r\n totalDisplayedControls.controlsData.push(routedControl);\r\n }\r\n });\r\n totalDisplayedControls.totalControls = totalDisplayedControls.controlsData.length;\r\n return totalDisplayedControls;\r\n }\r\n\r\n // noinspection FunctionNamingConventionJS\r\n private getDrillThroughAutoCompleteControls(autoCompleteSelected: AutoCompleteSelected[]): AutoCompleteSelected[] {\r\n const totalAutoCompleteSelected: AutoCompleteSelected[] = [];\r\n totalAutoCompleteSelected.push(...this._autoCompleteSelected);\r\n autoCompleteSelected.forEach((autoComplete) => {\r\n if (!this._autoCompleteSelected.some((control) =>\r\n autoComplete.controlTemplateId === control.controlTemplateId)\r\n && this.controls.some((control) => autoComplete.controlTemplateId === control.controlTemplateId)) {\r\n totalAutoCompleteSelected.push(autoComplete);\r\n }\r\n });\r\n return totalAutoCompleteSelected;\r\n }\r\n\r\n private updateControlsFromUrl() {\r\n let paramCounter = 0;\r\n\r\n this.urlParams = this.updateNonExistingControls(this.urlParams);\r\n if (this.urlParams.urlQueryParams.length === 0) {\r\n this.updateControlsFinished(true);\r\n return;\r\n }\r\n\r\n this.urlParams.urlQueryParams.forEach((param) => {\r\n const control = this.controls\r\n .find((_control) => _control.controlTemplateId === param.controlTemplateId);\r\n const titleControl = this.controlsTitles\r\n .find((_control) => _control.controlTemplateId === param.controlTemplateId);\r\n const hasValues = param.values.length > 1;\r\n\r\n const defaultValues = control.defaultValues ?\r\n control.defaultValues.map((filterValue) => filterValue.value)\r\n : null;\r\n\r\n const sameAsDefault = defaultValues && areObjectsEqual(defaultValues, param.values);\r\n this.checkFilterBar(control, true, sameAsDefault);\r\n this.setCurrentState(this.createRequestQueryParameter(param.controlTemplateId, param.values));\r\n this.updateFilterState();\r\n\r\n if (control.visualType === ReportControlVisualType.AutoCompleteMulti\r\n || control.visualType === ReportControlVisualType.AutoCompleteSingle) {\r\n titleControl.title = param.values.length > 1 ? titleControl.title : param.values[0];\r\n param.values.forEach((value) => {\r\n this.getReportControlData(\r\n this.urlParams.reportId,\r\n param.controlTemplateId,\r\n this.requestQueryParameters,\r\n value\r\n )\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((filterValue) => {\r\n const filteredData: FilterData = {\r\n value: filterValue[0].value,\r\n text: filterValue[0].text,\r\n selected: true\r\n };\r\n this.setAutoCompleteSelectedValue(null, {\r\n controlTemplateId: control.controlTemplateId,\r\n filteredData: [filteredData]\r\n });\r\n });\r\n });\r\n } else {\r\n const dateControl = this._dateControlsSummary.find((displayedDateControl) =>\r\n displayedDateControl.controlTemplateId === param.controlTemplateId);\r\n if (dateControl) {\r\n dateControl.title = buildDateControlSummary(param.values[0], param.values[1]);\r\n const currentControl = this.currentControlState.find((state) =>\r\n state.controlTemplateId === control.controlTemplateId);\r\n if (control.placeholdersList) {\r\n dateControl.title =\r\n `${control.placeholdersList[currentControl.placeholderKeyOverride]}: ${dateControl.title}`;\r\n }\r\n // dateControl.title = control.placeholdersList\r\n // ? `${control.placeholdersList[currentControl.placeholderKeyOverride]}: ${dateControl.title}`\r\n // : `${control.title}: ${dateControl.title}`;\r\n } else {\r\n if (control.defaultValues) {\r\n titleControl.title =\r\n hasValues ? titleControl.title : control.defaultValues[0].text;\r\n } else {\r\n // a must have call to see if there the data is authentic or fake\r\n // if fake remove it from params\r\n // else get the title\r\n this.getReportControlData(\r\n this.urlParams.reportId,\r\n param.controlTemplateId,\r\n this.requestQueryParameters)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((filterData) => {\r\n // == is intentional to check it's value even if the type is wrong\r\n // tslint:disable-next-line:triple-equals\r\n let newFilterData = filterData.find((value) => value.value == param.values[0]);\r\n if (!newFilterData && param.values[0] === '') {\r\n newFilterData = filterData.find((value) => value.value === null);\r\n }\r\n if (newFilterData) {\r\n titleControl.title =\r\n hasValues ? titleControl.title : newFilterData.text;\r\n } else {\r\n this.removeControlFromParams(param.controlTemplateId);\r\n }\r\n\r\n if (++paramCounter === this.urlParams.urlQueryParams.length) {\r\n this.updateControlsFinished(true);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private removeControlFromParams(controlTemplateId: number) {\r\n const currentControlState = this._currentControlState.find((controlState) =>\r\n controlState.controlTemplateId === controlTemplateId);\r\n currentControlState.values = null;\r\n this._lastSavedControlsState = deepClone(this._currentControlState);\r\n }\r\n\r\n private createRequestQueryParameter(controlTemplateId: number, values: any) {\r\n const placeholderIndex: number = values.map((value) => {\r\n if (value.toString().includes('placeholderIndex')) {\r\n return +(value.split(':')[1]);\r\n }\r\n }).filter((el) => el !== undefined)\r\n [0];\r\n const currentControl = this.controls.find((control) => control.controlTemplateId === controlTemplateId);\r\n let placeholderKeyOverride;\r\n if (currentControl.placeholdersList) {\r\n placeholderKeyOverride = Object.keys(currentControl.placeholdersList)[placeholderIndex];\r\n }\r\n values = values.filter((value) => !value.toString().includes('placeholderIndex'));\r\n return {\r\n comparisonOperator: getComparisonOperator(currentControl.visualType),\r\n controlTemplateId,\r\n values,\r\n placeholderKeyOverride,\r\n title: ''\r\n };\r\n }\r\n\r\n private removeHiddenControls(urlQueryParams: UrlQueryParams[]) {\r\n const hiddenControls: number[] = this.controls\r\n .map((control) => {\r\n if (control.hidden) {\r\n return control.controlTemplateId;\r\n }\r\n })\r\n .filter((el) => el !== undefined);\r\n return hiddenControls\r\n ? urlQueryParams.filter((param) => !hiddenControls.includes(param.controlTemplateId))\r\n : urlQueryParams;\r\n }\r\n\r\n private updateNonExistingControls(urlParams: UrlParams): UrlParams {\r\n urlParams.urlQueryParams = this.removeNonExistingControls(urlParams.urlQueryParams);\r\n replaceUrl(createUrlParams(urlParams.urlQueryParams), this.currentUrl, this.location);\r\n return urlParams;\r\n }\r\n\r\n private removeNonExistingControls(params: UrlQueryParams[]): UrlQueryParams[] {\r\n const controlsIds: number[] = this._controls.map((control) => control.controlTemplateId);\r\n return params.filter((param) => controlsIds.includes(param.controlTemplateId));\r\n }\r\n\r\n private getNewUrlParams(oldQueryParams: UrlQueryParams[], currentQueryParams: UrlQueryParams[]): UrlQueryParams[] {\r\n const currentParamsIds: number[] = currentQueryParams.map((urlParams) => urlParams.controlTemplateId);\r\n currentQueryParams.forEach((currentUrlParams) => {\r\n if (currentParamsIds.includes(currentUrlParams.controlTemplateId)) {\r\n const defaultValues = this.getControlDefaultValues(currentUrlParams.controlTemplateId);\r\n const oldControl = oldQueryParams.find((params) =>\r\n params.controlTemplateId === currentUrlParams.controlTemplateId);\r\n if (oldControl && !areObjectsEqual(defaultValues, oldControl.values)) {\r\n currentUrlParams.values = deepClone(oldControl.values);\r\n }\r\n }\r\n });\r\n return currentQueryParams.concat(\r\n oldQueryParams.filter((urlParams) => !currentParamsIds.includes(urlParams.controlTemplateId))\r\n );\r\n }\r\n\r\n private getDefaultAutoComplete(defaultsSelected: DefaultSelected[]) {\r\n const autoCompleteIds: number[] = defaultsSelected.map((defaultSelected) => {\r\n if (defaultSelected.visualType === ReportControlVisualType.AutoCompleteMulti\r\n || defaultSelected.visualType === ReportControlVisualType.AutoCompleteSingle) {\r\n return defaultSelected.controlTemplateId;\r\n }\r\n });\r\n if (!autoCompleteIds) {\r\n return;\r\n }\r\n this._originalControlState.forEach((control) => {\r\n if (control.values && autoCompleteIds.includes(control.controlTemplateId)) {\r\n const defaultControl = defaultsSelected.find((defaultSelected) =>\r\n defaultSelected.controlTemplateId === control.controlTemplateId);\r\n const filteredData: GmxBiWorks.ReportControls.FilterData[] = defaultControl.defaultValues.map((filterValue) => {\r\n return {\r\n value: filterValue.value,\r\n text: filterValue.text,\r\n counter: filterValue.counter,\r\n selected: true\r\n };\r\n });\r\n this._originalAutoCompleteSelected.push({\r\n controlTemplateId: control.controlTemplateId,\r\n filteredData\r\n });\r\n }\r\n });\r\n this._autoCompleteSelected = deepClone(this._originalAutoCompleteSelected);\r\n }\r\n\r\n private addDefaultValuesToParams(defaultSelected: DefaultSelected, requestQueryParameter: RequestQueryParameter, reportId?: number) {\r\n reportId = reportId ? reportId : defaultSelected.reportId;\r\n const controlTemplateId = requestQueryParameter ? requestQueryParameter.controlTemplateId : defaultSelected.controlTemplateId;\r\n let values: any[];\r\n if (requestQueryParameter) {\r\n values = calculateRelativeDate(\r\n requestQueryParameter.values[0].includeToday,\r\n requestQueryParameter.values[0].periodCount,\r\n requestQueryParameter.values[0].periodType,\r\n requestQueryParameter.values[0].startOf);\r\n } else {\r\n values = defaultSelected.defaultValues.map((value) => value.value);\r\n }\r\n if (this.urlParams) {\r\n const queryParams = this.urlParams.urlQueryParams.find((params) =>\r\n params.controlTemplateId === controlTemplateId);\r\n if (queryParams) {\r\n queryParams.values = areObjectsEqual(values, queryParams.values) ? deepClone(values) : queryParams.values;\r\n } else {\r\n this.urlParams.urlQueryParams.push({\r\n controlTemplateId,\r\n values: deepClone(values)\r\n });\r\n }\r\n } else {\r\n this.urlParams = {\r\n reportId,\r\n urlQueryParams: [{\r\n controlTemplateId,\r\n values: deepClone(values)\r\n }]\r\n };\r\n }\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {GridsterConfig, GridsterItem} from 'angular-gridster2';\r\nimport {deepClone, destroySubject, visualToChartBase, visualToChartType} from '../../utils/utilities';\r\nimport {NavigationClientService} from './navigation-client.service';\r\nimport {ControlsClientService} from './controls-client.service';\r\nimport {ReportResult, ReportWidget, ReportWidgetCreationData, SlimWidgetMetaData, WebApiClient} from '../web-api-client';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {Observable, of, Subject} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {WidgetsDataManagerService} from './widgets-data-manager.service';\r\nimport WidgetVisualMetadata = GmxBiWorks.DataPoints.WidgetVisualMetadata;\r\nimport DefaultSelected = GmxBiWorks.ReportControls.DefaultSelected;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LayoutClientService implements OnDestroy {\r\n private report$ = new Subject();\r\n private reportFilters$ = new Subject();\r\n private allWidgets$ = new Subject();\r\n private widgetMetadata$ = new Subject();\r\n private url: Observable;\r\n\r\n constructor(\r\n private webApiClient: WebApiClient,\r\n private navigationClientService: NavigationClientService,\r\n private controlsClientService: ControlsClientService,\r\n private activatedRoute: ActivatedRoute,\r\n private widgetsDataManagerService: WidgetsDataManagerService,\r\n // private cacheService: CacheService\r\n ) {\r\n }\r\n\r\n //#region Getters/Setters\r\n\r\n get controlsFinished(): Observable {\r\n return this.controlsClientService.controlsFinished;\r\n }\r\n\r\n private _gridsterItemsObservable: Observable;\r\n\r\n get gridsterItemsObservable(): Observable {\r\n return this._gridsterItemsObservable;\r\n }\r\n\r\n set gridsterItemsObservable(value: Observable) {\r\n this._gridsterItemsObservable = value;\r\n }\r\n\r\n get selectedMenuItem() {\r\n return this.navigationClientService.selectedMenuItem;\r\n }\r\n\r\n get controls(): DefaultSelected[] {\r\n return this.controlsClientService.controls;\r\n }\r\n\r\n private _doesReportExist: boolean;\r\n\r\n get doesReportExist(): boolean {\r\n return this._doesReportExist;\r\n }\r\n\r\n private _lastTitlesSavedToDb: SlimWidgetMetaData[] = [];\r\n\r\n get lastTitlesSavedToDb(): SlimWidgetMetaData[] {\r\n return this._lastTitlesSavedToDb;\r\n }\r\n\r\n set lastTitlesSavedToDb(value: SlimWidgetMetaData[]) {\r\n this._lastTitlesSavedToDb = value;\r\n }\r\n\r\n private _changedSlimWidgets: SlimWidgetMetaData[] = [];\r\n\r\n get changedSlimWidgets(): SlimWidgetMetaData[] {\r\n return this._changedSlimWidgets;\r\n }\r\n\r\n private _options: GridsterConfig;\r\n\r\n get options(): GridsterConfig {\r\n return this._options;\r\n }\r\n\r\n set options(value: GridsterConfig) {\r\n this._options = value;\r\n }\r\n\r\n private _gridsterItems: GridsterItem[];\r\n\r\n get gridsterItems(): GridsterItem[] {\r\n return this._gridsterItems;\r\n }\r\n\r\n set gridsterItems(value: GridsterItem[]) {\r\n this._gridsterItems = value;\r\n }\r\n\r\n private _completeWidgetList: any;\r\n\r\n get completeWidgetList(): SlimWidgetMetaData[] {\r\n return this._completeWidgetList;\r\n }\r\n\r\n set completeWidgetList(value: SlimWidgetMetaData[]) {\r\n this._completeWidgetList = value;\r\n }\r\n\r\n private _error: GmxBiWorks.HttpError.CustomHttpError;\r\n\r\n get error(): GmxBiWorks.HttpError.CustomHttpError {\r\n return this._error;\r\n }\r\n\r\n set error(value: GmxBiWorks.HttpError.CustomHttpError) {\r\n this._error = value;\r\n }\r\n\r\n private _layoutTitle: string;\r\n\r\n get layoutTitle(): string {\r\n return this._layoutTitle;\r\n }\r\n\r\n //#endregion\r\n\r\n public getLayoutMetaData() {\r\n this.controlsClientService.resetControls();\r\n this._error = null;\r\n if (this.selectedMenuItem) {\r\n // const cachedVersion: ReportResult =\r\n // this.cacheService.getDataFromCache(this.selectedMenuItem.contentPageId,\r\n // ApiCallComponent.ReportMetadata, this.selectedMenuItem.contentPageId);\r\n // if (cachedVersion) {\r\n // this.widgetsDataManagerService.reportResults = deepClone(cachedVersion);\r\n // setTimeout(() => this.initializeReport(cachedVersion));\r\n // } else {\r\n // this.webApiClient.getReport(this.selectedMenuItem.contentPageId)\r\n // .pipe(takeUntil(this.report$))\r\n // .subscribe((reportResults: ReportResult) => {\r\n // this.widgetsDataManagerService.reportResults = deepClone(reportResults);\r\n // this.initializeReport(reportResults);\r\n // this.cacheService.saveDataToCache(this.selectedMenuItem.contentPageId,\r\n // ApiCallComponent.ReportMetadata,\r\n // this.selectedMenuItem.contentPageId, reportResults);\r\n // },\r\n // (httpError: GmxBiWorks.CustomHttpError.CustomHttpError) => {\r\n // this._doesReportExist = false;\r\n // this._layoutTitle = 'Error Loading Page';\r\n // this._error = httpError;\r\n // }\r\n // );\r\n // }\r\n this.webApiClient.getReport(this.selectedMenuItem.contentPageId)\r\n .pipe(takeUntil(this.report$))\r\n .subscribe((reportResults: ReportResult) => {\r\n this.widgetsDataManagerService.reportResults = deepClone(reportResults);\r\n this.initializeReport(reportResults);\r\n },\r\n (httpError: GmxBiWorks.HttpError.CustomHttpError) => {\r\n this._doesReportExist = false;\r\n this._layoutTitle = 'Error Loading Page';\r\n this._error = httpError;\r\n }\r\n );\r\n }\r\n }\r\n\r\n public getWidgetList(): Promise {\r\n return new Promise((resolve, reject) => {\r\n this._completeWidgetList = null;\r\n this.webApiClient.getAllWidgets()\r\n .pipe(takeUntil(this.allWidgets$))\r\n .subscribe(\r\n (completeWidgetList: SlimWidgetMetaData[]) => {\r\n this._completeWidgetList = completeWidgetList;\r\n resolve(true);\r\n }, (httpError: GmxBiWorks.HttpError.CustomHttpError) => {\r\n reject(httpError);\r\n });\r\n });\r\n }\r\n\r\n public getOrderedWidgetIndex(widgetId: number): number {\r\n return this.widgetsDataManagerService.orderedWidgets\r\n .findIndex((orderedWidget) => orderedWidget.widgetId === widgetId);\r\n }\r\n\r\n public updateWidget(widgetId: number, widgetCreationData: any): void {\r\n this.webApiClient.updateWidget(widgetId, widgetCreationData);\r\n }\r\n\r\n public saveGridInDb(reportWidgetsCreationData: ReportWidgetCreationData[]) {\r\n reportWidgetsCreationData.forEach(widget =>\r\n this.webApiClient.updateWidgetPositionsAndSize(widget.widgetId, widget.reportId, widget)\r\n .pipe(takeUntil(this.report$))\r\n .subscribe());\r\n }\r\n\r\n public disconnectWidgetFromReport(widgetId: number, reportId: number) {\r\n this.webApiClient.disconnectWidgetFromReport(widgetId, reportId)\r\n .pipe(takeUntil(this.report$))\r\n .subscribe();\r\n }\r\n\r\n public connectWidgetToReport(reportWidgetCreationData: any) {\r\n this.webApiClient.connectWidgetToReport(\r\n reportWidgetCreationData.widgetId,\r\n reportWidgetCreationData.reportId,\r\n reportWidgetCreationData)\r\n .pipe(takeUntil(this.report$))\r\n .subscribe();\r\n }\r\n\r\n public pushWidgetToGrid(reportWidget: ReportWidget): void {\r\n const item: GridsterItem = {\r\n x: reportWidget.column,\r\n y: reportWidget.row,\r\n cols: reportWidget.columnSpan || reportWidget.minimumColumnSpan as any,\r\n rows: reportWidget.rowSpan || reportWidget.minimumRowSpan,\r\n ['inputs']: [],\r\n minItemCols: reportWidget.minimumColumnSpan,\r\n minItemRows: reportWidget.minimumRowSpan,\r\n ['widgetHeight']: reportWidget.visuals.length * reportWidget.minimumRowSpan,\r\n ['widgetWidth']: reportWidget.visuals.length * reportWidget.minimumColumnSpan\r\n };\r\n\r\n const visuals = reportWidget.visuals.map(visual => {\r\n return {\r\n aggregationFunction: visual.aggregationFunction,\r\n dashType: visual.dashType,\r\n lineStyle: visual.lineStyle,\r\n columns: visual.columns,\r\n widgetVisual: visual.visualType.toString().toLowerCase(),\r\n isStacked: visual.isStacked,\r\n hasDataLabels: visual.hasDataLabels\r\n } as WidgetVisualMetadata;\r\n }\r\n );\r\n\r\n const singleVisual = reportWidget.visuals && reportWidget.visuals.length ? reportWidget.visuals[0] : null;\r\n\r\n item.inputs.push({\r\n uuid: reportWidget.widgetId,\r\n title: reportWidget.title,\r\n titleDescription: reportWidget.titleDescription,\r\n hideTitle: reportWidget.hideTitle,\r\n hasTransparentFrame: reportWidget.hasTransparentFrame,\r\n extraMessage: reportWidget.extraMessage,\r\n widgetId: reportWidget.widgetId,\r\n widgetType: reportWidget.visuals && reportWidget.visuals.length > 0\r\n ? visualToChartType(reportWidget.visuals[0].visualType)\r\n : null,\r\n visuals,\r\n singleVisual\r\n });\r\n\r\n this.widgetsDataManagerService.orderedWidgets[this.getOrderedWidgetIndex(reportWidget.widgetId)].widgetDataType =\r\n visualToChartBase(reportWidget.visuals[0].visualType);\r\n\r\n this._gridsterItems.push(item);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.report$);\r\n destroySubject(this.reportFilters$);\r\n destroySubject(this.allWidgets$);\r\n destroySubject(this.widgetMetadata$);\r\n }\r\n\r\n private createBreadCrumbs(reportTitle: string) {\r\n const routerState = '_routerState';\r\n // removing the first backslash from the url address and splitting the url to an array\r\n let breadCrumbsArray = this.activatedRoute.snapshot[routerState].url\r\n .substr(1)\r\n .replace(/-/g, ' ')\r\n .split('/');\r\n\r\n // formatting the array\r\n breadCrumbsArray = breadCrumbsArray.map((crumb) => `${crumb} / `);\r\n\r\n // replacing the last route with the report title\r\n breadCrumbsArray[breadCrumbsArray.length - 1] = reportTitle;\r\n\r\n // joining all the parts of the array to a single string\r\n // the toString function adds - commas - each line\r\n // so I am removing it\r\n return breadCrumbsArray.toString().replace(/,/g, '');\r\n }\r\n\r\n private pushWidgetsToGrid(reportResult: ReportResult) {\r\n reportResult.widgets.forEach((widget: ReportWidget) => {\r\n this.pushWidgetToGrid(widget);\r\n });\r\n this._gridsterItemsObservable = of(this.gridsterItems);\r\n this.widgetsDataManagerService.getAllDataFromApi(reportResult.report.id);\r\n }\r\n\r\n private initializeReport(reportResults: ReportResult) {\r\n this.widgetsDataManagerService.orderedWidgets = reportResults.widgets.sort(\r\n (firstWidget, secondWidget) => {\r\n if (firstWidget.row === secondWidget.row) {\r\n return firstWidget.column - secondWidget.column;\r\n }\r\n return firstWidget.row > secondWidget.row ? 1 : -1;\r\n }).map((widget) => {\r\n return {\r\n widgetId: widget.widgetId\r\n };\r\n });\r\n this._doesReportExist = true;\r\n this._gridsterItems = [];\r\n this._layoutTitle = this.createBreadCrumbs(reportResults.report.name);\r\n if (reportResults.hasControls) {\r\n this.controlsClientService.controls = deepClone(reportResults.controls);\r\n }\r\n this.pushWidgetsToGrid(reportResults);\r\n this.controlsClientService.updateControlsFinished(true);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {UserClientService} from './user-client.service';\r\nimport {MonitoringService} from '../monitoring-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogService {\r\n\r\n constructor(\r\n private monitoringService: MonitoringService,\r\n private userClientService: UserClientService) {\r\n }\r\n\r\n public logError(error: Error,\r\n handledAt: string) {\r\n const username = this.userClientService && this.userClientService.user\r\n ? this.userClientService.user.username\r\n : null;\r\n\r\n const properties = {\r\n UserName: username\r\n }\r\n ;\r\n\r\n this.monitoringService.trackException(error, handledAt, properties, null);\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {TreeNode, WebApiClient} from '../web-api-client';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {deepClone, destroySubject} from '../../utils/utilities';\r\nimport {Observable, Subject} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport MenuItemSelectedType = GmxBiWorks.Menu.MenuItemSelectedType;\r\nimport MenuItemModel = GmxBiWorks.Menu.MenuItemModel;\r\nimport DrillThroughControlsState = GmxBiWorks.ReportControls.DrillThroughControlsState;\r\nimport RequestQueryParameterExtended = GmxBiWorks.ReportControls.RequestQueryParameterExtended;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigationClientService implements OnDestroy {\r\n //#region Getters/Setters\r\n public controlsAfterInnerRouting: DrillThroughControlsState;\r\n private navigationTree$ = new Subject();\r\n private drillThroughReportPath: string;\r\n\r\n constructor(\r\n private webApiClient: WebApiClient\r\n ) {\r\n }\r\n\r\n private _drillThroughControl: RequestQueryParameterExtended;\r\n\r\n get drillThroughControl(): RequestQueryParameterExtended {\r\n return this._drillThroughControl;\r\n }\r\n\r\n set drillThroughControl(value: RequestQueryParameterExtended) {\r\n this._drillThroughControl = value;\r\n }\r\n\r\n private _selectedMenuItem: MenuItemSelectedType;\r\n\r\n get selectedMenuItem(): MenuItemSelectedType {\r\n return this._selectedMenuItem;\r\n }\r\n\r\n private _initialNavigationDrawerViewCheckCompleted = false;\r\n\r\n get initialNavigationDrawerViewCheckCompleted(): boolean {\r\n return this._initialNavigationDrawerViewCheckCompleted;\r\n }\r\n\r\n set initialNavigationDrawerViewCheckCompleted(value: boolean) {\r\n this._initialNavigationDrawerViewCheckCompleted = value;\r\n }\r\n\r\n private _isNavigationDrawerHidden = false;\r\n\r\n get isNavigationDrawerHidden(): boolean {\r\n return this._isNavigationDrawerHidden;\r\n }\r\n\r\n set isNavigationDrawerHidden(value: boolean) {\r\n this._isNavigationDrawerHidden = value;\r\n }\r\n\r\n private _menuData: MenuItemModel[];\r\n\r\n get menuData(): MenuItemModel[] {\r\n return this._menuData;\r\n }\r\n\r\n set menuData(value: MenuItemModel[]) {\r\n this._menuData = value;\r\n }\r\n\r\n private _filteredMenuData: MenuItemModel[];\r\n\r\n get filteredMenuData(): MenuItemModel[] {\r\n return this._filteredMenuData;\r\n }\r\n\r\n set filteredMenuData(value: MenuItemModel[]) {\r\n this._filteredMenuData = value;\r\n }\r\n\r\n private _menuItemIsSelected = false;\r\n\r\n get menuItemIsSelected(): boolean {\r\n return this._menuItemIsSelected;\r\n }\r\n\r\n //#endregion\r\n\r\n public checkNavDataExists(): Observable {\r\n return new Observable(observer => {\r\n if (!this._menuData) {\r\n this.webApiClient.getNavigationTree()\r\n .pipe(takeUntil(this.navigationTree$))\r\n .subscribe((menu: TreeNode[]) => {\r\n this._menuData = deepClone(menu);\r\n this._filteredMenuData = deepClone(menu);\r\n observer.next(true);\r\n }, (error) => {\r\n observer.error(error);\r\n }, (() => {\r\n observer.complete();\r\n })\r\n );\r\n } else {\r\n observer.next(true);\r\n observer.complete();\r\n }\r\n });\r\n }\r\n\r\n public getDefaultRoute(menuItems: TreeNode[] = null): string {\r\n for (const item of menuItems || this._filteredMenuData) {\r\n const routingPath = item.routingPath || this.getDefaultRoute(item.children);\r\n if (routingPath) {\r\n return routingPath;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public setSelectedNavigationItem(route: string) {\r\n this.setSelectedNavigationItemRecursive(route, this._filteredMenuData);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.navigationTree$);\r\n }\r\n\r\n public getNavigationRoute(drillThroughReportId: number) {\r\n this.findReportRouteRecursive(drillThroughReportId, this._menuData);\r\n return this.drillThroughReportPath;\r\n }\r\n\r\n private findReportRouteRecursive(drillThroughReportId: number, menuItems: MenuItemModel[]) {\r\n menuItems.forEach((menuItem: any) => {\r\n const contentPageId = menuItem.routingPath ? menuItem.routingPath.split('-').pop() : null;\r\n if (+contentPageId === drillThroughReportId) {\r\n this.drillThroughReportPath = menuItem.routingPath;\r\n return;\r\n }\r\n if (menuItem.children.length > 0) {\r\n this.findReportRouteRecursive(drillThroughReportId, menuItem.children);\r\n }\r\n });\r\n }\r\n\r\n // noinspection FunctionNamingConventionJS\r\n private setSelectedNavigationItemRecursive(route: string, menuItems: MenuItemModel[]) {\r\n menuItems.forEach((menuItem: any) => {\r\n if (menuItem.routingPath === route) {\r\n menuItem.selected = true;\r\n this._menuItemIsSelected = true;\r\n this._selectedMenuItem = {\r\n contentPageId: +route.split('-').pop(),\r\n contentPageType: route.split('-')[0].split('/').pop()\r\n };\r\n } else {\r\n menuItem.selected = false;\r\n if (menuItem.children.length > 0) {\r\n this.setSelectedNavigationItemRecursive(route, menuItem.children);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {UserClientService} from './user-client.service';\r\nimport {Permission} from '../web-api-client';\r\nimport {PERMISSION_NAME} from '../../enums/enums';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PermissionsService {\r\n private readonly permissions: Permission[];\r\n private readonly isUnrestrictedTenant: boolean;\r\n\r\n constructor(private userService: UserClientService) {\r\n this.permissions = userService.user.permissions;\r\n this.isUnrestrictedTenant = userService.user.isUnrestrictedTenant;\r\n }\r\n\r\n get canCustomizeReport(): boolean {\r\n return this.userService.canCustomizeReport = this.hasPermission(PERMISSION_NAME.CanCustomizeReport);\r\n }\r\n\r\n private hasPermission(permissionName: string, resourceId?: string, ignoreTenantUnrestricted?: boolean): boolean {\r\n if (ignoreTenantUnrestricted !== true && this.isUnrestrictedTenant) {\r\n return true;\r\n }\r\n\r\n return this.permissions\r\n .some(permission =>\r\n permission.permissionName === permissionName &&\r\n (\r\n resourceId === null ||\r\n resourceId in permission.resourceIds\r\n )\r\n );\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {User, WebApiClient} from '../web-api-client';\r\nimport {Observable, of, Subject} from 'rxjs';\r\nimport {areObjectsEqual, destroySubject} from '../../utils/utilities';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserClientService implements OnDestroy {\r\n private user$ = new Subject();\r\n private modalAction$ = new Subject();\r\n\r\n constructor(\r\n private webApiClient: WebApiClient\r\n ) {\r\n }\r\n\r\n //#region Getters\\Setters\r\n\r\n private _userExists: Observable;\r\n\r\n get userExists(): Observable {\r\n return this._userExists;\r\n }\r\n\r\n private _canCustomizeReport: boolean;\r\n\r\n get canCustomizeReport(): boolean {\r\n return this._canCustomizeReport;\r\n }\r\n\r\n set canCustomizeReport(value: boolean) {\r\n this._canCustomizeReport = value;\r\n }\r\n\r\n private _hasUserChanged: boolean;\r\n\r\n get hasUserChanged(): boolean {\r\n const hasChanged = this._hasUserChanged;\r\n this._hasUserChanged = false;\r\n return hasChanged;\r\n }\r\n\r\n private _user: User;\r\n\r\n get user(): User {\r\n return this._user;\r\n }\r\n\r\n //#endregion\r\n\r\n private static addMartechScriptsForUser(user: User) {\r\n return;\r\n \r\n const script = document.createElement('script');\r\n script.innerHTML =\r\n `woopra.identify({\r\n email: \"${user.username}\",\r\n name: \"${user.name}\",\r\n company: \"${user.tenantName}\"\r\n });\r\n woopra.track();`;\r\n\r\n document.head.appendChild(script);\r\n }\r\n\r\n public getUser(forceGet: boolean = false): Observable {\r\n if (!forceGet && this.user) {\r\n return of(this.user);\r\n }\r\n return new Observable(observer => {\r\n this.webApiClient.getUser()\r\n .pipe(takeUntil(this.user$))\r\n .subscribe((user) => {\r\n this._hasUserChanged = !areObjectsEqual(user, this.user);\r\n this._user = user;\r\n observer.next(this.user);\r\n this._userExists = of(true);\r\n\r\n UserClientService.addMartechScriptsForUser(user);\r\n }, (error) => {\r\n // TODO: do something if the user has not returned any data\r\n this._userExists = of(false);\r\n observer.error(error);\r\n }, (() => {\r\n observer.complete();\r\n })\r\n );\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.user$);\r\n destroySubject(this.modalAction$);\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {BehaviorSubject, Observable, of, Subject} from 'rxjs';\r\nimport {ReportResult, ReportWidget, WebApiClient} from '../web-api-client';\r\nimport {ChartTypeComponent, WidgetDataType} from '../../enums/enums';\r\nimport {catchError, map, takeUntil} from 'rxjs/operators';\r\nimport {ControlsClientService} from './controls-client.service';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {SeriesIngestService} from '../data-injester/series-ingest.service';\r\nimport {TableIngestService} from '../data-injester/table-ingest.service';\r\nimport {destroySubject, visualToChartType} from '../../utils/utilities';\r\nimport {MapIngestService} from '../data-injester/map-ingest.service';\r\nimport {NumberIngestService} from '../data-injester/number-ingest.service';\r\nimport {TextIngestService} from '../data-injester/text-ingest.service';\r\nimport OrderedWidget = GmxBiWorks.ReportControls.OrderedWidget;\r\nimport MapDataPoint = GmxBiWorks.DataPoints.MapDataPoint;\r\nimport NumbersData = GmxBiWorks.DataPoints.NumbersData;\r\nimport TextData = GmxBiWorks.DataPoints.TextData;\r\nimport CustomHttpError = GmxBiWorks.HttpError.CustomHttpError;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WidgetsDataManagerService implements OnDestroy {\r\n public widgetsData: {\r\n [widgetId: number]: BehaviorSubject\r\n } = {};\r\n public orderedWidgets: OrderedWidget[] = [];\r\n public reportResults: ReportResult;\r\n private reportId: number;\r\n private onDestroy$: Subject = new Subject();\r\n\r\n constructor(\r\n private webApiClient: WebApiClient,\r\n private controlsClientService: ControlsClientService,\r\n // private cacheService: CacheService,\r\n private seriesIngestService: SeriesIngestService,\r\n private tableIngestService: TableIngestService,\r\n private mapIngestService: MapIngestService,\r\n private numbersIngestService: NumberIngestService,\r\n private textIngestService: TextIngestService\r\n ) {\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.onDestroy$);\r\n }\r\n\r\n public getAllDataFromApi(reportId: number) {\r\n this.reportId = reportId;\r\n this.orderedWidgets.forEach((orderedWidget) => {\r\n this.widgetsData[orderedWidget.widgetId] =\r\n new BehaviorSubject(null);\r\n // const cachedVersion =\r\n // this.cacheService.getDataFromCache(reportId,\r\n // ApiCallComponent.WidgetData, orderedWidget.widgetId);\r\n // if (cachedVersion) {\r\n // setTimeout(() => this.widgetsData[orderedWidget.widgetId].next(cachedVersion), 300);\r\n // return;\r\n // }\r\n this.getWidgetData(this.reportId, orderedWidget.widgetId, orderedWidget.widgetDataType)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(data => {\r\n // this.cacheService.saveDataToCache(reportId,\r\n // ApiCallComponent.WidgetData,\r\n // orderedWidget.widgetId, data);\r\n this.widgetsData[orderedWidget.widgetId].next(data);\r\n });\r\n });\r\n }\r\n\r\n public getDataFromService(widgetId: number, loadNewData: boolean)\r\n : Observable {\r\n const orderedWidget = this.orderedWidgets.find((widget) =>\r\n widget.widgetId === widgetId);\r\n if (loadNewData) {\r\n const widgetDataType = this.orderedWidgets.find((widget) =>\r\n widgetId === widget.widgetId).widgetDataType;\r\n this.getWidgetData(this.reportId, widgetId, widgetDataType)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(data => {\r\n // this.cacheService.saveDataToCache(this.reportId,\r\n // ApiCallComponent.WidgetData,\r\n // widgetId, data, this.controlsClientService.requestQueryParameters);\r\n this.widgetsData[orderedWidget.widgetId].next(data);\r\n });\r\n }\r\n // TODO: fix caching problems with 2 visuals\r\n // const cachedVersion =\r\n // this.cacheService.getDataFromCache(this.reportId,\r\n // ApiCallComponent.WidgetData, widgetId, this.controlsClientService.requestQueryParameters);\r\n // if (cachedVersion) {\r\n // this.widgetsData[orderedWidget.widgetId].next(cachedVersion);\r\n // return this.widgetsData[orderedWidget.widgetId];\r\n // }\r\n return this.widgetsData[widgetId];\r\n }\r\n\r\n private getWidgetData(reportId: number, widgetId: number, widgetDataType: WidgetDataType)\r\n : any {\r\n const reportWidget: ReportWidget = this.reportResults.widgets\r\n .find((widget) => widget.widgetId === widgetId);\r\n const cartTypeComponent: ChartTypeComponent = visualToChartType(reportWidget.visuals[0].visualType);\r\n switch (widgetDataType) {\r\n case WidgetDataType.table:\r\n // If text component and static message no need for api call\r\n if (cartTypeComponent === 'Text') {\r\n const textData = this.textIngestService.normalizeTextData(null, reportWidget);\r\n if (textData.staticMessage) {\r\n return of(textData);\r\n }\r\n }\r\n return this.webApiClient\r\n .getTableData(reportId, widgetId, this.controlsClientService.requestQueryParameters)\r\n .pipe(\r\n map(async (data) => {\r\n // noinspection NestedSwitchStatementJS\r\n switch (cartTypeComponent) {\r\n case 'TableComponent':\r\n return await this.tableIngestService.normalizeTableData(data, reportWidget);\r\n case 'MapComponent':\r\n return await this.mapIngestService.normalizeMapData(data);\r\n case 'Text':\r\n return this.textIngestService.normalizeTextData(data, reportWidget);\r\n }\r\n }),\r\n takeUntil(this.onDestroy$),\r\n catchError((err: CustomHttpError) => of(err))\r\n );\r\n case WidgetDataType.chart:\r\n return this.webApiClient\r\n .getChartData(reportId, widgetId, this.controlsClientService.requestQueryParameters)\r\n .pipe(\r\n map(async (data) => {\r\n // noinspection NestedSwitchStatementJS\r\n switch (cartTypeComponent) {\r\n case 'SeriesChartComponent':\r\n return await this.seriesIngestService.normalizeSeriesData(Object.values(data), reportWidget);\r\n case 'PercentageChangeComponent':\r\n case 'NumberScalarComponent':\r\n return await this.numbersIngestService.normalizeNumbersData(Object.values(data)[0], reportWidget);\r\n }\r\n }),\r\n takeUntil(this.onDestroy$),\r\n catchError((err: CustomHttpError) => of(err))\r\n );\r\n default:\r\n throw Error(`Widget Data Type Not Supported: ${widgetDataType}`);\r\n }\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {TableData} from '../web-api-client';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport MapDataPoint = GmxBiWorks.DataPoints.MapDataPoint;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapIngestService {\r\n private mapData: MapDataPoint[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n private static normalizeDataPointSize(dataPointSize: number, totalSize: number) {\r\n const minCircleRadius = 200_000;\r\n const maxCircleRadius = 2_500_000;\r\n const rangeCircleRadius = maxCircleRadius - minCircleRadius;\r\n\r\n return minCircleRadius + (totalSize === 0 ? 0 : (dataPointSize / totalSize * (rangeCircleRadius)));\r\n }\r\n\r\n public normalizeMapData(mapData: TableData): Promise {\r\n return new Promise(async (resolve) => {\r\n const promise = new Promise((res) => {\r\n setTimeout(() => {\r\n this.resetProperties();\r\n const dataRows = mapData.dataRows;\r\n const totalSize =\r\n dataRows\r\n .reduce((sum, current) =>\r\n sum + current.Value, 0);\r\n\r\n this.mapData = dataRows.map(row => ({\r\n name: row.Name,\r\n value: row.Value,\r\n size: MapIngestService.normalizeDataPointSize(row.Value, totalSize),\r\n lat: row.Latitude,\r\n lng: row.Longitude,\r\n additionalData: row.AdditionalData,\r\n uiOptions: {\r\n isTooltipDisplayed: false\r\n }\r\n }));\r\n res(this.mapData);\r\n });\r\n });\r\n await promise.then((data) => resolve(data as any));\r\n });\r\n }\r\n\r\n private resetProperties() {\r\n this.mapData = [];\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ChartData, ColumnSetting, ReportWidget} from '../web-api-client';\r\nimport {formatDataValue, getDateWithoutTimezoneDifference} from '../../utils/utilities';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {IntlService} from '@progress/kendo-angular-intl';\r\nimport SparklineData = GmxBiWorks.DataPoints.SparklineData;\r\nimport DonutData = GmxBiWorks.DataPoints.DonutData;\r\nimport WidgetVisualMetadata = GmxBiWorks.DataPoints.WidgetVisualMetadata;\r\nimport NumbersData = GmxBiWorks.DataPoints.NumbersData;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NumberIngestService {\r\n private numbersData: NumbersData = {};\r\n private widgetVisuals: WidgetVisualMetadata[];\r\n\r\n constructor(private intl: IntlService) {\r\n }\r\n\r\n /**\r\n * Calculates in percent, the change between 2 numbers.\r\n * e.g from 1000 to 500 = 50%\r\n *\r\n * @param oldValue The initial value\r\n * @param newValue The value that changed\r\n */\r\n private static getPercentageChange(oldValue, newValue) {\r\n const decreaseValue = oldValue - newValue;\r\n return 0 - (decreaseValue / oldValue * 100);\r\n }\r\n\r\n public normalizeNumbersData(chartData: ChartData, reportWidget: ReportWidget): Promise {\r\n return new Promise((resolve) => {\r\n this.resetProperties();\r\n this.initMetadata(reportWidget);\r\n\r\n const oldValueIndex = this.widgetVisuals[0].columns.findIndex((column) => column.field === 'OldValue');\r\n const newValueIndex = this.widgetVisuals[0].columns.findIndex((column) => column.field === 'NewValue');\r\n this.numbersData.numbersData.result = chartData.series.map((item) => {\r\n const oldValue = oldValueIndex > -1 ? item.values[oldValueIndex].value : item.values[0].value;\r\n let newValue = 0;\r\n let percent = 0;\r\n if (item.values.length > 1) {\r\n newValue = newValueIndex > -1 ? item.values[newValueIndex].value : item.values[1].value;\r\n percent = +NumberIngestService.getPercentageChange(oldValue, newValue).toFixed(2);\r\n percent = percent === Number.POSITIVE_INFINITY ? newValue : percent;\r\n }\r\n const columns: ColumnSetting[] =\r\n this.widgetVisuals && this.widgetVisuals.length\r\n ? this.widgetVisuals[0].columns\r\n : null;\r\n\r\n const metadata = columns ? columns.find(col => col.field === item.name) : null;\r\n const format = metadata && metadata.format ? metadata.format : 'n0';\r\n\r\n const hasAdditionalData = item.values[0].additionalData;\r\n const sparklineData: SparklineData =\r\n hasAdditionalData\r\n ? {\r\n dates: item.values[0].additionalData.map((row) =>\r\n getDateWithoutTimezoneDifference(new Date(row.key))),\r\n values: item.values[0].additionalData.map((row) => row.value),\r\n valueFormat: format.startsWith('p') ? 'n0' : format\r\n }\r\n : null;\r\n\r\n const donutData: DonutData[] = this.getDonutData(item.name, columns, oldValue, newValue);\r\n\r\n //#region These are for the UI color and icon\r\n let percentageChange: number;\r\n let icon: string;\r\n let color: string;\r\n\r\n if (newValue === 0) {\r\n return {\r\n oldValue: +oldValue,\r\n newValue,\r\n donutData,\r\n color: 'red',\r\n icon: 'arrow-circle-down',\r\n name: item.name,\r\n percent,\r\n percentageChange: 0,\r\n valueFormat: format,\r\n sparklineData\r\n };\r\n }\r\n\r\n if (newValue > oldValue) {\r\n percentageChange = 1;\r\n icon = 'arrow-circle-up';\r\n color = 'green';\r\n }\r\n\r\n if (oldValue > newValue) {\r\n percentageChange = -1;\r\n icon = 'arrow-circle-down';\r\n color = 'red';\r\n }\r\n\r\n //#endregion\r\n\r\n return {\r\n oldValue: +oldValue,\r\n newValue: +newValue,\r\n donutData,\r\n color,\r\n icon,\r\n name: item.name,\r\n percent,\r\n percentageChange,\r\n valueFormat: format,\r\n sparklineData\r\n };\r\n });\r\n\r\n this.numbersData.numbersData.result.forEach((number) => {\r\n this.numbersData.noComparedValue = number.newValue === 0;\r\n });\r\n\r\n resolve(this.numbersData);\r\n });\r\n }\r\n\r\n private initMetadata(reportWidget: ReportWidget): void {\r\n this.widgetVisuals = reportWidget.visuals.map(visual => {\r\n return {\r\n aggregationFunction: visual.aggregationFunction,\r\n dashType: visual.dashType,\r\n lineStyle: visual.lineStyle,\r\n columns: visual.columns,\r\n widgetVisual: visual.visualType.toString().toLowerCase(),\r\n isStacked: visual.isStacked,\r\n hasDataLabels: visual.hasDataLabels\r\n } as WidgetVisualMetadata;\r\n }\r\n );\r\n this.numbersData.numbersMetadata.singleVisual = this.widgetVisuals && this.widgetVisuals.length ? this.widgetVisuals[0] : null;\r\n }\r\n\r\n private getDonutData(name: string, columns: ColumnSetting[], oldValue: number, newValue: number): DonutData[] {\r\n const oldValueColumn = columns.find((column) =>\r\n column.field === `${name}_OldValue`);\r\n if (!oldValueColumn) {\r\n return [];\r\n }\r\n const newValueColumn = columns.find((column) =>\r\n column.field === `${name}_NewValue`);\r\n return [\r\n {\r\n category: oldValueColumn.title,\r\n value: formatDataValue(this.intl, oldValue / (oldValue + newValue), oldValueColumn.format)\r\n },\r\n {\r\n category: newValueColumn.title,\r\n value: formatDataValue(this.intl, newValue / (oldValue + newValue), newValueColumn.format)\r\n }\r\n ];\r\n }\r\n\r\n private resetProperties() {\r\n this.widgetVisuals = [];\r\n this.numbersData = {\r\n numbersData: {\r\n result: []\r\n },\r\n noComparedValue: false,\r\n numbersMetadata: {}\r\n };\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {AdditionalDataRow, ChartData, ReportWidget, VisualMetadataDashType, VisualMetadataLineStyle} from '../web-api-client';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {checkIfDate, formatDataValue, formatValue, getTooltipCategoryFormat} from '../../utils/utilities';\r\nimport {IntlService} from '@progress/kendo-angular-intl';\r\nimport {CategoryBaseUnit, SeriesType} from '@progress/kendo-angular-charts/dist/es2015/common/property-types';\r\nimport SeriesData = GmxBiWorks.DataPoints.SeriesData;\r\nimport CategoryData = GmxBiWorks.DataPoints.CategoryData;\r\nimport TooltipsData = GmxBiWorks.DataPoints.TooltipsData;\r\nimport ChartDataValue = GmxBiWorks.DataPoints.ChartDataValue;\r\nimport WidgetVisualMetadata = GmxBiWorks.DataPoints.WidgetVisualMetadata;\r\nimport Tooltip = GmxBiWorks.DataPoints.Tooltip;\r\nimport IValueAxis = GmxBiWorks.DataPoints.IValueAxis;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SeriesIngestService {\r\n private chartData: GmxBiWorks.DataPoints.ChartData = {};\r\n private widgetVisuals: WidgetVisualMetadata[];\r\n private isMultiSeries = false;\r\n private yAxisStep = 3;\r\n private hasFrameColor = '#a4b0ca';\r\n\r\n constructor(private intl: IntlService) {\r\n }\r\n\r\n private static getChartTypeFamily(widgetVisualType: string) {\r\n switch (widgetVisualType) {\r\n case 'line':\r\n case 'bar':\r\n return 'Categorical';\r\n case 'donut':\r\n case 'donutmulti':\r\n case 'pie':\r\n return 'Circular';\r\n default:\r\n return 'Categorical';\r\n }\r\n }\r\n\r\n public normalizeSeriesData(rawDataResult: ChartData[], reportWidget: ReportWidget): Promise {\r\n return new Promise(async (resolve) => {\r\n const promise = new Promise((res) => {\r\n setTimeout(() => {\r\n this.resetProperties();\r\n this.initMetadata(reportWidget);\r\n\r\n if (!rawDataResult || rawDataResult.length === 0) {\r\n res({\r\n categories: null,\r\n allSeries: null,\r\n seriesByCategories: null,\r\n tooltips: null\r\n } as GmxBiWorks.DataPoints.ChartData);\r\n }\r\n const isCategoriesDate = rawDataResult[0].categories && checkIfDate(rawDataResult[0].categories[0]);\r\n\r\n const allSeries: SeriesData[][] =\r\n rawDataResult.map((chartData: ChartData, i) => {\r\n const maxValue = chartData.series.length === 0\r\n ? 0\r\n : chartData.series.reduce((a, b) =>\r\n a.values[0].value > b.values[0].value ? a : b).values[0].value;\r\n\r\n let totalPercentage = 0;\r\n\r\n chartData.series.forEach((a) => totalPercentage += a.values[0].value);\r\n return chartData.series.map(seriesItem => {\r\n const tooltipsData: TooltipsData = {\r\n valueTitle: null,\r\n formattedCategoryValues: [],\r\n originalCategoryValues: []\r\n };\r\n\r\n tooltipsData.valueTitle = this.getTooltipValueTitle(i, seriesItem.name);\r\n return {\r\n explode: maxValue === seriesItem.values[0].value,\r\n percent: seriesItem.values[0].value / totalPercentage,\r\n name: seriesItem.name,\r\n values: seriesItem.values.map(seriesItemData => {\r\n if (!isCategoriesDate) {\r\n tooltipsData.originalCategoryValues.push(seriesItemData.value);\r\n tooltipsData.formattedCategoryValues.push(this.getTooltipValueText(seriesItemData.value, i));\r\n }\r\n return {\r\n additionalData: seriesItemData.additionalData ? seriesItemData.additionalData\r\n .map((_additionalDataRow: AdditionalDataRow) => {\r\n const row = {\r\n key: _additionalDataRow.key,\r\n value: formatValue(_additionalDataRow.value)\r\n };\r\n const tooltip: Tooltip = {\r\n formattedValue: this.getTooltipAdditionalDataValue(row, i),\r\n valueTitle: this.getTooltipAdditionalDataTitle(row.key, i),\r\n };\r\n return {\r\n tooltip,\r\n key: row.key,\r\n value: row.value\r\n };\r\n }) : null,\r\n name: seriesItem.name,\r\n value: seriesItemData.value,\r\n dataPointSize: seriesItemData.dataPointSize,\r\n tooltip: {\r\n valueTitle: isCategoriesDate ? null : this.getTooltipValueTitle(i),\r\n formattedValue: isCategoriesDate ? null : this.getTooltipValueText(seriesItemData.value, i)\r\n }\r\n } as ChartDataValue;\r\n }),\r\n tooltips: tooltipsData,\r\n } as SeriesData;\r\n });\r\n });\r\n\r\n const firstSeries = rawDataResult[0];\r\n\r\n const categories: (number | Date | string)[] =\r\n firstSeries.categories\r\n ? firstSeries.categories.map(formatValue)\r\n : null;\r\n\r\n const seriesByCategories = this.getSeriesByCategories(categories, allSeries[0]);\r\n\r\n this.isMultiSeries = seriesByCategories.length > 1 && seriesByCategories[0].series.length > 1;\r\n\r\n const originalCategoryValues: (number | Date | string)[] =\r\n categories ? categories : firstSeries.series.map((item) => item.name);\r\n\r\n const formattedCategoryValues: string[] = categories\r\n ? categories.map(getTooltipCategoryFormat)\r\n : firstSeries.series.map((item) => {\r\n return getTooltipCategoryFormat(item.name);\r\n });\r\n const valueTitle = this.chartData.chartMetadata.category.title.text;\r\n\r\n const tooltips: TooltipsData = {\r\n originalCategoryValues,\r\n formattedCategoryValues,\r\n valueTitle\r\n };\r\n this.chartData.categories = categories;\r\n this.chartData.allSeries = allSeries;\r\n this.chartData.seriesByCategories = seriesByCategories;\r\n this.chartData.tooltips = tooltips;\r\n\r\n this.initExtraMetadata();\r\n res(this.chartData);\r\n });\r\n });\r\n await promise.then((data) => resolve(data));\r\n });\r\n }\r\n\r\n private initMetadata(reportWidget: ReportWidget): void {\r\n this.defaultMetadata();\r\n this.widgetVisuals = reportWidget.visuals.map(visual => {\r\n return {\r\n aggregationFunction: visual.aggregationFunction,\r\n dashType: visual.dashType,\r\n lineStyle: visual.lineStyle,\r\n columns: visual.columns,\r\n widgetVisual: visual.visualType.toString().toLowerCase(),\r\n isStacked: visual.isStacked,\r\n hasDataLabels: visual.hasDataLabels\r\n } as WidgetVisualMetadata;\r\n }\r\n );\r\n if (!this.widgetVisuals || this.widgetVisuals.every(m => !m.columns)) {\r\n this.chartData.chartMetadata.visuals[0].aggregationFunction = this.widgetVisuals[0].aggregationFunction;\r\n this.chartData.chartMetadata.visuals[0].dashType = this.widgetVisuals[0].dashType;\r\n this.chartData.chartMetadata.visuals[0].seriesType = this.widgetVisuals[0].widgetVisual as SeriesType;\r\n this.chartData.chartMetadata.visuals[0].isStacked = this.widgetVisuals[0].isStacked;\r\n this.chartData.chartMetadata.visuals[0].hasDataLabels = this.widgetVisuals[0].hasDataLabels;\r\n return;\r\n }\r\n\r\n this.chartData.chartMetadata.visuals = [];\r\n\r\n for (let i = 0; i < this.widgetVisuals.length; i++) {\r\n const visual = this.widgetVisuals[i];\r\n const categoryMetadata = visual.columns.find(col => col.field === 'Category');\r\n const valueMetadata = visual.columns.find(col => col.field === 'Value');\r\n\r\n const categoryDisplayTitle = categoryMetadata && categoryMetadata.hideTitle !== true && !!categoryMetadata.title;\r\n const valueDisplayTitle = valueMetadata && valueMetadata.hideTitle !== true && !!valueMetadata.title;\r\n\r\n if (categoryMetadata) {\r\n this.chartData.chartMetadata.category = {\r\n title: {\r\n color: reportWidget.hasTransparentFrame ? 'black' : this.hasFrameColor,\r\n text: categoryMetadata.title,\r\n visible: categoryDisplayTitle,\r\n position: visual.widgetVisual as SeriesType === 'bar' || !valueDisplayTitle ? 'center' : 'left'\r\n },\r\n format: categoryMetadata.format,\r\n baseUnit: categoryMetadata.baseUnit,\r\n baseUnitStep: categoryMetadata.baseUnitStep,\r\n hasExplicitBaseUnit: !!categoryMetadata.baseUnit,\r\n aggregationFunction: visual.aggregationFunction\r\n };\r\n }\r\n\r\n if (valueMetadata) {\r\n const series: IValueAxis = {\r\n isStacked: visual.isStacked,\r\n aggregationFunction: visual.aggregationFunction,\r\n dashType: visual.dashType,\r\n lineStyle: visual.lineStyle,\r\n seriesType: visual.widgetVisual as SeriesType,\r\n name: valueMetadata.title,\r\n title: {\r\n text: valueMetadata.title,\r\n visible: valueDisplayTitle,\r\n position: visual.widgetVisual as SeriesType === 'bar' ? 'left' : categoryDisplayTitle ? 'bottom' : 'center'\r\n },\r\n format: valueMetadata.format,\r\n hasDataLabels: valueMetadata.hasDataLabels ? valueMetadata.hasDataLabels : visual.hasDataLabels,\r\n labels: {\r\n color: reportWidget.hasTransparentFrame ? 'black' : this.hasFrameColor,\r\n position: visual.widgetVisual as SeriesType === 'bar' || i > 0 ? 'end' : 'start',\r\n step: this.yAxisStep,\r\n // format: valueMetadata.format,\r\n content: (e: any) => formatDataValue(this.intl, e.value, valueMetadata.format)\r\n },\r\n additionalData:\r\n visual.columns.filter((col) =>\r\n col.field !== 'Value' && col.field !== 'Category')\r\n };\r\n\r\n this.chartData.chartMetadata.visuals.push(series);\r\n }\r\n }\r\n this.chartData.chartMetadata.singleVisual = this.widgetVisuals && this.widgetVisuals.length ? this.widgetVisuals[0] : null;\r\n this.chartData.chartMetadata.widgetVisualType =\r\n this.chartData.chartMetadata.singleVisual.widgetVisual === 'donutmulti'\r\n ? 'donut' as SeriesType\r\n : this.chartData.chartMetadata.singleVisual.widgetVisual as SeriesType;\r\n this.chartData.chartMetadata.chartTypeFamily =\r\n SeriesIngestService.getChartTypeFamily(this.chartData.chartMetadata.widgetVisualType);\r\n }\r\n\r\n private initExtraMetadata() {\r\n if (this.chartData && this.chartData.categories) {\r\n // For multi axis charts set the second axis on the right side\r\n if (this.widgetVisuals.length > 1) {\r\n this.chartData.chartMetadata.isMultiVisual = true;\r\n this.chartData.chartMetadata.crossingValues = [0, this.chartData.categories.length + 1];\r\n } else {\r\n this.chartData.chartMetadata.isMultiVisual = false;\r\n }\r\n\r\n this.chartData.chartMetadata.hasLegend =\r\n !this.chartData.chartMetadata.isMultiVisual &&\r\n (this.chartData.allSeries[0][0] && this.chartData.allSeries[0][0].values[0].name !== null);\r\n\r\n // too many categories will make the width of the bars too wide\r\n this.chartData.chartMetadata.hasNegativeValues = this.chartData.allSeries[0][0].values.some((item) => item.value < 0);\r\n\r\n if (this.chartData.chartMetadata.hasNegativeValues) {\r\n this.updateMetadataValueAxis();\r\n this.getMinMaxInData(this.chartData.allSeries[0][0].values);\r\n this.updatePlotBands();\r\n }\r\n\r\n if (this.chartData.chartMetadata.seriesGap < 10) {\r\n this.chartData.chartMetadata.seriesGap += 15;\r\n }\r\n\r\n this.chartData.chartMetadata.category.baseUnit = this.getCategoryBaseUnit();\r\n }\r\n this.chartData.chartMetadata.isDonutTemplate = this.widgetVisuals[0].widgetVisual === 'donut';\r\n if (this.chartData.chartMetadata.isDonutTemplate) {\r\n const name = this.chartData.allSeries[0].length > 0 ? this.chartData.allSeries[0][0].name : '';\r\n const percent = this.chartData.allSeries[0].length > 0 ? this.chartData.allSeries[0][0].percent : null;\r\n this.chartData.chartMetadata.centerTemplateSubtitle = name;\r\n this.chartData.chartMetadata.centerTemplateHeader = percent;\r\n }\r\n }\r\n\r\n private defaultMetadata() {\r\n this.chartData.chartMetadata = {\r\n category: {\r\n title: {\r\n visible: false\r\n },\r\n format: null,\r\n hasExplicitBaseUnit: false\r\n },\r\n visuals: [\r\n {\r\n name: null,\r\n title: {\r\n visible: false,\r\n },\r\n format: 'n0',\r\n hasDataLabels: false,\r\n labels: {\r\n position: 'start',\r\n step: this.yAxisStep,\r\n content: (e: any) => formatDataValue(this.intl, e.value, 'n0')\r\n },\r\n additionalData: [],\r\n seriesType: 'line',\r\n dashType: VisualMetadataDashType.Solid,\r\n lineStyle: VisualMetadataLineStyle.Smooth,\r\n isStacked: false,\r\n }\r\n ]\r\n };\r\n }\r\n\r\n private getTooltipValueTitle(visualIndex = 0, title: string = null, point: any = null): string {\r\n if (title) {\r\n return title;\r\n }\r\n if (point && point.dataItem && point.dataItem.tooltip && point.dataItem.tooltip.valueTitle) {\r\n return point.dataItem.tooltip.valueTitle;\r\n }\r\n const visualMetadata = this.chartData.chartMetadata.visuals[visualIndex];\r\n return visualMetadata && visualMetadata.title ? visualMetadata.title.text : '';\r\n }\r\n\r\n private getTooltipValueText(value, visualIndex = 0, point: any = null): string {\r\n if (point && point.dataItem && point.dataItem.tooltip && point.dataItem.tooltip.formattedValue) {\r\n return point.dataItem.tooltip.formattedValue;\r\n }\r\n if (this.chartData.chartMetadata === undefined || this.chartData.chartMetadata.visuals === undefined\r\n || this.chartData.chartMetadata.visuals[visualIndex] === undefined) {\r\n return '';\r\n }\r\n return formatDataValue(this.intl, value, this.chartData.chartMetadata.visuals[visualIndex].format);\r\n }\r\n\r\n private getTooltipAdditionalDataValue(data: any, visualIndex = 0): string {\r\n if (isNaN(data.value) || data.value === '') {\r\n return data.value;\r\n }\r\n const visualMetadata = this.chartData.chartMetadata.visuals[visualIndex];\r\n let dataFormat = 'n0';\r\n\r\n if (visualMetadata && visualMetadata.additionalData) {\r\n const meta = visualMetadata.additionalData.find(row => row.field === data.key);\r\n\r\n if (meta) {\r\n dataFormat = meta.format || dataFormat;\r\n }\r\n }\r\n\r\n return formatDataValue(this.intl, data.value, dataFormat, false);\r\n }\r\n\r\n private getTooltipAdditionalDataTitle(key: string, visualIndex = 0): string {\r\n const visualMetadata = this.chartData.chartMetadata.visuals[visualIndex];\r\n let dataTitle: string = key;\r\n\r\n if (!visualMetadata || !visualMetadata.additionalData) {\r\n return dataTitle;\r\n }\r\n\r\n const meta = visualMetadata.additionalData.find(row => row.field === key);\r\n\r\n if (meta) {\r\n dataTitle = meta.title || dataTitle;\r\n }\r\n\r\n return dataTitle;\r\n }\r\n\r\n private getSeriesByCategories(\r\n categories: (number | Date | string)[], allSeries: SeriesData[]): CategoryData[] {\r\n return categories\r\n ? categories.map((category, index) => {\r\n return {\r\n name: category,\r\n series: allSeries.map((seriesData) => {\r\n // noinspection NestedConditionalExpressionJS\r\n return {\r\n additionalData: seriesData.values[index].additionalData\r\n ? seriesData.values[index].additionalData\r\n .map((additionalDataRow) => {\r\n return {\r\n key: additionalDataRow.key,\r\n value: formatValue(additionalDataRow.value)\r\n };\r\n })\r\n : null,\r\n name: seriesData.name,\r\n values: [seriesData.values[index]],\r\n aggregationFunction: null,\r\n dashType: null,\r\n format: null,\r\n hasDataLabels: false,\r\n seriesType: null\r\n };\r\n }),\r\n };\r\n })\r\n : [{\r\n name: null,\r\n series: allSeries\r\n }];\r\n }\r\n\r\n private updateMetadataValueAxis() {\r\n this.chartData.chartMetadata.visuals.forEach((visual) =>\r\n visual.labels.step = this.chartData.chartMetadata.hasNegativeValues ? 2 : this.yAxisStep);\r\n }\r\n\r\n private getMinMaxInData(arr: any[]): void {\r\n this.chartData.chartMetadata.maxValue = arr.reduce((prev, curr) => prev.value > curr.value ? prev : curr).value;\r\n this.chartData.chartMetadata.minValue = arr.reduce((prev, curr) => prev.value < curr.value ? prev : curr).value;\r\n }\r\n\r\n private updatePlotBands() {\r\n this.chartData.chartMetadata.valuePlotBands = [{\r\n from: this.chartData.chartMetadata.minValue,\r\n to: 0,\r\n color: '#ff0000',\r\n opacity: 0.1\r\n }];\r\n }\r\n\r\n private getCategoryBaseUnit(): CategoryBaseUnit {\r\n let categoryBaseUnit: CategoryBaseUnit = null;\r\n\r\n const category = this.chartData.chartMetadata.category;\r\n if (!category || category.hasExplicitBaseUnit || !this.chartData.chartMetadata.category.aggregationFunction) {\r\n return category ? category.baseUnit : null;\r\n }\r\n const categories: any = this.chartData ? this.chartData.categories : null;\r\n\r\n if (categories) {\r\n if (!isNaN(Date.parse(categories[0]))\r\n && typeof categories[0].getTime === 'function') {\r\n const dates: Date[] = categories;\r\n const totalDays: number = (dates[dates.length - 1].getTime() - dates[0].getTime()) / (1000 * 60 * 60 * 24); // Days\r\n\r\n if (totalDays < 1) {\r\n categoryBaseUnit = 'hours';\r\n } else if (totalDays < 365) {\r\n categoryBaseUnit = 'days';\r\n } else {\r\n categoryBaseUnit = 'years';\r\n }\r\n }\r\n }\r\n\r\n return categoryBaseUnit;\r\n }\r\n\r\n private resetProperties() {\r\n this.widgetVisuals = [];\r\n this.isMultiSeries = false;\r\n this.yAxisStep = 3;\r\n this.hasFrameColor = '#a4b0ca';\r\n this.chartData = {};\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ColumnSettingNavigationType, ColumnSettingType, ReportWidget, TableData} from '../web-api-client';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {getDateWithoutTimezoneDifference} from '../../utils/utilities';\r\nimport WidgetVisualMetadata = GmxBiWorks.DataPoints.WidgetVisualMetadata;\r\nimport TableExternalLink = GmxBiWorks.DataPoints.TableExternalLink;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TableIngestService {\r\n private tableData: GmxBiWorks.DataPoints.TableData = {};\r\n private widgetVisuals: WidgetVisualMetadata[];\r\n\r\n constructor() {\r\n }\r\n\r\n private static createExternalLinkObject(rowElement: any): TableExternalLink[] {\r\n if (!rowElement) {\r\n return [];\r\n }\r\n rowElement = rowElement.substring(0, rowElement.length - 1).substring(1);\r\n rowElement = rowElement.replace(/\\)\\[/g, '\\n').replace(/]\\(/g, '\\n');\r\n rowElement = rowElement.split('\\n');\r\n const links: TableExternalLink[] = [];\r\n for (let i = 0; i < rowElement.length; i += 2) {\r\n links.push({\r\n displayText: i === rowElement.length - 2\r\n ? rowElement[i]\r\n : rowElement[i] + ', ',\r\n href: rowElement[i + 1]\r\n });\r\n }\r\n return links;\r\n }\r\n\r\n public normalizeTableData(tableData: TableData, reportWidget: ReportWidget): Promise {\r\n return new Promise(async (resolve) => {\r\n const promise = new Promise((res) => {\r\n setTimeout(() => {\r\n this.resetProperties();\r\n this.initMetadata(reportWidget);\r\n this.tableData.tableMetadata.singleVisual.columns.forEach((column) => {\r\n if (column.type === ColumnSettingType.Date) {\r\n tableData.dataRows.forEach(row => {\r\n row[column.field] = row[column.field]\r\n ? getDateWithoutTimezoneDifference(new Date(row[column.field]))\r\n : '';\r\n });\r\n }\r\n if (column.navigationType === ColumnSettingNavigationType.External) {\r\n tableData.dataRows.forEach(row => {\r\n row[column.field] = TableIngestService.createExternalLinkObject(row[column.field]);\r\n });\r\n }\r\n });\r\n this.tableData.dataRows = tableData.dataRows;\r\n this.tableData.tableLength = tableData.dataRows.length;\r\n res(this.tableData);\r\n });\r\n });\r\n await promise.then((data) => resolve(data));\r\n });\r\n }\r\n\r\n private initMetadata(reportWidget: ReportWidget): void {\r\n this.widgetVisuals = reportWidget.visuals.map(visual => {\r\n return {\r\n aggregationFunction: visual.aggregationFunction,\r\n dashType: visual.dashType,\r\n lineStyle: visual.lineStyle,\r\n columns: visual.columns,\r\n widgetVisual: visual.visualType.toString().toLowerCase(),\r\n isStacked: visual.isStacked,\r\n hasDataLabels: visual.hasDataLabels\r\n } as WidgetVisualMetadata;\r\n }\r\n );\r\n this.tableData.tableMetadata.singleVisual = this.widgetVisuals && this.widgetVisuals.length ? this.widgetVisuals[0] : null;\r\n }\r\n\r\n private resetProperties() {\r\n this.widgetVisuals = [];\r\n this.tableData = {};\r\n this.tableData.tableMetadata = {};\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {IMessageTemplate, ReportWidget} from '../web-api-client';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {deepClone} from '../../utils/utilities';\r\nimport WidgetVisualMetadata = GmxBiWorks.DataPoints.WidgetVisualMetadata;\r\nimport TextData = GmxBiWorks.DataPoints.TextData;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TextIngestService {\r\n private textData: TextData;\r\n private widgetVisuals: WidgetVisualMetadata[];\r\n\r\n constructor() {\r\n }\r\n\r\n public normalizeTextData(data: any, reportWidget: ReportWidget): TextData {\r\n this.resetProperties();\r\n this.initMetadata(reportWidget);\r\n if (data) {\r\n const messagesTemplate: { [key: string]: IMessageTemplate; } =\r\n deepClone(this.textData.textMetadata.singleVisual.columns[0].messagesTemplate);\r\n this.textData.dynamicMessage = data.dataRows.map((row) => {\r\n const message: IMessageTemplate = messagesTemplate[row.MessageCode];\r\n const matches: any = message.message.match(/\\({.*?}\\)/g);\r\n if (matches) {\r\n matches.forEach(match => {\r\n const clearedMatch = match.replace(/[({})]/g, '');\r\n const value = row[clearedMatch];\r\n message.message = message.message.replace(match, value);\r\n });\r\n }\r\n return message;\r\n });\r\n } else {\r\n this.textData.staticMessage = this.textData.textMetadata.singleVisual.columns[0].messagesTemplate.StaticMessage;\r\n }\r\n return this.textData;\r\n }\r\n\r\n private initMetadata(reportWidget: ReportWidget): void {\r\n this.widgetVisuals = reportWidget.visuals.map(visual => {\r\n return {\r\n aggregationFunction: visual.aggregationFunction,\r\n dashType: visual.dashType,\r\n lineStyle: visual.lineStyle,\r\n columns: visual.columns,\r\n widgetVisual: visual.visualType.toString().toLowerCase(),\r\n isStacked: visual.isStacked,\r\n hasDataLabels: visual.hasDataLabels\r\n } as WidgetVisualMetadata;\r\n }\r\n );\r\n this.textData.textMetadata.singleVisual = this.widgetVisuals && this.widgetVisuals.length ? this.widgetVisuals[0] : null;\r\n }\r\n\r\n private resetProperties() {\r\n this.widgetVisuals = [];\r\n this.textData = {};\r\n this.textData.textMetadata = {};\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Subject} from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpCancelService {\r\n\r\n private pendingHTTPRequests$ = new Subject();\r\n\r\n constructor() {\r\n }\r\n\r\n // Cancel Pending HTTP calls\r\n public cancelPendingRequests() {\r\n this.pendingHTTPRequests$.next();\r\n }\r\n\r\n public onCancelPendingRequests() {\r\n return this.pendingHTTPRequests$.asObservable();\r\n }\r\n}\r\n","// Angular\r\nimport {BehaviorSubject} from 'rxjs';\r\n// Gmx Configs\r\nimport {Injectable} from '@angular/core';\r\nimport {GmxBiWorks} from '../../typings';\r\nimport NotificationModel = GmxBiWorks.Notification.NotificationModel;\r\nimport WindowSize = GmxBiWorks.Window.WindowSize;\r\n\r\n@Injectable()\r\nexport class ListenersService {\r\n // Listens to dummy data created by demo-data.service\r\n notifications = new BehaviorSubject(null);\r\n unseenNotifications = new BehaviorSubject(0);\r\n\r\n // Main content size listeners\r\n mainContentSize = new BehaviorSubject({\r\n elementHeight: 0,\r\n elementWidth: 0,\r\n parentHeight: 0\r\n });\r\n\r\n // Listens to Is Info Pane Pinned to fix width of main-content-header\r\n infoPanePinned = new BehaviorSubject(false);\r\n\r\n allDataRefresh = new BehaviorSubject(false);\r\n}\r\n","/* tslint:disable:no-string-literal */\r\nimport {Injectable} from '@angular/core';\r\nimport {environment} from '../../environments/environment';\r\nimport {AppInsights} from 'applicationinsights-js';\r\nimport {AppConfig} from '../app.config';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class MonitoringService {\r\n\r\n private config: Microsoft.ApplicationInsights.IConfig = {\r\n instrumentationKey: environment.appInsights.instrumentationKey,\r\n // enableDebug: true - causes errors on load.\r\n enableDebug: false,\r\n verboseLogging: true,\r\n enableCorsCorrelation: true\r\n };\r\n\r\n constructor() {\r\n if (!AppInsights.config) {\r\n AppInsights.downloadAndSetup(this.config);\r\n }\r\n }\r\n\r\n private static appInsightsEnabled() {\r\n return AppConfig.settings && AppConfig.settings.logging &&\r\n AppConfig.settings.logging.appInsights;\r\n }\r\n\r\n logPageView() {\r\n if (MonitoringService.appInsightsEnabled()) {\r\n AppInsights.trackPageView();\r\n }\r\n }\r\n\r\n startNavigationEvent(url: string) {\r\n if (MonitoringService.appInsightsEnabled()) {\r\n if (AppInsights.context) {\r\n AppInsights.context.operation.id =\r\n window['Microsoft'].ApplicationInsights.Util.newId();\r\n AppInsights.context.operation.name = url;\r\n }\r\n AppInsights.startTrackEvent(url);\r\n }\r\n }\r\n\r\n endNavigationEvent(url: string) {\r\n if (MonitoringService.appInsightsEnabled()) {\r\n AppInsights.stopTrackEvent(url, {type: 'PAGE LOAD TIME'});\r\n }\r\n }\r\n\r\n trackException(exception: Error,\r\n handledAt?: string,\r\n properties?: { [name: string]: string },\r\n measurements?: { [name: string]: number }) {\r\n if (MonitoringService.appInsightsEnabled()) {\r\n AppInsights.trackException(exception, handledAt, properties, measurements, AI.SeverityLevel.Error);\r\n }\r\n }\r\n}\r\n","// Angular Imports\r\nimport {Injectable} from '@angular/core';\r\n// Gmx Services\r\nimport {ListenersService} from './listeners.service';\r\nimport {GmxBiWorks} from '../../typings';\r\nimport NotificationModel = GmxBiWorks.Notification.NotificationModel;\r\n\r\n@Injectable()\r\nexport class NotificationsService {\r\n //#region Properties\r\n\r\n public unreadNotifications = 0;\r\n private notifications: NotificationModel[] = [];\r\n\r\n //#endregion\r\n\r\n constructor(private listenersService: ListenersService) {\r\n this.getNotifications();\r\n }\r\n\r\n private static generateNotifications(): NotificationModel[] {\r\n const notifications: NotificationModel[] = [];\r\n for (let index = 0; index < NotificationsService.createRandomNumber(1, 15); index++) {\r\n notifications.push(NotificationsService.generateSingleNotification());\r\n }\r\n return notifications;\r\n }\r\n\r\n private static generateSingleNotification(): NotificationModel {\r\n return {\r\n category: 'x',\r\n date: new Date(),\r\n isRead: false,\r\n message: 'notification body example xxxx-xxxxx -xxxxx-xxxxx',\r\n severity: NotificationsService.createRandomNumber(1, 5),\r\n title: 'Notification Title'\r\n };\r\n }\r\n\r\n private static createRandomNumber(min: number, max: number): number {\r\n min = Math.ceil(min);\r\n max = Math.floor(max);\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n\r\n public resetNotifications() {\r\n this.notifications.forEach((notification: NotificationModel) => {\r\n if (notification.isRead) {\r\n return;\r\n } else {\r\n notification.isRead = true;\r\n }\r\n });\r\n this.sendUnreadNotifications(0, true);\r\n }\r\n\r\n private getNotifications = () => {\r\n const newNotifications = NotificationsService.generateNotifications();\r\n this.sendUnreadNotifications(newNotifications.length);\r\n this.sendNotifications(newNotifications);\r\n setTimeout(this.getNotifications, 60000);\r\n };\r\n\r\n private sendUnreadNotifications(data: number, reset: boolean = false) {\r\n this.unreadNotifications = reset ? 0 : this.unreadNotifications + data;\r\n this.listenersService.unseenNotifications.next(this.unreadNotifications);\r\n }\r\n\r\n private sendNotifications(newNotifications: NotificationModel[]) {\r\n this.notifications.unshift(...newNotifications);\r\n this.listenersService.notifications.next(this.notifications);\r\n }\r\n}\r\n","// Paging service for the notifications view\r\nexport class PagerService {\r\n getPager(totalItems: number, currentPage: number = 1, pageSize: number = 10) {\r\n // calculate total pages\r\n const totalPages = Math.ceil(totalItems / pageSize);\r\n\r\n // ensure current page isn't out of range\r\n if (currentPage < 1) {\r\n currentPage = 1;\r\n } else if (currentPage > totalPages) {\r\n currentPage = totalPages;\r\n }\r\n\r\n let startPage: number;\r\n let endPage: number;\r\n\r\n if (totalPages <= 10) {\r\n // less than 10 total pages so show all\r\n startPage = 1;\r\n endPage = totalPages;\r\n } else {\r\n // more than 10 total pages so calculate start and end pages\r\n if (currentPage <= 6) {\r\n startPage = 1;\r\n endPage = 10;\r\n } else if (currentPage + 4 >= totalPages) {\r\n startPage = totalPages - 9;\r\n endPage = totalPages;\r\n } else {\r\n startPage = currentPage - 5;\r\n endPage = currentPage + 4;\r\n }\r\n }\r\n\r\n // calculate start and end item indexes\r\n const startIndex = (currentPage - 1) * pageSize;\r\n const endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);\r\n\r\n // create an array of pages to ng-repeat in the pager control\r\n const pages = Array.from(Array(endPage + 1 - startPage).keys()).map((i) => startPage + i);\r\n\r\n // return object with all pager properties required by the view\r\n return {\r\n totalItems,\r\n currentPage,\r\n pageSize,\r\n totalPages,\r\n startPage,\r\n endPage,\r\n startIndex,\r\n endIndex,\r\n pages\r\n };\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {ActivatedRoute, NavigationEnd, NavigationStart, Router} from '@angular/router';\r\nimport {NavigationClientService} from './client/navigation-client.service';\r\nimport {LayoutClientService} from './client/layout-client.service';\r\nimport {UserClientService} from './client/user-client.service';\r\nimport {Subject} from 'rxjs';\r\nimport {\r\n areObjectsEqual,\r\n createUrlParams,\r\n deepClone,\r\n destroySubject,\r\n formatNumberOrString,\r\n getCurrentDateAndTime,\r\n replaceUrl\r\n} from '../utils/utilities';\r\nimport {filter, takeUntil} from 'rxjs/operators';\r\nimport {MonitoringService} from './monitoring-service';\r\nimport {Location} from '@angular/common';\r\nimport {GmxBiWorks} from '../../typings';\r\nimport {RequestQueryParameter, User} from './web-api-client';\r\nimport {ControlsClientService} from './client/controls-client.service';\r\nimport {Intercom} from 'ng-intercom';\r\nimport UrlQueryParams = GmxBiWorks.Routing.UrlQueryParams;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RoutingService implements OnDestroy {\r\n public reportId: number;\r\n private user$ = new Subject();\r\n private browserRefresh: boolean;\r\n private urlParams: string;\r\n\r\n constructor(\r\n private router: Router,\r\n private navigationClientService: NavigationClientService,\r\n private controlsClientService: ControlsClientService,\r\n private route: ActivatedRoute,\r\n private layoutClientService: LayoutClientService,\r\n private userClientService: UserClientService,\r\n private monitoringService: MonitoringService,\r\n private location: Location,\r\n public intercom: Intercom\r\n ) {\r\n router.events\r\n .pipe(\r\n filter((event) => event instanceof NavigationEnd || event instanceof NavigationStart)\r\n )\r\n .subscribe((event: any) => {\r\n if (event instanceof NavigationStart) {\r\n // possibly detects refresh\r\n monitoringService.startNavigationEvent(event.url);\r\n this.browserRefresh = !router.navigated;\r\n if (this.browserRefresh) {\r\n console.log('Browser Was Refreshed At:');\r\n console.log(getCurrentDateAndTime());\r\n }\r\n }\r\n // NavigationEnd - Represents an event triggered when a navigation ends successfully\r\n if (event instanceof NavigationEnd) {\r\n monitoringService.endNavigationEvent(event.url);\r\n monitoringService.logPageView();\r\n\r\n userClientService.getUser()\r\n .pipe(takeUntil(this.user$))\r\n .subscribe((user) => {\r\n if (user.isUnassignedUser) {\r\n return;\r\n }\r\n\r\n this.initIntercom(user);\r\n\r\n this.routingOccurred = true;\r\n const url =\r\n (event.url === '/'\r\n ? event.urlAfterRedirects\r\n : event.url)\r\n // Removing the '/' in the start of the url\r\n .substring(1);\r\n const urlArray = url.split('?');\r\n this.currentUrl = urlArray[0];\r\n this.urlParams = urlArray[1];\r\n const reportIdSub = this.currentUrl.split('-');\r\n this.reportId = +reportIdSub[reportIdSub.length - 1];\r\n\r\n this.handleUrlParams();\r\n\r\n this.navigationClientService\r\n .checkNavDataExists()\r\n .pipe(takeUntil(this.user$))\r\n .subscribe((navDataExists) => {\r\n if (navDataExists) {\r\n if (this.currentUrl === '') {\r\n const defaultRoute = this.navigationClientService.getDefaultRoute();\r\n this.navigateTo(defaultRoute);\r\n } else {\r\n this.navigationClientService.setSelectedNavigationItem(this.currentUrl);\r\n this.layoutClientService.getLayoutMetaData();\r\n }\r\n }\r\n }, (error) => {\r\n alert('Major error happened - Services offline - TODO: Show an error page');\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n get currentUrl(): string {\r\n return this.controlsClientService.currentUrl;\r\n }\r\n\r\n set currentUrl(value: string) {\r\n this.controlsClientService.currentUrl = value;\r\n }\r\n\r\n private _routingOccurred: boolean;\r\n\r\n set routingOccurred(value: boolean) {\r\n this._routingOccurred = value;\r\n }\r\n\r\n get currentControlState(): RequestQueryParameter[] {\r\n return this.controlsClientService.currentControlState;\r\n }\r\n\r\n get originalControlState(): RequestQueryParameter[] {\r\n return this.controlsClientService.originalControlState;\r\n }\r\n\r\n get originalDateFormattedControlState(): RequestQueryParameter[] {\r\n return this.controlsClientService.originalDateFormattedControlState;\r\n }\r\n\r\n public navigateTo(route: string) {\r\n this.controlsClientService.navigatedFromReport = this.reportId;\r\n this.router.navigateByUrl(route).then();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.user$);\r\n }\r\n\r\n public checkParamsToUrl(placeholderIndex?: number) {\r\n const newUrl = this.getNewUrl(placeholderIndex);\r\n replaceUrl(newUrl, this.currentUrl, this.location);\r\n\r\n this.buildUrlParams(this.location.path().split('?')[1], this.reportId);\r\n }\r\n\r\n private buildUrlParams(paramsString: string, reportId: number) {\r\n if (paramsString) {\r\n try {\r\n paramsString = decodeURIComponent(paramsString);\r\n const paramArr = paramsString.split('&');\r\n\r\n const urlQueryParams: UrlQueryParams[] = paramArr.map((param) => {\r\n return {\r\n controlTemplateId: +param.split('=')[0],\r\n values: this.formatRoutingValues(param.split('=')[1].split('|'))\r\n };\r\n });\r\n const currentReportParams = this.controlsClientService.allReportsUrlParams.find((params) =>\r\n params.reportId === reportId);\r\n\r\n if (currentReportParams) {\r\n currentReportParams.urlQueryParams = deepClone(urlQueryParams);\r\n } else {\r\n this.controlsClientService.allReportsUrlParams.push({\r\n reportId,\r\n urlQueryParams\r\n });\r\n }\r\n } catch (e) { // catches a malformed URI\r\n console.error(e);\r\n }\r\n } else {\r\n const currentReportParamsIndex = this.controlsClientService.allReportsUrlParams.findIndex((params) =>\r\n params.reportId === reportId);\r\n this.controlsClientService.allReportsUrlParams.splice(currentReportParamsIndex, 1);\r\n }\r\n }\r\n\r\n private getDefaultValues(): number[] {\r\n const stateArray =\r\n this.originalDateFormattedControlState\r\n ? deepClone(this.originalDateFormattedControlState)\r\n : deepClone(this.originalControlState);\r\n\r\n return stateArray\r\n .map((originalState) => {\r\n if (originalState.values) {\r\n const state = this.currentControlState\r\n .find((currentState) =>\r\n currentState.controlTemplateId === originalState.controlTemplateId\r\n );\r\n if (areObjectsEqual(originalState.values, state.values)) {\r\n return originalState.controlTemplateId;\r\n }\r\n }\r\n })\r\n .filter((el) => el !== undefined);\r\n }\r\n\r\n private getNewUrl(placeholderIndex?: number): string {\r\n return this.currentControlState\r\n .map((control) => {\r\n if (control.values) {\r\n const urlParam = `&${control.controlTemplateId}=${control.values}`;\r\n const currentControl = this.controlsClientService.controls.find((_control) =>\r\n _control.controlTemplateId === control.controlTemplateId);\r\n if (currentControl.hidden) {\r\n return;\r\n }\r\n if (control.placeholderKeyOverride) {\r\n placeholderIndex = Object.keys(currentControl.placeholdersList).indexOf(control.placeholderKeyOverride);\r\n }\r\n return control.placeholderKeyOverride\r\n ? `${urlParam}|placeholderIndex:${placeholderIndex}`\r\n : urlParam;\r\n }\r\n })\r\n // Remove undefined from the array\r\n .filter((el) => el !== undefined)\r\n // Replace all ',' with '|'\r\n .map((el) => el.replace(/,/g, '|'))\r\n // Transform the array to a string\r\n .join('')\r\n // Remove '&' in the beginning\r\n .substring(1);\r\n }\r\n\r\n private formatRoutingValues(values: any[]) {\r\n return values.map((value) => formatNumberOrString(value));\r\n }\r\n\r\n private handleUrlParams() {\r\n // Check if report already had controls applied to it\r\n this.cleanAllReportsUrlParams();\r\n this.updateUrlParams();\r\n\r\n if (this.controlsClientService.urlParams) {\r\n replaceUrl(createUrlParams(this.controlsClientService.urlParams.urlQueryParams), this.currentUrl, this.location);\r\n return;\r\n }\r\n\r\n // Check if route only had url params\r\n if (this.urlParams) {\r\n this.buildUrlParams(this.urlParams, this.reportId);\r\n replaceUrl(decodeURIComponent(this.urlParams), this.currentUrl, this.location);\r\n }\r\n this.updateUrlParams();\r\n }\r\n\r\n private updateUrlParams() {\r\n this.controlsClientService.urlParams =\r\n this.controlsClientService.allReportsUrlParams.find((report) =>\r\n report.reportId === this.reportId);\r\n }\r\n\r\n private cleanAllReportsUrlParams() {\r\n this.controlsClientService.allReportsUrlParams =\r\n this.controlsClientService.allReportsUrlParams\r\n .filter((urlParams) => urlParams.urlQueryParams.length > 0);\r\n }\r\n\r\n private initIntercom(user: User) {\r\n const host = window.location.hostname;\r\n const isProdHost = host === 'app.bi.works';\r\n\r\n if (isProdHost && user) {\r\n setTimeout(() => {\r\n this.intercom.boot({\r\n app_id: 'xdjguro4',\r\n // Supports all optional configuration.\r\n widget: {\r\n activator: '#intercom'\r\n },\r\n email: user.username,\r\n name: user.name\r\n });\r\n }, 0);\r\n }\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, of} from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ThemesService {\r\n private theme = 'theme-light';\r\n\r\n constructor() {\r\n }\r\n\r\n public setDarkTheme() {\r\n this.theme = 'theme-dark';\r\n }\r\n\r\n public setLightTheme() {\r\n this.theme = 'theme-light';\r\n }\r\n\r\n public getThemeObservable(): Observable {\r\n return of(this.theme);\r\n }\r\n}\r\n","import {ApplicationRef, Injectable, OnDestroy} from '@angular/core';\r\nimport {SwUpdate} from '@angular/service-worker';\r\nimport {concat, interval, Subject} from 'rxjs';\r\nimport {first, takeUntil} from 'rxjs/operators';\r\nimport {ModalComponent} from '../components/modal/modal.component';\r\nimport {MDBModalRef, MDBModalService} from 'ng-uikit-pro-standard';\r\nimport {destroySubject} from '../utils/utilities';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UpdateService implements OnDestroy {\r\n private modalRef: MDBModalRef;\r\n private onDestroy$: Subject = new Subject();\r\n\r\n constructor(appRef: ApplicationRef, updates: SwUpdate, private modal: ModalComponent, private modalService: MDBModalService) {\r\n // Allow the app to stabilize first, before starting polling for updates with `interval()`.\r\n const appIsStable$ = appRef.isStable.pipe(first(isStable => isStable === true));\r\n const everySixHours$ = interval(6 * 60 * 60 * 1000);\r\n const everySixHoursOnceAppIsStable$ = concat(appIsStable$, everySixHours$);\r\n\r\n updates.available.subscribe((event) => {\r\n console.log('updating to new version', event);\r\n updates.activateUpdate().then(() =>\r\n this.openModal(\r\n 'There is a new version of BI.Works',\r\n {\r\n heading: 'Don\\'t worry, be happy ;)',\r\n description: `Click Refresh to reload the app`\r\n },\r\n 'Refresh'));\r\n });\r\n\r\n if (updates.isEnabled) {\r\n everySixHoursOnceAppIsStable$.subscribe(() => updates.checkForUpdate());\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.onDestroy$);\r\n }\r\n\r\n private openModal(headingText: string,\r\n content: {\r\n heading: string,\r\n description: string\r\n },\r\n closeModalText: string) {\r\n this.modalRef = this.modalService.show(ModalComponent, {\r\n backdrop: true,\r\n keyboard: false,\r\n focus: true,\r\n show: false,\r\n ignoreBackdropClick: true,\r\n class: '',\r\n containerClass: '',\r\n animated: true,\r\n data: {\r\n heading: headingText,\r\n content: {\r\n heading: content.heading,\r\n description: content.description\r\n },\r\n closeModal: closeModalText\r\n }\r\n });\r\n\r\n this.modalRef.content.action\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((result: any) => {\r\n switch (result) {\r\n case 'Refresh':\r\n document.location.reload();\r\n break;\r\n }\r\n });\r\n }\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\n//----------------------\r\n// \r\n// Generated using the NSwag toolchain v13.5.0.0 (NJsonSchema v10.1.15.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\r\n// \r\n//----------------------\r\n// ReSharper disable InconsistentNaming\r\n\r\nimport {catchError as _observableCatch, mergeMap as _observableMergeMap} from 'rxjs/operators';\r\nimport {Observable, of as _observableOf, throwError as _observableThrow} from 'rxjs';\r\nimport {Inject, Injectable, InjectionToken, Optional} from '@angular/core';\r\nimport {HttpClient, HttpHeaders, HttpResponse, HttpResponseBase} from '@angular/common/http';\r\n\r\nexport const API_BASE_URL = new InjectionToken('API_BASE_URL');\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WebApiClient {\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n private http: HttpClient;\r\n private baseUrl: string;\r\n\r\n constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\r\n this.http = http;\r\n this.baseUrl = baseUrl ? baseUrl : 'http://localhost:5000';\r\n }\r\n\r\n /**\r\n * Retrieve filter/control.\r\n * @param reportId The report ID\r\n * @param controlTemplateId The control Template ID\r\n * @param parameters (optional) Other filters affecting this one\r\n * @param filteredText (optional) Filter for contained text. Both key and value will be evaluated\r\n * @return Success\r\n */\r\n getDynamicData(reportId: number, controlTemplateId: number, parameters: RequestQueryParameter[] | null | undefined, filteredText: string | null | undefined): Observable {\r\n let url_ = this.baseUrl + '/api/Control/DynamicData/Report/{reportId}/Control/{controlTemplateId}?';\r\n if (reportId === undefined || reportId === null) {\r\n throw new Error('The parameter \\'reportId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{reportId}', encodeURIComponent('' + reportId));\r\n if (controlTemplateId === undefined || controlTemplateId === null) {\r\n throw new Error('The parameter \\'controlTemplateId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{controlTemplateId}', encodeURIComponent('' + controlTemplateId));\r\n if (filteredText !== undefined && filteredText !== null) {\r\n url_ += 'filteredText=' + encodeURIComponent('' + filteredText) + '&';\r\n }\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n const content_ = JSON.stringify(parameters);\r\n\r\n let options_: any = {\r\n body: content_,\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n\r\n return this.http.request('post', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processGetDynamicData(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetDynamicData( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Returns filters for report\r\n * @param reportId The report Id\r\n * @return Success\r\n */\r\n getReportControls(reportId: number): Observable {\r\n let url_ = this.baseUrl + '/api/Control/ReportControls/{reportId}';\r\n if (reportId === undefined || reportId === null) {\r\n throw new Error('The parameter \\'reportId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{reportId}', encodeURIComponent('' + reportId));\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n let options_: any = {\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n\r\n return this.http.request('get', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processGetReportControls(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetReportControls( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Check if the site is up\r\n * @return Success\r\n */\r\n basic(): Observable {\r\n let url_ = this.baseUrl + '/api/HealthCheck/Basic';\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n let options_: any = {\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({})\r\n };\r\n\r\n return this.http.request('get', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processBasic(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processBasic( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * NOT IMPLEMENTED\r\n Check if the site is up and all the essential external resources are available\r\n * @return Success\r\n */\r\n comprehensive(): Observable {\r\n let url_ = this.baseUrl + '/api/HealthCheck/Comprehensive';\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n let options_: any = {\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({})\r\n };\r\n\r\n return this.http.request('get', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processComprehensive(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processComprehensive( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Write Log\r\n * @param level (optional) Log Level\r\n * @param messageTemplate (optional) Serilog Template. i.e \"Affiliate ID: {affId}\"\r\n * @param properties (optional) Properties to be logged. Used in template by key, not limited to\r\n * @return Success\r\n */\r\n write(level: Level | null | undefined, messageTemplate: string | null | undefined, properties: { [key: string]: any; } | null | undefined): Observable {\r\n let url_ = this.baseUrl + '/api/Logger/Write?';\r\n if (level !== undefined && level !== null) {\r\n url_ += 'level=' + encodeURIComponent('' + level) + '&';\r\n }\r\n if (messageTemplate !== undefined && messageTemplate !== null) {\r\n url_ += 'messageTemplate=' + encodeURIComponent('' + messageTemplate) + '&';\r\n }\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n const content_ = JSON.stringify(properties);\r\n\r\n let options_: any = {\r\n body: content_,\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n };\r\n\r\n return this.http.request('put', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processWrite(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processWrite( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Retrieve Navigation Tree.\r\n * @return Success\r\n */\r\n getNavigationTree(): Observable {\r\n let url_ = this.baseUrl + '/api/Navigation/GetNavigationTree';\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n let options_: any = {\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n\r\n return this.http.request('get', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processGetNavigationTree(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetNavigationTree( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Get notifications for a user.\r\n * @param userId The user Id\r\n * @param fromDate The notifications start date\r\n * @return Success\r\n */\r\n getAllNotifications(userId: string, fromDate: Date): Observable {\r\n let url_ = this.baseUrl + '/api/Notifications/{userId}/{fromDate}';\r\n if (userId === undefined || userId === null) {\r\n throw new Error('The parameter \\'userId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{userId}', encodeURIComponent('' + userId));\r\n if (fromDate === undefined || fromDate === null) {\r\n throw new Error('The parameter \\'fromDate\\' must be defined.');\r\n }\r\n url_ = url_.replace('{fromDate}', encodeURIComponent(fromDate ? '' + fromDate.toJSON() : 'null'));\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n let options_: any = {\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n\r\n return this.http.request('get', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processGetAllNotifications(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetAllNotifications( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Retrieve Report\r\n * @param reportId The report id\r\n * @return Success\r\n */\r\n getReport(reportId: number): Observable {\r\n let url_ = this.baseUrl + '/api/Report/GetMetadata/{reportId}';\r\n if (reportId === undefined || reportId === null) {\r\n throw new Error('The parameter \\'reportId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{reportId}', encodeURIComponent('' + reportId));\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n let options_: any = {\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n\r\n return this.http.request('get', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processGetReport(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetReport( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Retrieve details of authenticated user\r\n * @return Success\r\n */\r\n getUser(): Observable {\r\n let url_ = this.baseUrl + '/api/Users/GetUser';\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n let options_: any = {\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n\r\n return this.http.request('get', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processGetUser(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetUser( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Retrieve table as is from db.\r\n * @param widgetId The id of the widget\r\n * @param parameters (optional)\r\n * @return Success\r\n */\r\n getTableData(reportId: number, widgetId: number, parameters: RequestQueryParameter[] | null | undefined): Observable {\r\n let url_ = this.baseUrl + '/api/WidgetData/TableData/Report/{reportId}/Widget/{widgetId}';\r\n if (reportId === undefined || reportId === null) {\r\n throw new Error('The parameter \\'reportId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{reportId}', encodeURIComponent('' + reportId));\r\n if (widgetId === undefined || widgetId === null) {\r\n throw new Error('The parameter \\'widgetId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{widgetId}', encodeURIComponent('' + widgetId));\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n const content_ = JSON.stringify(parameters);\r\n\r\n let options_: any = {\r\n body: content_,\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n\r\n return this.http.request('post', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processGetTableData(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetTableData( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Retrieve the widget data as ChartData.\r\n * @param widgetId The id of the widget\r\n * @param requestQueryParameters (optional) Parameters to use for filtering queries\r\n * @return Success\r\n */\r\n getChartData(reportId: number, widgetId: number, requestQueryParameters: RequestQueryParameter[] | null | undefined): Observable<{ [key: string]: ChartData; }> {\r\n let url_ = this.baseUrl + '/api/WidgetData/ChartData/Report/{reportId}/Widget/{widgetId}';\r\n if (reportId === undefined || reportId === null) {\r\n throw new Error('The parameter \\'reportId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{reportId}', encodeURIComponent('' + reportId));\r\n if (widgetId === undefined || widgetId === null) {\r\n throw new Error('The parameter \\'widgetId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{widgetId}', encodeURIComponent('' + widgetId));\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n const content_ = JSON.stringify(requestQueryParameters);\r\n\r\n let options_: any = {\r\n body: content_,\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n\r\n return this.http.request('post', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processGetChartData(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetChartData( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Retrieve widget metadata\r\n * @param widgetId The id of the widget\r\n * @return Success\r\n */\r\n getWidgetMetadata(widgetId: number): Observable {\r\n let url_ = this.baseUrl + '/api/WidgetMetadata/GetWidget/{widgetId}';\r\n if (widgetId === undefined || widgetId === null) {\r\n throw new Error('The parameter \\'widgetId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{widgetId}', encodeURIComponent('' + widgetId));\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n let options_: any = {\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n\r\n return this.http.request('get', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processGetWidgetMetadata(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetWidgetMetadata( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Retrieve a slim version of all the widgets\r\n * @return Success\r\n */\r\n getAllWidgets(): Observable {\r\n let url_ = this.baseUrl + '/api/WidgetMetadata/GetAllWidgets';\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n let options_: any = {\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n\r\n return this.http.request('get', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processGetAllWidgets(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetAllWidgets( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Create new widget\r\n * @param widgetCreationData (optional) The data we use to create new widget\r\n * @return Success\r\n */\r\n createWidget(widgetCreationData: WidgetCreationData | null | undefined): Observable {\r\n let url_ = this.baseUrl + '/api/WidgetMetadata/CreateWidget';\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n const content_ = JSON.stringify(widgetCreationData);\r\n\r\n let options_: any = {\r\n body: content_,\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n };\r\n\r\n return this.http.request('post', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processCreateWidget(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processCreateWidget( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Update existing widget\r\n * @param widgetId The widget identifier we want to update\r\n * @param widgetCreationData (optional) The data we use to update widget\r\n * @return Success\r\n */\r\n updateWidget(widgetId: number, widgetCreationData: WidgetCreationData | null | undefined): Observable {\r\n let url_ = this.baseUrl + '/api/WidgetMetadata/updateWidget/{widgetId}';\r\n if (widgetId === undefined || widgetId === null) {\r\n throw new Error('The parameter \\'widgetId\\' must be defined.');\r\n }\r\n url_ = url_.replace('{widgetId}', encodeURIComponent('' + widgetId));\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n const content_ = JSON.stringify(widgetCreationData);\r\n\r\n let options_: any = {\r\n body: content_,\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n };\r\n\r\n return this.http.request('put', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processUpdateWidget(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processUpdateWidget( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Update reportWidgets\r\n * @param widgetId (optional)\r\n * @param reportId (optional)\r\n * @param reportWidgetCreationData (optional) The data we use to create new widget\r\n * @return Success\r\n */\r\n updateWidgetPositionsAndSize(widgetId: number | null | undefined, reportId: number | null | undefined, reportWidgetCreationData: ReportWidgetCreationData | null | undefined): Observable {\r\n let url_ = this.baseUrl + '/api/WidgetMetadata/UpdateWidgetPositionsAndSize?';\r\n if (widgetId !== undefined && widgetId !== null) {\r\n url_ += 'widgetId=' + encodeURIComponent('' + widgetId) + '&';\r\n }\r\n if (reportId !== undefined && reportId !== null) {\r\n url_ += 'reportId=' + encodeURIComponent('' + reportId) + '&';\r\n }\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n const content_ = JSON.stringify(reportWidgetCreationData);\r\n\r\n let options_: any = {\r\n body: content_,\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n };\r\n\r\n return this.http.request('put', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processUpdateWidgetPositionsAndSize(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processUpdateWidgetPositionsAndSize( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Connect existing widget to an existing report\r\n * @param widgetId (optional)\r\n * @param reportId (optional)\r\n * @param reportWidgetCreationData (optional) The data we use to create ReportWidget entity\r\n * @return Success\r\n */\r\n connectWidgetToReport(widgetId: number | null | undefined, reportId: number | null | undefined, reportWidgetCreationData: ReportWidgetCreationData | null | undefined): Observable {\r\n let url_ = this.baseUrl + '/api/WidgetMetadata/ConnectWidgetToReport?';\r\n if (widgetId !== undefined && widgetId !== null) {\r\n url_ += 'widgetId=' + encodeURIComponent('' + widgetId) + '&';\r\n }\r\n if (reportId !== undefined && reportId !== null) {\r\n url_ += 'reportId=' + encodeURIComponent('' + reportId) + '&';\r\n }\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n const content_ = JSON.stringify(reportWidgetCreationData);\r\n\r\n let options_: any = {\r\n body: content_,\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n };\r\n\r\n return this.http.request('put', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processConnectWidgetToReport(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processConnectWidgetToReport( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Disconnect existing widget from an existing report\r\n * @param widgetId (optional) The widget identifier\r\n * @param reportId (optional) The report identifier\r\n * @return Success\r\n */\r\n disconnectWidgetFromReport(widgetId: number | null | undefined, reportId: number | null | undefined): Observable {\r\n let url_ = this.baseUrl + '/api/WidgetMetadata/DisconnectWidgetFromReport?';\r\n if (widgetId !== undefined && widgetId !== null) {\r\n url_ += 'widgetId=' + encodeURIComponent('' + widgetId) + '&';\r\n }\r\n if (reportId !== undefined && reportId !== null) {\r\n url_ += 'reportId=' + encodeURIComponent('' + reportId) + '&';\r\n }\r\n url_ = url_.replace(/[?&]$/, '');\r\n\r\n let options_: any = {\r\n observe: 'response',\r\n responseType: 'blob',\r\n headers: new HttpHeaders({})\r\n };\r\n\r\n return this.http.request('put', url_, options_).pipe(_observableMergeMap((response_: any) => {\r\n return this.processDisconnectWidgetFromReport(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processDisconnectWidgetFromReport( response_);\r\n } catch (e) {\r\n return > _observableThrow(e);\r\n }\r\n } else {\r\n return > _observableThrow(response_);\r\n }\r\n }));\r\n }\r\n\r\n protected processGetDynamicData(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n let resultData200 = _responseText === '' ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200) {\r\n result200!.push(FilterValue.fromJS(item));\r\n }\r\n }\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processGetReportControls(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n let resultData200 = _responseText === '' ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200) {\r\n result200!.push(ReportControl.fromJS(item));\r\n }\r\n }\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processBasic(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf( null);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processComprehensive(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf( null);\r\n }));\r\n } else if (status === 501) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processWrite(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf( null);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processGetNavigationTree(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n let resultData200 = _responseText === '' ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200) {\r\n result200!.push(TreeNode.fromJS(item));\r\n }\r\n }\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processGetAllNotifications(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n let resultData200 = _responseText === '' ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200) {\r\n result200!.push(Notification.fromJS(item));\r\n }\r\n }\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processGetReport(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n let resultData200 = _responseText === '' ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n result200 = ReportResult.fromJS(resultData200);\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processGetUser(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n let resultData200 = _responseText === '' ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n result200 = User.fromJS(resultData200);\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processGetTableData(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n let resultData200 = _responseText === '' ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n result200 = TableData.fromJS(resultData200);\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Bad Request', status, _responseText, _headers);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processGetChartData(response: HttpResponseBase): Observable<{ [key: string]: ChartData; }> {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n let resultData200 = _responseText === '' ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n if (resultData200) {\r\n result200 = {} as any;\r\n for (let key in resultData200) {\r\n if (resultData200.hasOwnProperty(key)) {\r\n result200![key] = resultData200[key] ? ChartData.fromJS(resultData200[key]) : new ChartData();\r\n }\r\n }\r\n }\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Bad Request', status, _responseText, _headers);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf<{ [key: string]: ChartData; }>( null);\r\n }\r\n\r\n protected processGetWidgetMetadata(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n let resultData200 = _responseText === '' ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n result200 = WidgetMetadataResult.fromJS(resultData200);\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processGetAllWidgets(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n let resultData200 = _responseText === '' ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200) {\r\n result200!.push(SlimWidgetMetaData.fromJS(item));\r\n }\r\n }\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processCreateWidget(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf( null);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Bad Request', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processUpdateWidget(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf( null);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Bad Request', status, _responseText, _headers);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processUpdateWidgetPositionsAndSize(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf( null);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Bad Request', status, _responseText, _headers);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processConnectWidgetToReport(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf( null);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Bad Request', status, _responseText, _headers);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n\r\n protected processDisconnectWidgetFromReport(response: HttpResponseBase): Observable {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n ( response).error instanceof Blob ? ( response).error : undefined;\r\n\r\n let _headers: any = {};\r\n if (response.headers) {\r\n for (let key of response.headers.keys()) {\r\n _headers[key] = response.headers.get(key);\r\n }\r\n }\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf( null);\r\n }));\r\n } else if (status === 500) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Server Error', status, _responseText, _headers);\r\n }));\r\n } else if (status === 404) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Not Found', status, _responseText, _headers);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Unauthorized', status, _responseText, _headers);\r\n }));\r\n } else if (status === 403) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('Forbidden', status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException('An unexpected server error occurred.', status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf( null);\r\n }\r\n}\r\n\r\nexport class RequestQueryParameter implements IRequestQueryParameter {\r\n controlTemplateId?: number | undefined;\r\n comparisonOperator?: RequestQueryParameterComparisonOperator | undefined;\r\n values?: any[] | undefined;\r\n placeholderKeyOverride?: string | undefined;\r\n\r\n constructor(data?: IRequestQueryParameter) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): RequestQueryParameter {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new RequestQueryParameter();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.controlTemplateId = _data['controlTemplateId'];\r\n this.comparisonOperator = _data['comparisonOperator'];\r\n if (Array.isArray(_data['values'])) {\r\n this.values = [] as any;\r\n for (let item of _data['values']) {\r\n this.values!.push(item);\r\n }\r\n }\r\n this.placeholderKeyOverride = _data['placeholderKeyOverride'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['controlTemplateId'] = this.controlTemplateId;\r\n data['comparisonOperator'] = this.comparisonOperator;\r\n if (Array.isArray(this.values)) {\r\n data['values'] = [];\r\n for (let item of this.values) {\r\n data['values'].push(item);\r\n }\r\n }\r\n data['placeholderKeyOverride'] = this.placeholderKeyOverride;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IRequestQueryParameter {\r\n controlTemplateId?: number | undefined;\r\n comparisonOperator?: RequestQueryParameterComparisonOperator | undefined;\r\n values?: any[] | undefined;\r\n placeholderKeyOverride?: string | undefined;\r\n}\r\n\r\nexport class FilterValue implements IFilterValue {\r\n text?: any | undefined;\r\n value?: any | undefined;\r\n counter?: number | undefined;\r\n\r\n constructor(data?: IFilterValue) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): FilterValue {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new FilterValue();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.text = _data['text'];\r\n this.value = _data['value'];\r\n this.counter = _data['counter'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['text'] = this.text;\r\n data['value'] = this.value;\r\n data['counter'] = this.counter;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IFilterValue {\r\n text?: any | undefined;\r\n value?: any | undefined;\r\n counter?: number | undefined;\r\n}\r\n\r\nexport class ReportControl implements IReportControl {\r\n reportId?: number | undefined;\r\n controlTemplateId?: number | undefined;\r\n title?: string | undefined;\r\n visualType?: ReportControlVisualType | undefined;\r\n hidden?: boolean | undefined;\r\n isDefaultFilter?: boolean | undefined;\r\n isMandatory?: boolean | undefined;\r\n placeholdersList?: { [key: string]: string; } | undefined;\r\n defaultValues?: FilterValue[] | undefined;\r\n staticData?: FilterValue[] | undefined;\r\n dateFilterMetadata?: DateFilterMetadata | undefined;\r\n cascadingControlTemplateIds?: number[] | undefined;\r\n dynamicDataMetadata?: DynamicDataMetadata | undefined;\r\n\r\n constructor(data?: IReportControl) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ReportControl {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ReportControl();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.reportId = _data['reportId'];\r\n this.controlTemplateId = _data['controlTemplateId'];\r\n this.title = _data['title'];\r\n this.visualType = _data['visualType'];\r\n this.hidden = _data['hidden'];\r\n this.isDefaultFilter = _data['isDefaultFilter'];\r\n this.isMandatory = _data['isMandatory'];\r\n if (_data['placeholdersList']) {\r\n this.placeholdersList = {} as any;\r\n for (let key in _data['placeholdersList']) {\r\n if (_data['placeholdersList'].hasOwnProperty(key)) {\r\n this.placeholdersList![key] = _data['placeholdersList'][key];\r\n }\r\n }\r\n }\r\n if (Array.isArray(_data['defaultValues'])) {\r\n this.defaultValues = [] as any;\r\n for (let item of _data['defaultValues']) {\r\n this.defaultValues!.push(FilterValue.fromJS(item));\r\n }\r\n }\r\n if (Array.isArray(_data['staticData'])) {\r\n this.staticData = [] as any;\r\n for (let item of _data['staticData']) {\r\n this.staticData!.push(FilterValue.fromJS(item));\r\n }\r\n }\r\n this.dateFilterMetadata = _data['dateFilterMetadata'] ? DateFilterMetadata.fromJS(_data['dateFilterMetadata']) : undefined;\r\n if (Array.isArray(_data['cascadingControlTemplateIds'])) {\r\n this.cascadingControlTemplateIds = [] as any;\r\n for (let item of _data['cascadingControlTemplateIds']) {\r\n this.cascadingControlTemplateIds!.push(item);\r\n }\r\n }\r\n this.dynamicDataMetadata = _data['dynamicDataMetadata'] ? DynamicDataMetadata.fromJS(_data['dynamicDataMetadata']) : undefined;\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['reportId'] = this.reportId;\r\n data['controlTemplateId'] = this.controlTemplateId;\r\n data['title'] = this.title;\r\n data['visualType'] = this.visualType;\r\n data['hidden'] = this.hidden;\r\n data['isDefaultFilter'] = this.isDefaultFilter;\r\n data['isMandatory'] = this.isMandatory;\r\n if (this.placeholdersList) {\r\n data['placeholdersList'] = {};\r\n for (let key in this.placeholdersList) {\r\n if (this.placeholdersList.hasOwnProperty(key)) {\r\n data['placeholdersList'][key] = this.placeholdersList[key];\r\n }\r\n }\r\n }\r\n if (Array.isArray(this.defaultValues)) {\r\n data['defaultValues'] = [];\r\n for (let item of this.defaultValues) {\r\n data['defaultValues'].push(item.toJSON());\r\n }\r\n }\r\n if (Array.isArray(this.staticData)) {\r\n data['staticData'] = [];\r\n for (let item of this.staticData) {\r\n data['staticData'].push(item.toJSON());\r\n }\r\n }\r\n data['dateFilterMetadata'] = this.dateFilterMetadata ? this.dateFilterMetadata.toJSON() : undefined;\r\n if (Array.isArray(this.cascadingControlTemplateIds)) {\r\n data['cascadingControlTemplateIds'] = [];\r\n for (let item of this.cascadingControlTemplateIds) {\r\n data['cascadingControlTemplateIds'].push(item);\r\n }\r\n }\r\n data['dynamicDataMetadata'] = this.dynamicDataMetadata ? this.dynamicDataMetadata.toJSON() : undefined;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IReportControl {\r\n reportId?: number | undefined;\r\n controlTemplateId?: number | undefined;\r\n title?: string | undefined;\r\n visualType?: ReportControlVisualType | undefined;\r\n hidden?: boolean | undefined;\r\n isDefaultFilter?: boolean | undefined;\r\n isMandatory?: boolean | undefined;\r\n placeholdersList?: { [key: string]: string; } | undefined;\r\n defaultValues?: FilterValue[] | undefined;\r\n staticData?: FilterValue[] | undefined;\r\n dateFilterMetadata?: DateFilterMetadata | undefined;\r\n cascadingControlTemplateIds?: number[] | undefined;\r\n dynamicDataMetadata?: DynamicDataMetadata | undefined;\r\n}\r\n\r\nexport class DateFilterMetadata implements IDateFilterMetadata {\r\n hasDynamicData?: boolean | undefined;\r\n predefinedRanges?: PredefinedDateRange[] | undefined;\r\n predefinedRangesPerPlaceholder?: { [key: string]: PredefinedDateRange[]; } | undefined;\r\n\r\n constructor(data?: IDateFilterMetadata) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): DateFilterMetadata {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new DateFilterMetadata();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.hasDynamicData = _data['hasDynamicData'];\r\n if (Array.isArray(_data['predefinedRanges'])) {\r\n this.predefinedRanges = [] as any;\r\n for (let item of _data['predefinedRanges']) {\r\n this.predefinedRanges!.push(PredefinedDateRange.fromJS(item));\r\n }\r\n }\r\n if (_data['predefinedRangesPerPlaceholder']) {\r\n this.predefinedRangesPerPlaceholder = {} as any;\r\n for (let key in _data['predefinedRangesPerPlaceholder']) {\r\n if (_data['predefinedRangesPerPlaceholder'].hasOwnProperty(key)) {\r\n this.predefinedRangesPerPlaceholder![key] = _data['predefinedRangesPerPlaceholder'][key] ? _data['predefinedRangesPerPlaceholder'][key].map((i: any) => PredefinedDateRange.fromJS(i)) : [];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['hasDynamicData'] = this.hasDynamicData;\r\n if (Array.isArray(this.predefinedRanges)) {\r\n data['predefinedRanges'] = [];\r\n for (let item of this.predefinedRanges) {\r\n data['predefinedRanges'].push(item.toJSON());\r\n }\r\n }\r\n if (this.predefinedRangesPerPlaceholder) {\r\n data['predefinedRangesPerPlaceholder'] = {};\r\n for (let key in this.predefinedRangesPerPlaceholder) {\r\n if (this.predefinedRangesPerPlaceholder.hasOwnProperty(key)) {\r\n data['predefinedRangesPerPlaceholder'][key] = this.predefinedRangesPerPlaceholder[key];\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IDateFilterMetadata {\r\n hasDynamicData?: boolean | undefined;\r\n predefinedRanges?: PredefinedDateRange[] | undefined;\r\n predefinedRangesPerPlaceholder?: { [key: string]: PredefinedDateRange[]; } | undefined;\r\n}\r\n\r\nexport class DynamicDataMetadata implements IDynamicDataMetadata {\r\n valueTitle?: string | undefined;\r\n counterTitle?: string | undefined;\r\n counterFormat?: string | undefined;\r\n\r\n constructor(data?: IDynamicDataMetadata) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): DynamicDataMetadata {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new DynamicDataMetadata();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.valueTitle = _data['valueTitle'];\r\n this.counterTitle = _data['counterTitle'];\r\n this.counterFormat = _data['counterFormat'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['valueTitle'] = this.valueTitle;\r\n data['counterTitle'] = this.counterTitle;\r\n data['counterFormat'] = this.counterFormat;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IDynamicDataMetadata {\r\n valueTitle?: string | undefined;\r\n counterTitle?: string | undefined;\r\n counterFormat?: string | undefined;\r\n}\r\n\r\nexport class PredefinedDateRange implements IPredefinedDateRange {\r\n name?: string | undefined;\r\n periodCount?: number | undefined;\r\n periodType?: PredefinedDateRangePeriodType | undefined;\r\n includeToday?: boolean | undefined;\r\n selected?: boolean | undefined;\r\n startOf?: boolean | undefined;\r\n\r\n constructor(data?: IPredefinedDateRange) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): PredefinedDateRange {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new PredefinedDateRange();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.name = _data['name'];\r\n this.periodCount = _data['periodCount'];\r\n this.periodType = _data['periodType'];\r\n this.includeToday = _data['includeToday'];\r\n this.selected = _data['selected'];\r\n this.startOf = _data['startOf'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['name'] = this.name;\r\n data['periodCount'] = this.periodCount;\r\n data['periodType'] = this.periodType;\r\n data['includeToday'] = this.includeToday;\r\n data['selected'] = this.selected;\r\n data['startOf'] = this.startOf;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IPredefinedDateRange {\r\n name?: string | undefined;\r\n periodCount?: number | undefined;\r\n periodType?: PredefinedDateRangePeriodType | undefined;\r\n includeToday?: boolean | undefined;\r\n selected?: boolean | undefined;\r\n startOf?: boolean | undefined;\r\n}\r\n\r\nexport class TreeNode implements ITreeNode {\r\n name?: string | undefined;\r\n routingPath?: string | undefined;\r\n slimName?: string | undefined;\r\n iconPath?: string | undefined;\r\n children?: TreeNode[] | undefined;\r\n\r\n constructor(data?: ITreeNode) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): TreeNode {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new TreeNode();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.name = _data['name'];\r\n this.routingPath = _data['routingPath'];\r\n this.slimName = _data['slimName'];\r\n this.iconPath = _data['iconPath'];\r\n if (Array.isArray(_data['children'])) {\r\n this.children = [] as any;\r\n for (let item of _data['children']) {\r\n this.children!.push(TreeNode.fromJS(item));\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['name'] = this.name;\r\n data['routingPath'] = this.routingPath;\r\n data['slimName'] = this.slimName;\r\n data['iconPath'] = this.iconPath;\r\n if (Array.isArray(this.children)) {\r\n data['children'] = [];\r\n for (let item of this.children) {\r\n data['children'].push(item.toJSON());\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface ITreeNode {\r\n name?: string | undefined;\r\n routingPath?: string | undefined;\r\n slimName?: string | undefined;\r\n iconPath?: string | undefined;\r\n children?: TreeNode[] | undefined;\r\n}\r\n\r\nexport class Notification implements INotification {\r\n category?: string | undefined;\r\n date?: Date | undefined;\r\n state?: string | undefined;\r\n message?: string | undefined;\r\n severity?: string | undefined;\r\n title?: string | undefined;\r\n\r\n constructor(data?: INotification) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): Notification {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new Notification();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.category = _data['category'];\r\n this.date = _data['date'] ? new Date(_data['date'].toString()) : undefined;\r\n this.state = _data['state'];\r\n this.message = _data['message'];\r\n this.severity = _data['severity'];\r\n this.title = _data['title'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['category'] = this.category;\r\n data['date'] = this.date ? this.date.toISOString() : undefined;\r\n data['state'] = this.state;\r\n data['message'] = this.message;\r\n data['severity'] = this.severity;\r\n data['title'] = this.title;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface INotification {\r\n category?: string | undefined;\r\n date?: Date | undefined;\r\n state?: string | undefined;\r\n message?: string | undefined;\r\n severity?: string | undefined;\r\n title?: string | undefined;\r\n}\r\n\r\nexport class ReportResult implements IReportResult {\r\n report?: Report | undefined;\r\n widgets?: ReportWidget[] | undefined;\r\n controls?: ReportControl[] | undefined;\r\n readonly hasControls?: boolean | undefined;\r\n\r\n constructor(data?: IReportResult) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ReportResult {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ReportResult();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.report = _data['report'] ? Report.fromJS(_data['report']) : undefined;\r\n if (Array.isArray(_data['widgets'])) {\r\n this.widgets = [] as any;\r\n for (let item of _data['widgets']) {\r\n this.widgets!.push(ReportWidget.fromJS(item));\r\n }\r\n }\r\n if (Array.isArray(_data['controls'])) {\r\n this.controls = [] as any;\r\n for (let item of _data['controls']) {\r\n this.controls!.push(ReportControl.fromJS(item));\r\n }\r\n }\r\n ( this).hasControls = _data['hasControls'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['report'] = this.report ? this.report.toJSON() : undefined;\r\n if (Array.isArray(this.widgets)) {\r\n data['widgets'] = [];\r\n for (let item of this.widgets) {\r\n data['widgets'].push(item.toJSON());\r\n }\r\n }\r\n if (Array.isArray(this.controls)) {\r\n data['controls'] = [];\r\n for (let item of this.controls) {\r\n data['controls'].push(item.toJSON());\r\n }\r\n }\r\n data['hasControls'] = this.hasControls;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IReportResult {\r\n report?: Report | undefined;\r\n widgets?: ReportWidget[] | undefined;\r\n controls?: ReportControl[] | undefined;\r\n hasControls?: boolean | undefined;\r\n}\r\n\r\nexport class Report implements IReport {\r\n id?: number | undefined;\r\n name?: string | undefined;\r\n\r\n constructor(data?: IReport) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): Report {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new Report();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data['id'];\r\n this.name = _data['name'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['id'] = this.id;\r\n data['name'] = this.name;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IReport {\r\n id?: number | undefined;\r\n name?: string | undefined;\r\n}\r\n\r\nexport class ReportWidget implements IReportWidget {\r\n widgetId?: number | undefined;\r\n title?: string | undefined;\r\n titleDescription?: string | undefined;\r\n row?: number | undefined;\r\n rowSpan?: number | undefined;\r\n column?: number | undefined;\r\n columnSpan?: number | undefined;\r\n drillThroughPageId?: number | undefined;\r\n hideTitle?: boolean | undefined;\r\n hasTransparentFrame?: boolean | undefined;\r\n extraMessage?: string | undefined;\r\n minimumColumnSpan?: number | undefined;\r\n minimumRowSpan?: number | undefined;\r\n visuals?: VisualMetadata[] | undefined;\r\n controlTemplateIds?: number[] | undefined;\r\n\r\n constructor(data?: IReportWidget) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ReportWidget {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ReportWidget();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.widgetId = _data['widgetId'];\r\n this.title = _data['title'];\r\n this.titleDescription = _data['titleDescription'];\r\n this.row = _data['row'];\r\n this.rowSpan = _data['rowSpan'];\r\n this.column = _data['column'];\r\n this.columnSpan = _data['columnSpan'];\r\n this.drillThroughPageId = _data['drillThroughPageId'];\r\n this.hideTitle = _data['hideTitle'];\r\n this.hasTransparentFrame = _data['hasTransparentFrame'];\r\n this.extraMessage = _data['extraMessage'];\r\n this.minimumColumnSpan = _data['minimumColumnSpan'];\r\n this.minimumRowSpan = _data['minimumRowSpan'];\r\n if (Array.isArray(_data['visuals'])) {\r\n this.visuals = [] as any;\r\n for (let item of _data['visuals']) {\r\n this.visuals!.push(VisualMetadata.fromJS(item));\r\n }\r\n }\r\n if (Array.isArray(_data['controlTemplateIds'])) {\r\n this.controlTemplateIds = [] as any;\r\n for (let item of _data['controlTemplateIds']) {\r\n this.controlTemplateIds!.push(item);\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['widgetId'] = this.widgetId;\r\n data['title'] = this.title;\r\n data['titleDescription'] = this.titleDescription;\r\n data['row'] = this.row;\r\n data['rowSpan'] = this.rowSpan;\r\n data['column'] = this.column;\r\n data['columnSpan'] = this.columnSpan;\r\n data['drillThroughPageId'] = this.drillThroughPageId;\r\n data['hideTitle'] = this.hideTitle;\r\n data['hasTransparentFrame'] = this.hasTransparentFrame;\r\n data['extraMessage'] = this.extraMessage;\r\n data['minimumColumnSpan'] = this.minimumColumnSpan;\r\n data['minimumRowSpan'] = this.minimumRowSpan;\r\n if (Array.isArray(this.visuals)) {\r\n data['visuals'] = [];\r\n for (let item of this.visuals) {\r\n data['visuals'].push(item.toJSON());\r\n }\r\n }\r\n if (Array.isArray(this.controlTemplateIds)) {\r\n data['controlTemplateIds'] = [];\r\n for (let item of this.controlTemplateIds) {\r\n data['controlTemplateIds'].push(item);\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IReportWidget {\r\n widgetId?: number | undefined;\r\n title?: string | undefined;\r\n titleDescription?: string | undefined;\r\n row?: number | undefined;\r\n rowSpan?: number | undefined;\r\n column?: number | undefined;\r\n columnSpan?: number | undefined;\r\n drillThroughPageId?: number | undefined;\r\n hideTitle?: boolean | undefined;\r\n hasTransparentFrame?: boolean | undefined;\r\n extraMessage?: string | undefined;\r\n minimumColumnSpan?: number | undefined;\r\n minimumRowSpan?: number | undefined;\r\n visuals?: VisualMetadata[] | undefined;\r\n controlTemplateIds?: number[] | undefined;\r\n}\r\n\r\nexport class VisualMetadata implements IVisualMetadata {\r\n visualId?: number | undefined;\r\n visualType?: VisualMetadataVisualType | undefined;\r\n aggregationFunction?: VisualMetadataAggregationFunction | undefined;\r\n lineStyle?: VisualMetadataLineStyle | undefined;\r\n dashType?: VisualMetadataDashType | undefined;\r\n columns?: ColumnSetting[] | undefined;\r\n isStacked?: boolean | undefined;\r\n hasDataLabels?: boolean | undefined;\r\n\r\n constructor(data?: IVisualMetadata) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): VisualMetadata {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new VisualMetadata();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.visualId = _data['visualId'];\r\n this.visualType = _data['visualType'];\r\n this.aggregationFunction = _data['aggregationFunction'];\r\n this.lineStyle = _data['lineStyle'];\r\n this.dashType = _data['dashType'];\r\n if (Array.isArray(_data['columns'])) {\r\n this.columns = [] as any;\r\n for (let item of _data['columns']) {\r\n this.columns!.push(ColumnSetting.fromJS(item));\r\n }\r\n }\r\n this.isStacked = _data['isStacked'];\r\n this.hasDataLabels = _data['hasDataLabels'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['visualId'] = this.visualId;\r\n data['visualType'] = this.visualType;\r\n data['aggregationFunction'] = this.aggregationFunction;\r\n data['lineStyle'] = this.lineStyle;\r\n data['dashType'] = this.dashType;\r\n if (Array.isArray(this.columns)) {\r\n data['columns'] = [];\r\n for (let item of this.columns) {\r\n data['columns'].push(item.toJSON());\r\n }\r\n }\r\n data['isStacked'] = this.isStacked;\r\n data['hasDataLabels'] = this.hasDataLabels;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IVisualMetadata {\r\n visualId?: number | undefined;\r\n visualType?: VisualMetadataVisualType | undefined;\r\n aggregationFunction?: VisualMetadataAggregationFunction | undefined;\r\n lineStyle?: VisualMetadataLineStyle | undefined;\r\n dashType?: VisualMetadataDashType | undefined;\r\n columns?: ColumnSetting[] | undefined;\r\n isStacked?: boolean | undefined;\r\n hasDataLabels?: boolean | undefined;\r\n}\r\n\r\nexport class ColumnSetting implements IColumnSetting {\r\n field?: string | undefined;\r\n title?: string | undefined;\r\n format?: string | undefined;\r\n baseUnit?: ColumnSettingBaseUnit | undefined;\r\n baseUnitStep?: number | undefined;\r\n type?: ColumnSettingType | undefined;\r\n hasDataLabels?: boolean | undefined;\r\n hideTitle?: boolean | undefined;\r\n drillThroughReportId?: number | undefined;\r\n drillThroughControlTemplateId?: number | undefined;\r\n navigationType?: ColumnSettingNavigationType | undefined;\r\n tableTemplate?: TableTemplate | undefined;\r\n messagesTemplate?: { [key: string]: MessageTemplate; } | undefined;\r\n\r\n constructor(data?: IColumnSetting) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ColumnSetting {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ColumnSetting();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.field = _data['field'];\r\n this.title = _data['title'];\r\n this.format = _data['format'];\r\n this.baseUnit = _data['baseUnit'];\r\n this.baseUnitStep = _data['baseUnitStep'];\r\n this.type = _data['type'];\r\n this.hasDataLabels = _data['hasDataLabels'];\r\n this.hideTitle = _data['hideTitle'];\r\n this.drillThroughReportId = _data['drillThroughReportId'];\r\n this.drillThroughControlTemplateId = _data['drillThroughControlTemplateId'];\r\n this.navigationType = _data['navigationType'];\r\n this.tableTemplate = _data['tableTemplate'] ? TableTemplate.fromJS(_data['tableTemplate']) : undefined;\r\n if (_data['messagesTemplate']) {\r\n this.messagesTemplate = {} as any;\r\n for (let key in _data['messagesTemplate']) {\r\n if (_data['messagesTemplate'].hasOwnProperty(key)) {\r\n this.messagesTemplate![key] = _data['messagesTemplate'][key] ? MessageTemplate.fromJS(_data['messagesTemplate'][key]) : new MessageTemplate();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['field'] = this.field;\r\n data['title'] = this.title;\r\n data['format'] = this.format;\r\n data['baseUnit'] = this.baseUnit;\r\n data['baseUnitStep'] = this.baseUnitStep;\r\n data['type'] = this.type;\r\n data['hasDataLabels'] = this.hasDataLabels;\r\n data['hideTitle'] = this.hideTitle;\r\n data['drillThroughReportId'] = this.drillThroughReportId;\r\n data['drillThroughControlTemplateId'] = this.drillThroughControlTemplateId;\r\n data['navigationType'] = this.navigationType;\r\n data['tableTemplate'] = this.tableTemplate ? this.tableTemplate.toJSON() : undefined;\r\n if (this.messagesTemplate) {\r\n data['messagesTemplate'] = {};\r\n for (let key in this.messagesTemplate) {\r\n if (this.messagesTemplate.hasOwnProperty(key)) {\r\n data['messagesTemplate'][key] = this.messagesTemplate[key] ? this.messagesTemplate[key].toJSON() : undefined;\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IColumnSetting {\r\n field?: string | undefined;\r\n title?: string | undefined;\r\n format?: string | undefined;\r\n baseUnit?: ColumnSettingBaseUnit | undefined;\r\n baseUnitStep?: number | undefined;\r\n type?: ColumnSettingType | undefined;\r\n hasDataLabels?: boolean | undefined;\r\n hideTitle?: boolean | undefined;\r\n drillThroughReportId?: number | undefined;\r\n drillThroughControlTemplateId?: number | undefined;\r\n navigationType?: ColumnSettingNavigationType | undefined;\r\n tableTemplate?: TableTemplate | undefined;\r\n messagesTemplate?: { [key: string]: MessageTemplate; } | undefined;\r\n}\r\n\r\nexport class TableTemplate implements ITableTemplate {\r\n badgeColor?: { [key: string]: { [key: string]: string; }; } | undefined;\r\n iconPath?: string | undefined;\r\n width?: number | undefined;\r\n media?: string | undefined;\r\n percentOfTotal?: { [key: string]: string; } | undefined;\r\n\r\n constructor(data?: ITableTemplate) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): TableTemplate {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new TableTemplate();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n if (_data['badgeColor']) {\r\n this.badgeColor = {} as any;\r\n for (let key in _data['badgeColor']) {\r\n if (_data['badgeColor'].hasOwnProperty(key)) {\r\n this.badgeColor![key] = _data['badgeColor'][key] !== undefined ? _data['badgeColor'][key] : {};\r\n }\r\n }\r\n }\r\n this.iconPath = _data['iconPath'];\r\n this.width = _data['width'];\r\n this.media = _data['media'];\r\n if (_data['percentOfTotal']) {\r\n this.percentOfTotal = {} as any;\r\n for (let key in _data['percentOfTotal']) {\r\n if (_data['percentOfTotal'].hasOwnProperty(key)) {\r\n this.percentOfTotal![key] = _data['percentOfTotal'][key];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n if (this.badgeColor) {\r\n data['badgeColor'] = {};\r\n for (let key in this.badgeColor) {\r\n if (this.badgeColor.hasOwnProperty(key)) {\r\n data['badgeColor'][key] = this.badgeColor[key];\r\n }\r\n }\r\n }\r\n data['iconPath'] = this.iconPath;\r\n data['width'] = this.width;\r\n data['media'] = this.media;\r\n if (this.percentOfTotal) {\r\n data['percentOfTotal'] = {};\r\n for (let key in this.percentOfTotal) {\r\n if (this.percentOfTotal.hasOwnProperty(key)) {\r\n data['percentOfTotal'][key] = this.percentOfTotal[key];\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface ITableTemplate {\r\n badgeColor?: { [key: string]: { [key: string]: string; }; } | undefined;\r\n iconPath?: string | undefined;\r\n width?: number | undefined;\r\n media?: string | undefined;\r\n percentOfTotal?: { [key: string]: string; } | undefined;\r\n}\r\n\r\nexport class MessageTemplate implements IMessageTemplate {\r\n message?: string | undefined;\r\n color?: string | undefined;\r\n iconPath?: string | undefined;\r\n fontScale?: number | undefined;\r\n isBold?: boolean | undefined;\r\n isItalic?: boolean | undefined;\r\n\r\n constructor(data?: IMessageTemplate) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): MessageTemplate {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MessageTemplate();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.message = _data['message'];\r\n this.color = _data['color'];\r\n this.iconPath = _data['iconPath'];\r\n this.fontScale = _data['fontScale'];\r\n this.isBold = _data['isBold'];\r\n this.isItalic = _data['isItalic'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['message'] = this.message;\r\n data['color'] = this.color;\r\n data['iconPath'] = this.iconPath;\r\n data['fontScale'] = this.fontScale;\r\n data['isBold'] = this.isBold;\r\n data['isItalic'] = this.isItalic;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IMessageTemplate {\r\n message?: string | undefined;\r\n color?: string | undefined;\r\n iconPath?: string | undefined;\r\n fontScale?: number | undefined;\r\n isBold?: boolean | undefined;\r\n isItalic?: boolean | undefined;\r\n}\r\n\r\nexport class User implements IUser {\r\n username?: string | undefined;\r\n name?: string | undefined;\r\n tenantName?: string | undefined;\r\n isUnassignedUser?: boolean | undefined;\r\n isUnrestrictedTenant?: boolean | undefined;\r\n permissions?: Permission[] | undefined;\r\n\r\n constructor(data?: IUser) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): User {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new User();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.username = _data['username'];\r\n this.name = _data['name'];\r\n this.tenantName = _data['tenantName'];\r\n this.isUnassignedUser = _data['isUnassignedUser'];\r\n this.isUnrestrictedTenant = _data['isUnrestrictedTenant'];\r\n if (Array.isArray(_data['permissions'])) {\r\n this.permissions = [] as any;\r\n for (let item of _data['permissions']) {\r\n this.permissions!.push(Permission.fromJS(item));\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['username'] = this.username;\r\n data['name'] = this.name;\r\n data['tenantName'] = this.tenantName;\r\n data['isUnassignedUser'] = this.isUnassignedUser;\r\n data['isUnrestrictedTenant'] = this.isUnrestrictedTenant;\r\n if (Array.isArray(this.permissions)) {\r\n data['permissions'] = [];\r\n for (let item of this.permissions) {\r\n data['permissions'].push(item.toJSON());\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IUser {\r\n username?: string | undefined;\r\n name?: string | undefined;\r\n tenantName?: string | undefined;\r\n isUnassignedUser?: boolean | undefined;\r\n isUnrestrictedTenant?: boolean | undefined;\r\n permissions?: Permission[] | undefined;\r\n}\r\n\r\nexport class Permission implements IPermission {\r\n permissionName?: string | undefined;\r\n permissionDescription?: string | undefined;\r\n resourceIds?: string[] | undefined;\r\n\r\n constructor(data?: IPermission) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): Permission {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new Permission();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.permissionName = _data['permissionName'];\r\n this.permissionDescription = _data['permissionDescription'];\r\n if (Array.isArray(_data['resourceIds'])) {\r\n this.resourceIds = [] as any;\r\n for (let item of _data['resourceIds']) {\r\n this.resourceIds!.push(item);\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['permissionName'] = this.permissionName;\r\n data['permissionDescription'] = this.permissionDescription;\r\n if (Array.isArray(this.resourceIds)) {\r\n data['resourceIds'] = [];\r\n for (let item of this.resourceIds) {\r\n data['resourceIds'].push(item);\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IPermission {\r\n permissionName?: string | undefined;\r\n permissionDescription?: string | undefined;\r\n resourceIds?: string[] | undefined;\r\n}\r\n\r\nexport class TableData implements ITableData {\r\n dataRows?: { [key: string]: any; }[] | undefined;\r\n\r\n constructor(data?: ITableData) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): TableData {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new TableData();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n if (Array.isArray(_data['dataRows'])) {\r\n this.dataRows = [] as any;\r\n for (let item of _data['dataRows']) {\r\n this.dataRows!.push(item);\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n if (Array.isArray(this.dataRows)) {\r\n data['dataRows'] = [];\r\n for (let item of this.dataRows) {\r\n data['dataRows'].push(item);\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface ITableData {\r\n dataRows?: { [key: string]: any; }[] | undefined;\r\n}\r\n\r\nexport class ChartData implements IChartData {\r\n categories?: any[] | undefined;\r\n series?: SeriesItem[] | undefined;\r\n\r\n constructor(data?: IChartData) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ChartData {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ChartData();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n if (Array.isArray(_data['categories'])) {\r\n this.categories = [] as any;\r\n for (let item of _data['categories']) {\r\n this.categories!.push(item);\r\n }\r\n }\r\n if (Array.isArray(_data['series'])) {\r\n this.series = [] as any;\r\n for (let item of _data['series']) {\r\n this.series!.push(SeriesItem.fromJS(item));\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n if (Array.isArray(this.categories)) {\r\n data['categories'] = [];\r\n for (let item of this.categories) {\r\n data['categories'].push(item);\r\n }\r\n }\r\n if (Array.isArray(this.series)) {\r\n data['series'] = [];\r\n for (let item of this.series) {\r\n data['series'].push(item.toJSON());\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IChartData {\r\n categories?: any[] | undefined;\r\n series?: SeriesItem[] | undefined;\r\n}\r\n\r\nexport class SeriesItem implements ISeriesItem {\r\n name?: string | undefined;\r\n values?: SeriesItemData[] | undefined;\r\n\r\n constructor(data?: ISeriesItem) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): SeriesItem {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new SeriesItem();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.name = _data['name'];\r\n if (Array.isArray(_data['values'])) {\r\n this.values = [] as any;\r\n for (let item of _data['values']) {\r\n this.values!.push(SeriesItemData.fromJS(item));\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['name'] = this.name;\r\n if (Array.isArray(this.values)) {\r\n data['values'] = [];\r\n for (let item of this.values) {\r\n data['values'].push(item.toJSON());\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface ISeriesItem {\r\n name?: string | undefined;\r\n values?: SeriesItemData[] | undefined;\r\n}\r\n\r\nexport class SeriesItemData implements ISeriesItemData {\r\n value?: number | undefined;\r\n dataPointSize?: number | undefined;\r\n additionalData?: AdditionalDataRow[] | undefined;\r\n\r\n constructor(data?: ISeriesItemData) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): SeriesItemData {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new SeriesItemData();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.value = _data['value'];\r\n this.dataPointSize = _data['dataPointSize'];\r\n if (Array.isArray(_data['additionalData'])) {\r\n this.additionalData = [] as any;\r\n for (let item of _data['additionalData']) {\r\n this.additionalData!.push(AdditionalDataRow.fromJS(item));\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['value'] = this.value;\r\n data['dataPointSize'] = this.dataPointSize;\r\n if (Array.isArray(this.additionalData)) {\r\n data['additionalData'] = [];\r\n for (let item of this.additionalData) {\r\n data['additionalData'].push(item.toJSON());\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface ISeriesItemData {\r\n value?: number | undefined;\r\n dataPointSize?: number | undefined;\r\n additionalData?: AdditionalDataRow[] | undefined;\r\n}\r\n\r\nexport class AdditionalDataRow implements IAdditionalDataRow {\r\n key?: string | undefined;\r\n value?: any | undefined;\r\n\r\n constructor(data?: IAdditionalDataRow) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): AdditionalDataRow {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new AdditionalDataRow();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.key = _data['key'];\r\n this.value = _data['value'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['key'] = this.key;\r\n data['value'] = this.value;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IAdditionalDataRow {\r\n key?: string | undefined;\r\n value?: any | undefined;\r\n}\r\n\r\nexport class WidgetMetadataResult implements IWidgetMetadataResult {\r\n widgetId?: number | undefined;\r\n title?: string | undefined;\r\n titleDescription?: string | undefined;\r\n minimumColumnSpan?: number | undefined;\r\n minimumRowSpan?: number | undefined;\r\n visuals?: VisualMetadata[] | undefined;\r\n controlTemplateIds?: number[] | undefined;\r\n\r\n constructor(data?: IWidgetMetadataResult) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): WidgetMetadataResult {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new WidgetMetadataResult();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.widgetId = _data['widgetId'];\r\n this.title = _data['title'];\r\n this.titleDescription = _data['titleDescription'];\r\n this.minimumColumnSpan = _data['minimumColumnSpan'];\r\n this.minimumRowSpan = _data['minimumRowSpan'];\r\n if (Array.isArray(_data['visuals'])) {\r\n this.visuals = [] as any;\r\n for (let item of _data['visuals']) {\r\n this.visuals!.push(VisualMetadata.fromJS(item));\r\n }\r\n }\r\n if (Array.isArray(_data['controlTemplateIds'])) {\r\n this.controlTemplateIds = [] as any;\r\n for (let item of _data['controlTemplateIds']) {\r\n this.controlTemplateIds!.push(item);\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['widgetId'] = this.widgetId;\r\n data['title'] = this.title;\r\n data['titleDescription'] = this.titleDescription;\r\n data['minimumColumnSpan'] = this.minimumColumnSpan;\r\n data['minimumRowSpan'] = this.minimumRowSpan;\r\n if (Array.isArray(this.visuals)) {\r\n data['visuals'] = [];\r\n for (let item of this.visuals) {\r\n data['visuals'].push(item.toJSON());\r\n }\r\n }\r\n if (Array.isArray(this.controlTemplateIds)) {\r\n data['controlTemplateIds'] = [];\r\n for (let item of this.controlTemplateIds) {\r\n data['controlTemplateIds'].push(item);\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IWidgetMetadataResult {\r\n widgetId?: number | undefined;\r\n title?: string | undefined;\r\n titleDescription?: string | undefined;\r\n minimumColumnSpan?: number | undefined;\r\n minimumRowSpan?: number | undefined;\r\n visuals?: VisualMetadata[] | undefined;\r\n controlTemplateIds?: number[] | undefined;\r\n}\r\n\r\nexport class SlimWidgetMetaData implements ISlimWidgetMetaData {\r\n widgetId?: number | undefined;\r\n visualType?: VisualType[] | undefined;\r\n title?: string | undefined;\r\n\r\n constructor(data?: ISlimWidgetMetaData) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): SlimWidgetMetaData {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new SlimWidgetMetaData();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.widgetId = _data['widgetId'];\r\n if (Array.isArray(_data['visualType'])) {\r\n this.visualType = [] as any;\r\n for (let item of _data['visualType']) {\r\n this.visualType!.push(item);\r\n }\r\n }\r\n this.title = _data['title'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['widgetId'] = this.widgetId;\r\n if (Array.isArray(this.visualType)) {\r\n data['visualType'] = [];\r\n for (let item of this.visualType) {\r\n data['visualType'].push(item);\r\n }\r\n }\r\n data['title'] = this.title;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface ISlimWidgetMetaData {\r\n widgetId?: number | undefined;\r\n visualType?: VisualType[] | undefined;\r\n title?: string | undefined;\r\n}\r\n\r\nexport class WidgetCreationData implements IWidgetCreationData {\r\n name!: string;\r\n minimumColumnSpan!: number;\r\n minimumRowSpan!: number;\r\n\r\n constructor(data?: IWidgetCreationData) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): WidgetCreationData {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new WidgetCreationData();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.name = _data['name'];\r\n this.minimumColumnSpan = _data['minimumColumnSpan'];\r\n this.minimumRowSpan = _data['minimumRowSpan'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['name'] = this.name;\r\n data['minimumColumnSpan'] = this.minimumColumnSpan;\r\n data['minimumRowSpan'] = this.minimumRowSpan;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IWidgetCreationData {\r\n name: string;\r\n minimumColumnSpan: number;\r\n minimumRowSpan: number;\r\n}\r\n\r\nexport class ReportWidgetCreationData implements IReportWidgetCreationData {\r\n widgetId!: number;\r\n reportId!: number;\r\n column!: number;\r\n columnSpan!: number;\r\n row!: number;\r\n rowSpan!: number;\r\n\r\n constructor(data?: IReportWidgetCreationData) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property)) {\r\n ( this)[property] = ( data)[property];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ReportWidgetCreationData {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ReportWidgetCreationData();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.widgetId = _data['widgetId'];\r\n this.reportId = _data['reportId'];\r\n this.column = _data['column'];\r\n this.columnSpan = _data['columnSpan'];\r\n this.row = _data['row'];\r\n this.rowSpan = _data['rowSpan'];\r\n }\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data['widgetId'] = this.widgetId;\r\n data['reportId'] = this.reportId;\r\n data['column'] = this.column;\r\n data['columnSpan'] = this.columnSpan;\r\n data['row'] = this.row;\r\n data['rowSpan'] = this.rowSpan;\r\n return data;\r\n }\r\n}\r\n\r\nexport interface IReportWidgetCreationData {\r\n widgetId: number;\r\n reportId: number;\r\n column: number;\r\n columnSpan: number;\r\n row: number;\r\n rowSpan: number;\r\n}\r\n\r\n/** Log Level */\r\nexport enum Level {\r\n Debug = 'Debug',\r\n Trace = 'Trace',\r\n Info = 'Info',\r\n Warn = 'Warn',\r\n Error = 'Error',\r\n Fatal = 'Fatal',\r\n}\r\n\r\nexport enum RequestQueryParameterComparisonOperator {\r\n Equals = 'Equals',\r\n NotEquals = 'NotEquals',\r\n In = 'In',\r\n NotIn = 'NotIn',\r\n Between = 'Between',\r\n NotBetween = 'NotBetween',\r\n Greater = 'Greater',\r\n GreaterOrEqual = 'GreaterOrEqual',\r\n LessThen = 'LessThen',\r\n LessThenOrEqual = 'LessThenOrEqual',\r\n}\r\n\r\nexport enum ReportControlVisualType {\r\n SingleSelect = 'SingleSelect',\r\n MultiSelect = 'MultiSelect',\r\n DateRange = 'DateRange',\r\n AutoCompleteSingle = 'AutoCompleteSingle',\r\n AutoCompleteMulti = 'AutoCompleteMulti',\r\n}\r\n\r\nexport enum PredefinedDateRangePeriodType {\r\n Days = 'Days',\r\n Weeks = 'Weeks',\r\n Months = 'Months',\r\n Years = 'Years',\r\n}\r\n\r\nexport enum VisualMetadataVisualType {\r\n Bar = 'Bar',\r\n Column = 'Column',\r\n Line = 'Line',\r\n Area = 'Area',\r\n Donut = 'Donut',\r\n DonutMulti = 'DonutMulti',\r\n Bubble = 'Bubble',\r\n Table = 'Table',\r\n PercentageChange = 'PercentageChange',\r\n NumberScalar = 'NumberScalar',\r\n LinearGauge = 'LinearGauge',\r\n Map = 'Map',\r\n Pie = 'Pie',\r\n Text = 'Text',\r\n}\r\n\r\nexport enum VisualMetadataAggregationFunction {\r\n Sum = 'sum',\r\n Avg = 'avg',\r\n Count = 'count',\r\n Max = 'max',\r\n Min = 'min',\r\n SumOrNull = 'sumOrNull',\r\n First = 'first',\r\n}\r\n\r\nexport enum VisualMetadataLineStyle {\r\n Normal = 'normal',\r\n Step = 'step',\r\n Smooth = 'smooth',\r\n}\r\n\r\nexport enum VisualMetadataDashType {\r\n Solid = 'solid',\r\n Dash = 'dash',\r\n DashDot = 'dashDot',\r\n Dot = 'dot',\r\n LongDash = 'longDash',\r\n LongDashDot = 'longDashDot',\r\n LongDashDotDot = 'longDashDotDot',\r\n}\r\n\r\nexport enum ColumnSettingBaseUnit {\r\n Auto = 'auto',\r\n Fit = 'fit',\r\n Milliseconds = 'milliseconds',\r\n Seconds = 'seconds',\r\n Minutes = 'minutes',\r\n Hours = 'hours',\r\n Days = 'days',\r\n Weeks = 'weeks',\r\n Months = 'months',\r\n Years = 'years',\r\n}\r\n\r\nexport enum ColumnSettingType {\r\n Text = 'text',\r\n Numeric = 'numeric',\r\n Boolean = 'boolean',\r\n Date = 'date',\r\n}\r\n\r\nexport enum ColumnSettingNavigationType {\r\n DrillThrough = 'DrillThrough',\r\n Slicing = 'Slicing',\r\n External = 'External',\r\n}\r\n\r\nexport enum VisualType {\r\n Bar = 'Bar',\r\n Column = 'Column',\r\n Line = 'Line',\r\n Area = 'Area',\r\n Donut = 'Donut',\r\n DonutMulti = 'DonutMulti',\r\n Bubble = 'Bubble',\r\n Table = 'Table',\r\n PercentageChange = 'PercentageChange',\r\n NumberScalar = 'NumberScalar',\r\n LinearGauge = 'LinearGauge',\r\n Map = 'Map',\r\n Pie = 'Pie',\r\n Text = 'Text',\r\n}\r\n\r\nexport class ApiException extends Error {\r\n message: string;\r\n status: number;\r\n response: string;\r\n headers: { [key: string]: any; };\r\n result: any;\r\n protected isApiException = true;\r\n\r\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\r\n super();\r\n\r\n this.message = message;\r\n this.status = status;\r\n this.response = response;\r\n this.headers = headers;\r\n this.result = result;\r\n }\r\n\r\n static isApiException(obj: any): obj is ApiException {\r\n return obj.isApiException === true;\r\n }\r\n}\r\n\r\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): Observable {\r\n if (result !== null && result !== undefined) {\r\n return _observableThrow(result);\r\n } else {\r\n return _observableThrow(new ApiException(message, status, response, headers, null));\r\n }\r\n}\r\n\r\nfunction blobToText(blob: any): Observable {\r\n return new Observable((observer: any) => {\r\n if (!blob) {\r\n observer.next('');\r\n observer.complete();\r\n } else {\r\n let reader = new FileReader();\r\n reader.onload = event => {\r\n observer.next(( event.target).result);\r\n observer.complete();\r\n };\r\n reader.readAsText(blob);\r\n }\r\n });\r\n}\r\n","import {ErrorHandler, Injectable} from '@angular/core';\r\nimport {LogService} from '../services/client/log.service';\r\nimport {NotificationService} from '@progress/kendo-angular-notification';\r\n\r\n@Injectable()\r\nexport class CustomErrorHandler implements ErrorHandler {\r\n constructor(\r\n private logger: LogService,\r\n private notificationService: NotificationService) {\r\n }\r\n\r\n public handleError(error: any) {\r\n this.showNotification(error);\r\n this.writeErrorToLog(error);\r\n }\r\n\r\n private writeErrorToLog(error: any) {\r\n this.logger.logError(error, 'CustomErrorHandler');\r\n }\r\n\r\n private showNotification(error: any) {\r\n console.log('error: ', error);\r\n // this.notificationService.show({\r\n // content: error.httpErrorResponse ? error.httpErrorResponse.message : error.toString(),\r\n // hideAfter: environment.production ? 2000 : 10000,\r\n // position: {horizontal: 'right', vertical: 'bottom'},\r\n // animation: {type: 'fade', duration: 400},\r\n // type: {style: 'error', icon: true}\r\n // });\r\n }\r\n}\r\n","// TODO: Organize by theme into separate files\r\n\r\nimport {ChartTypeComponent, WidgetDataType} from '../enums/enums';\r\nimport addDays from 'date-fns/addDays';\r\nimport addWeeks from 'date-fns/addWeeks';\r\nimport addMonths from 'date-fns/addMonths';\r\nimport addYears from 'date-fns/addYears';\r\nimport {ReportControlVisualType, RequestQueryParameterComparisonOperator} from '../services/web-api-client';\r\nimport {Observable, Subject, Subscription} from 'rxjs';\r\nimport {format, isSameMonth, startOfDay, startOfMonth, startOfWeek, startOfYear} from 'date-fns';\r\nimport Millify from 'millify';\r\nimport {IntlService} from '@progress/kendo-angular-intl';\r\nimport {GmxBiWorks} from '../../typings';\r\nimport {Location} from '@angular/common';\r\nimport UrlQueryParams = GmxBiWorks.Routing.UrlQueryParams;\r\n\r\nexport function areObjectsEqual(objOne, objTwo) {\r\n return JSON.stringify(objOne) === JSON.stringify(objTwo);\r\n}\r\n\r\nexport function deepClone(obj: any): any {\r\n return obj ? JSON.parse(JSON.stringify(obj)) : null;\r\n}\r\n\r\nexport function textContains(text: string, token: string): boolean {\r\n return text.toLowerCase().includes(token);\r\n}\r\n\r\nexport function visualToChartType(visualType: string): ChartTypeComponent {\r\n switch (visualType) {\r\n case 'Bar':\r\n case 'Column':\r\n case 'Line':\r\n case 'Area':\r\n case 'Donut':\r\n case 'DonutMulti':\r\n case 'Bubble':\r\n case 'Pie':\r\n return ChartTypeComponent.SeriesChartComponent;\r\n case 'Table':\r\n return ChartTypeComponent.TableComponent;\r\n case 'PercentageChange':\r\n return ChartTypeComponent.PercentageChangeComponent;\r\n case 'NumberScalar':\r\n return ChartTypeComponent.NumberScalarComponent;\r\n case 'LinearGauge':\r\n return ChartTypeComponent.LinearGaugeComponent;\r\n case 'Map':\r\n return ChartTypeComponent.MapComponent;\r\n case 'Sparkline':\r\n return ChartTypeComponent.SparklineComponent;\r\n case 'Text':\r\n return ChartTypeComponent.TextComponent;\r\n }\r\n}\r\n\r\nexport function visualToChartBase(visualType: string): WidgetDataType {\r\n switch (visualType) {\r\n case 'Bar':\r\n case 'Column':\r\n case 'Line':\r\n case 'Area':\r\n case 'Donut':\r\n case 'DonutMulti':\r\n case 'Bubble':\r\n case 'PercentageChange':\r\n case 'NumberScalar':\r\n case 'LinearGauge':\r\n case 'Pie':\r\n return WidgetDataType.chart;\r\n case 'Table':\r\n case 'Map':\r\n case 'Text':\r\n return WidgetDataType.table;\r\n default:\r\n throw new Error('Unknown Widget Type - utilities.ts - function visualToChartBase(visualType: string)');\r\n }\r\n}\r\n\r\nexport function calculateRelativeDate(includeToday: boolean, dateValue: number, relativeDatePeriodValue: string, startOf = false) {\r\n let startRange: Date;\r\n\r\n // Get date as utc\r\n const today: Date = startOfDayGmt(getDateWithoutTimezoneDifference());\r\n\r\n // Determine the endRange based on today included\r\n let endRange: Date =\r\n addDays(today, includeToday ? 0 : -1);\r\n\r\n // Determine the startRange\r\n switch (relativeDatePeriodValue) {\r\n case 'Days':\r\n if (dateValue === -1) {\r\n endRange = addDays(endRange, -(--dateValue));\r\n startRange = endRange;\r\n } else {\r\n startRange = addDays(endRange, -(--dateValue));\r\n }\r\n break;\r\n case 'Weeks':\r\n startRange = addWeeks(endRange, -dateValue);\r\n if (startOf) {\r\n startRange = startOfWeek(startRange);\r\n }\r\n break;\r\n case 'Months':\r\n startRange = addMonths(endRange, -dateValue);\r\n if (startOf) {\r\n startRange = startOfMonth(startRange);\r\n }\r\n break;\r\n case 'Years':\r\n startRange = addYears(endRange, -dateValue);\r\n if (startOf) {\r\n startRange = startOfYear(startRange);\r\n }\r\n break;\r\n }\r\n if (dateValue < 0) {\r\n return [\r\n dateAsUtc(endRange).toISOString(),\r\n dateAsUtc(endOfDayGmt(startRange)).toISOString()\r\n ];\r\n } else {\r\n return [\r\n dateAsUtc(startRange).toISOString(),\r\n dateAsUtc(endOfDayGmt(endRange)).toISOString()\r\n ];\r\n }\r\n}\r\n\r\nexport function checkIfNumber(value: any): boolean {\r\n return value !== null && !isNaN(Number(value)) && value !== '';\r\n}\r\n\r\nexport function formatValue(value: any): number | Date | string {\r\n if (checkIfNumber(value)) {\r\n return Number(value);\r\n } else if (checkIfDate(value)) {\r\n return getDateWithoutTimezoneDifference(new Date(value));\r\n } else {\r\n return value;\r\n }\r\n}\r\n\r\nexport function formatNumberOrString(value: any): number | string {\r\n if (checkIfNumber(value)) {\r\n return Number(value);\r\n } else {\r\n if (value.toString().includes('placeholderIndex')) {\r\n return `placeholderIndex${value.split('placeholderIndex')[1]}`;\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport function checkIfDate(value: any): boolean {\r\n if (!value) {\r\n return false;\r\n }\r\n\r\n if (typeof value.getMonth === 'function') {\r\n return true;\r\n }\r\n\r\n const valueAsString = value.toString();\r\n\r\n return valueAsString.length > 6 && !isNaN(parseInt(valueAsString[0], 10)) && !isNaN(Date.parse(value));\r\n}\r\n\r\nexport function getComparisonOperator(visualType: string): RequestQueryParameterComparisonOperator {\r\n switch (visualType) {\r\n case ReportControlVisualType.MultiSelect:\r\n case ReportControlVisualType.AutoCompleteMulti:\r\n return RequestQueryParameterComparisonOperator.In;\r\n case ReportControlVisualType.SingleSelect:\r\n case ReportControlVisualType.AutoCompleteSingle:\r\n return RequestQueryParameterComparisonOperator.Equals;\r\n case ReportControlVisualType.DateRange:\r\n return RequestQueryParameterComparisonOperator.Between;\r\n }\r\n}\r\n\r\nexport async function blobToString(data) {\r\n return data instanceof Blob\r\n ? JSON.parse(await (new Response(data)).text())\r\n : data;\r\n}\r\n\r\n// Duplication from web-api because it's not exposed there\r\nexport function blobToText(blob: any): Observable {\r\n return new Observable((observer: any) => {\r\n if (blob && blob.type !== 'error') {\r\n const reader = new FileReader();\r\n // noinspection AnonymousFunctionJS\r\n reader.onload = (event) => {\r\n observer.next((event.target as any).result);\r\n observer.complete();\r\n };\r\n reader.readAsText(blob);\r\n } else {\r\n if (blob && blob.type === 'error') {\r\n console.log(blob);\r\n }\r\n\r\n observer.next('');\r\n observer.complete();\r\n }\r\n });\r\n}\r\n\r\nexport function dateAsUtc(date: any): Date {\r\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes()));\r\n}\r\n\r\nexport function startOfDayGmt(date: Date): Date {\r\n date.setHours(0, 0, 0, 0);\r\n return date;\r\n}\r\n\r\nexport function endOfDayGmt(date: Date): Date {\r\n date.setHours(23, 59, 59, 999);\r\n return date;\r\n}\r\n\r\n// Strip timezone from date.\r\n// If date not provided using NOW\r\nexport function getDateWithoutTimezoneDifference(date?: Date): Date {\r\n date = date ? date : new Date();\r\n date.setMinutes(date.getMinutes() + date.getTimezoneOffset());\r\n return date;\r\n}\r\n\r\nexport function destroySubject(subject: Subject) {\r\n if (subject) {\r\n subject.next();\r\n subject.complete();\r\n }\r\n}\r\n\r\nexport function unsubscribeSubscription(subscription: Subscription) {\r\n if (subscription) {\r\n subscription.unsubscribe();\r\n }\r\n}\r\n\r\nexport function getNameInitials(fullName: string): string {\r\n const initialArr = fullName.split(' ').map((n) => n[0]);\r\n const init = (initialArr.length > 1) ? `${initialArr[0]}${initialArr[initialArr.length - 1]}` : initialArr[0];\r\n return init.toUpperCase();\r\n}\r\n\r\nexport function buildDateControlSummary(start, end): string {\r\n start = start instanceof Date\r\n ? start\r\n : startOfDayGmt(getDateWithoutTimezoneDifference(new Date(start)));\r\n end = end instanceof Date\r\n ? startOfDayGmt(end)\r\n : startOfDayGmt(getDateWithoutTimezoneDifference(new Date(end)));\r\n\r\n if (areObjectsEqual(start, end)) {\r\n return `${format(start, ['dd'].toString())} ${format(start, ['MMM'].toString())} ${format(start, ['yyyy'].toString())}`;\r\n }\r\n\r\n if (isSameMonth(start, end)) {\r\n return `${format(start, ['dd'].toString())} - ${format(end, ['dd'].toString())} ` +\r\n `${format(end, ['MMM'].toString())} ${format(end, ['yyyy'].toString())}`;\r\n }\r\n\r\n return `${format(start, ['dd'].toString())} ${format(start, ['MMM'].toString())} ${format(start, ['yyyy'].toString())} - ` +\r\n `${format(end, ['dd'].toString())} ${format(end, ['MMM'].toString())} ${format(end, ['yyyy'].toString())}`;\r\n}\r\n\r\nexport function formatNumericValue(value: number, intl: IntlService, valueFormat: string = null, shouldMillify: boolean = true): string {\r\n if (value == null) {\r\n return null;\r\n }\r\n\r\n if (isNaN(value)) {\r\n return 'NaN';\r\n }\r\n\r\n if (valueFormat) {\r\n valueFormat = valueFormat.toUpperCase();\r\n\r\n if (valueFormat.endsWith('M')) {\r\n shouldMillify = true;\r\n valueFormat = valueFormat.substr(0, valueFormat.length - 1);\r\n }\r\n }\r\n\r\n const formattedValue = intl.formatNumber(value, valueFormat || 'n0');\r\n\r\n if (!shouldMillify || valueFormat.startsWith('P')) {\r\n return formattedValue;\r\n }\r\n\r\n const prefix = formattedValue.match(/^\\D+/);\r\n const suffix = formattedValue.match(/\\D+$/);\r\n\r\n return `${(prefix ? prefix[0] : '')}${Millify(value)}${(suffix ? suffix[0] : '')}`;\r\n}\r\n\r\nexport function indexesOfOccurrences(source: string, find: string): number[] {\r\n if (!source) {\r\n return [];\r\n }\r\n // if find is empty string return all indexes.\r\n if (!find) {\r\n return source.split('').map((_, i) => i);\r\n }\r\n const result = [];\r\n for (let i = 0; i < source.length; ++i) {\r\n // If you want to search case insensitive use\r\n if (source.substring(i, i + find.length).toLowerCase() === find.toLowerCase()) {\r\n // if (source.substring(i, i + find.length) == find) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nexport function getCurrentDateAndTime(): string {\r\n const today = new Date();\r\n const date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate();\r\n const time = today.getHours() + ':' + today.getMinutes() + ':' + today.getSeconds();\r\n return `${date} ${time}`;\r\n}\r\n\r\nexport function replaceUrl(urlParams: string, currentUrl: string, location: Location) {\r\n const newUrl =\r\n urlParams.length === 0\r\n ? `${currentUrl}`\r\n : `${currentUrl}?${urlParams}`;\r\n location.replaceState(newUrl);\r\n}\r\n\r\nexport function createUrlParams(urlQueryParams: UrlQueryParams[]): string {\r\n return urlQueryParams\r\n .map((param) => {\r\n let newUrl = `${param.controlTemplateId}=${param.values.join('|')}`;\r\n // newUrl = newUrl.replace(/:/g, '');\r\n return newUrl;\r\n }\r\n ).join('&');\r\n}\r\n\r\n\r\nexport function getTooltipCategoryFormat(value): string {\r\n if (checkIfDate(value)) {\r\n return value.toString() === startOfDay(value).toString()\r\n ? value.toLocaleDateString()\r\n : value.toLocaleString();\r\n } else {\r\n return value;\r\n }\r\n}\r\n\r\nexport function sortAscending(arr: any[], prop: string): any[] {\r\n return deepClone(arr.sort((a, b) => a[prop] - b[prop]));\r\n}\r\n\r\nexport function sortDescending(arr: any[], prop: string): any[] {\r\n return deepClone(arr.sort((a, b) => b[prop] - a[prop]));\r\n}\r\n\r\n// tslint:disable-next-line:no-shadowed-variable\r\nexport function formatDataValue(intl: IntlService, value: number, format: string = null, shouldMillify: boolean = true): string {\r\n return formatNumericValue(value, intl, format, shouldMillify);\r\n}\r\n","Drag widget\r\n\r\n\r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {{ widget.title }}\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","// Angular Imports\r\nimport {fadeInAnimation} from '../../animations';\r\nimport {Component, ElementRef, NgZone, OnInit, ViewChild} from '@angular/core';\r\nimport {LayoutClientService} from '../../services/client/layout-client.service';\r\nimport {SlimWidgetMetaData} from '../../services/web-api-client';\r\nimport {deepClone} from '../../utils/utilities';\r\n\r\n@Component({\r\n selector: 'gmx-bi-add-widget',\r\n templateUrl: './add-widget.component.html',\r\n styleUrls: ['./add-widget.component.scss'],\r\n animations: [fadeInAnimation],\r\n host: {'[@fadeInAnimation]': ''}\r\n})\r\nexport class AddWidgetComponent implements OnInit {\r\n @ViewChild('widgetTitleInput') widgetTitleInput: ElementRef;\r\n public loading = true;\r\n public displayTitle = true;\r\n public clickedWidgetId: number;\r\n public newTitleName: string;\r\n\r\n constructor(\r\n private layoutClientService: LayoutClientService,\r\n private ngZone: NgZone) {\r\n }\r\n\r\n get lastTitlesSavedToDb(): SlimWidgetMetaData[] {\r\n return this.layoutClientService.lastTitlesSavedToDb;\r\n }\r\n\r\n set lastTitlesSavedToDb(value: SlimWidgetMetaData[]) {\r\n this.layoutClientService.lastTitlesSavedToDb = value;\r\n }\r\n\r\n get completeWidgetList() {\r\n return this.layoutClientService.completeWidgetList;\r\n }\r\n\r\n set completeWidgetList(value: any) {\r\n this.layoutClientService.completeWidgetList = value;\r\n }\r\n\r\n get changedSlimWidgets(): SlimWidgetMetaData[] {\r\n return this.layoutClientService.changedSlimWidgets;\r\n }\r\n\r\n public canEditTitle(widgetId: number) {\r\n return widgetId === this.clickedWidgetId;\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.completeWidgetList) {\r\n this.saveLayoutState();\r\n this.loading = false;\r\n } else {\r\n this.layoutClientService.getWidgetList()\r\n .then((loadingCompleted) => {\r\n if (loadingCompleted) {\r\n this.saveLayoutState();\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public drag(widget): void {\r\n // widget.dataTransfer.setData('visualType', widget.target.id);\r\n widget.dataTransfer.setData('widgetId', widget.target.getAttribute('widgetId'));\r\n widget.dataTransfer.setData('visualType', widget.target.getAttribute('visualType'));\r\n }\r\n\r\n public trackByWidgetFn(index, item): void {\r\n return item.id;\r\n }\r\n\r\n public saveTitle(saveTitle: boolean): void {\r\n if (saveTitle) {\r\n this.saveTitleToWidgetList();\r\n }\r\n this.clickedWidgetId = null;\r\n this.newTitleName = null;\r\n }\r\n\r\n public showTitleEdit(widgetId: number): void {\r\n this.newTitleName = null;\r\n this.clickedWidgetId = widgetId;\r\n this.ngZone.runOutsideAngular(() => {\r\n setTimeout(() => this.widgetTitleInput.nativeElement.focus());\r\n });\r\n }\r\n\r\n private saveTitleToWidgetList(): void {\r\n const changedSlimWidget = this.completeWidgetList\r\n .find((widget) => widget.widgetId === this.clickedWidgetId);\r\n changedSlimWidget.title = this.newTitleName;\r\n this.changedSlimWidgets.push(changedSlimWidget);\r\n }\r\n\r\n private saveLayoutState() {\r\n this.lastTitlesSavedToDb = deepClone(this.completeWidgetList);\r\n }\r\n\r\n private cancelGridChanges() {\r\n this.completeWidgetList = deepClone(this.lastTitlesSavedToDb);\r\n }\r\n}\r\n","\r\n\r\n \r\n\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n

{{ item.cols }}x{{ item.rows }} ({{ item.x }},{{ item.y }})

\r\n \r\n
#{{ item['inputs'][0]['uuid'] }}
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n","import {ChangeDetectorRef, Component, HostListener, Inject, NgZone, OnDestroy, OnInit, QueryList, ViewChildren} from '@angular/core';\r\nimport {NavigationClientService} from '../../services/client/navigation-client.service';\r\nimport {WidgetComponent} from '../../widgets/widget/widget.component';\r\nimport {Observable, of, Subject} from 'rxjs';\r\nimport {CompactType, DisplayGrid, GridsterConfig, GridsterItem, GridsterItemComponentInterface, GridType} from 'angular-gridster2';\r\nimport {LayoutClientService} from '../../services/client/layout-client.service';\r\nimport {PermissionsService} from '../../services/client/permissions.service';\r\nimport {DOCUMENT} from '@angular/common';\r\nimport {NavigationEnd, Router} from '@angular/router';\r\nimport {ThemesService} from '../../services/themes.service';\r\nimport {ReportWidget, SlimWidgetMetaData} from '../../services/web-api-client';\r\nimport {environment} from '../../../environments/environment';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {deepClone, destroySubject} from '../../utils/utilities';\r\nimport {GRID_SIZE} from '../../configs/grid-settings.config';\r\n\r\n@Component({\r\n selector: 'gmx-bi-content-page',\r\n templateUrl: './content-page.component.html',\r\n styleUrls: ['./content-page.component.scss']\r\n})\r\nexport class ContentPageComponent implements OnInit, OnDestroy {\r\n @ViewChildren('ndcDynamicComponent') ndcDynamicComponent: QueryList;\r\n public widgetComponent = WidgetComponent;\r\n public customizeMode = false;\r\n public inProductionMode: boolean;\r\n public finishedLoadingControls: boolean;\r\n // noinspection JSUnusedGlobalSymbols\r\n public changedWidgetTitle = '';\r\n private controls$ = new Subject();\r\n private layoutLastSavedState: GridsterItem[] = [];\r\n private removeWidgetList = [];\r\n private connectedWidgets: any[] = [];\r\n // noinspection JSUnusedLocalSymbols\r\n private changedNameWidgetId: number;\r\n private gridHeight = 0;\r\n private gridWidth = 0;\r\n\r\n constructor(\r\n public navigationClientService: NavigationClientService,\r\n private cdr: ChangeDetectorRef,\r\n private layoutClientService: LayoutClientService,\r\n private permissionsService: PermissionsService,\r\n @Inject(DOCUMENT) document,\r\n private ngZone: NgZone,\r\n private router: Router,\r\n public themesService: ThemesService\r\n ) {\r\n router.events.subscribe((val) => {\r\n // scroll to top on route change\r\n if (val instanceof NavigationEnd) {\r\n document.querySelector('#main-content-container').scrollTo(0, 0);\r\n }\r\n });\r\n }\r\n\r\n //#region Getters/Setters\r\n\r\n get gridsterItemsObservable() {\r\n return this.layoutClientService.gridsterItemsObservable;\r\n }\r\n\r\n set gridsterItemsObservable(value: Observable) {\r\n this.layoutClientService.gridsterItemsObservable = value;\r\n }\r\n\r\n get gridsterItems() {\r\n return this.layoutClientService.gridsterItems;\r\n }\r\n\r\n set gridsterItems(value: GridsterItem[]) {\r\n this.layoutClientService.gridsterItems = value;\r\n }\r\n\r\n get options(): GridsterConfig {\r\n return this.layoutClientService.options;\r\n }\r\n\r\n set options(value: GridsterConfig) {\r\n this.layoutClientService.options = value;\r\n }\r\n\r\n get error() {\r\n return this.layoutClientService.error;\r\n }\r\n\r\n set error(value) {\r\n this.layoutClientService.error = value;\r\n }\r\n\r\n get controls() {\r\n return this.layoutClientService.controls;\r\n }\r\n\r\n get lastTitlesSavedToDb(): SlimWidgetMetaData[] {\r\n return this.layoutClientService.lastTitlesSavedToDb;\r\n }\r\n\r\n set lastTitlesSavedToDb(value: SlimWidgetMetaData[]) {\r\n this.layoutClientService.lastTitlesSavedToDb = value;\r\n }\r\n\r\n get doesReportExist(): boolean {\r\n return this.layoutClientService.doesReportExist;\r\n }\r\n\r\n get canCustomizeReport(): boolean {\r\n return this.permissionsService.canCustomizeReport;\r\n }\r\n\r\n @HostListener('resize', ['$event'])\r\n onResize(event) {\r\n if (event.detail.height !== this.gridHeight || event.detail.width !== this.gridWidth) {\r\n this.gridHeight = event.detail.height;\r\n this.gridWidth = event.detail.width;\r\n this.triggerGridsterOptionsChanged();\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Angular LifeCycle Functions\r\n\r\n public ngOnInit(): void {\r\n this.inProductionMode = environment.production;\r\n this.error = null;\r\n\r\n this.layoutClientService.controlsFinished\r\n .pipe(takeUntil(this.controls$))\r\n .subscribe((finishedLoadingControls) => {\r\n this.finishedLoadingControls = finishedLoadingControls;\r\n if (finishedLoadingControls) {\r\n this.loadOptions();\r\n this.triggerGridsterOptionsChanged();\r\n }\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.controls$);\r\n }\r\n\r\n //#endregion\r\n\r\n public removeItem(event, item): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.removeWidgetList.push(item);\r\n const connectedWidget =\r\n this.connectedWidgets.find((widget) => widget.widgetId === item.inputs[0].widgetId);\r\n if (connectedWidget) {\r\n this.connectedWidgets.splice(connectedWidget, 1);\r\n }\r\n this.gridsterItems.splice(this.gridsterItems.indexOf(item), 1);\r\n\r\n this.gridsterItemsObservable = of(this.gridsterItems);\r\n // setTimeout(() => {\r\n // this.changedOptions();\r\n // });\r\n }\r\n\r\n // private changedSlimWidget(): void {\r\n // if (this.layoutClientService.changedSlimWidgets.length > 0) {\r\n // this.layoutClientService.changedSlimWidgets.forEach((slimWidget) => {\r\n // const widget: GridsterItem = this.gridsterItems.find((item) =>\r\n // slimWidget.widgetId === item.inputs[0].widgetId);\r\n // if (widget) {\r\n // widget.inputs[0].title = slimWidget.title;\r\n // this.updateWidgetTitles(slimWidget.widgetId, slimWidget.title);\r\n // }\r\n // });\r\n // this.saveLayoutState();\r\n // this.updateLastSavedTitlesToDb();\r\n // }\r\n // }\r\n\r\n public enterCustomizeMode(): void {\r\n this.saveLayoutState();\r\n this.customizeMode = true;\r\n this.changeGridsterOptions(true);\r\n }\r\n\r\n public cancelGridEdit(): void {\r\n this.customizeMode = false;\r\n\r\n // cancelGridChanges\r\n this.removeWidgetList = [];\r\n this.connectedWidgets = [];\r\n this.gridsterItems = deepClone(this.layoutLastSavedState);\r\n this.gridsterItemsObservable = of(this.gridsterItems);\r\n\r\n this.changeGridsterOptions(false);\r\n }\r\n\r\n public saveGridEdit(): void {\r\n this.customizeMode = false;\r\n this.saveGridToDb();\r\n this.changeGridsterOptions(false);\r\n }\r\n\r\n public triggerGridsterOptionsChanged(): void {\r\n if (this.options.api && this.options.api.optionsChanged) {\r\n this.options.api.optionsChanged();\r\n }\r\n }\r\n\r\n public trackByGridFn(index, item): any {\r\n return item;\r\n }\r\n\r\n public trackByComponentFn(index, item): any {\r\n return item;\r\n }\r\n\r\n // private updateLastSavedTitlesToDb(): void {\r\n // this.lastTitlesSavedToDb = deepClone(this.completeWidgetList);\r\n // }\r\n\r\n private changeGridsterOptions(enableEdit: boolean) {\r\n if (this.options) {\r\n this.options.draggable.enabled = enableEdit;\r\n this.options.resizable.enabled = enableEdit;\r\n this.triggerGridsterOptionsChanged();\r\n }\r\n }\r\n\r\n private updateWidgetTitles(widgetId: number, title: string): void {\r\n this.layoutClientService.updateWidget(\r\n widgetId,\r\n {\r\n name: title,\r\n minimumColumnSpan: 1,\r\n minimumRowSpan: 1\r\n }\r\n );\r\n }\r\n\r\n private emptyCellDropCallback(event, item: GridsterItem): void {\r\n event.preventDefault();\r\n\r\n const widget = {\r\n widgetId: event.dataTransfer.getData('widgetid'),\r\n column: item.x,\r\n row: item.y\r\n };\r\n\r\n if (!this.connectedWidgets.find((_widget) => widget.widgetId === _widget.widgetId)) {\r\n this.connectedWidgets.push(\r\n {\r\n widgetId: widget.widgetId,\r\n reportId: this.layoutClientService.selectedMenuItem.contentPageId,\r\n column: widget.column,\r\n columnSpan: item.cols,\r\n row: widget.row,\r\n rowSpan: item.rows\r\n }\r\n );\r\n this.layoutClientService.pushWidgetToGrid(widget as ReportWidget);\r\n }\r\n }\r\n\r\n private loadOptions(): any {\r\n\r\n this.options = {\r\n disableScrollHorizontal: true,\r\n disableScrollVertical: true,\r\n disableWarnings: false,\r\n displayGrid: DisplayGrid.OnDragAndResize,\r\n draggable: {\r\n delayStart: 0,\r\n enabled: false,\r\n ignoreContent: false,\r\n dragHandleClass: 'cursor-hand',\r\n },\r\n emptyCellDropCallback: this.emptyCellDropCallback.bind(this),\r\n enableEmptyCellDrop: true,\r\n gridType: GridType.ScrollVertical,\r\n itemResizeCallback: this.cellSizeChanged,\r\n margin: GRID_SIZE.margin,\r\n outerMargin: true,\r\n outerMarginTop: GRID_SIZE.outerMargin,\r\n outerMarginBottom: GRID_SIZE.outerMargin,\r\n outerMarginLeft: GRID_SIZE.outerMargin,\r\n outerMarginRight: GRID_SIZE.outerMargin,\r\n maxCols: GRID_SIZE.cellsPerRow,\r\n maxRows: 2500,\r\n minCols: GRID_SIZE.cellsPerRow,\r\n minRows: 30,\r\n mobileBreakpoint: 768,\r\n scrollToNewItems: false,\r\n setGridSize: false,\r\n swap: true,\r\n pushItems: true,\r\n resizable: {\r\n enabled: false\r\n },\r\n\r\n compactType: CompactType.None,\r\n\r\n useTransformPositioning: true,\r\n maxItemCols: GRID_SIZE.cellsPerRow,\r\n minItemCols: 1,\r\n maxItemRows: 100,\r\n minItemRows: 1,\r\n maxItemArea: GRID_SIZE.cellsPerRow * GRID_SIZE.cellsPerRow,\r\n minItemArea: 1,\r\n defaultItemCols: 1,\r\n defaultItemRows: 1,\r\n keepFixedHeightInMobile: false,\r\n keepFixedWidthInMobile: false,\r\n scrollSensitivity: 10,\r\n scrollSpeed: 20,\r\n enableEmptyCellClick: false,\r\n enableEmptyCellContextMenu: false,\r\n enableEmptyCellDrag: false,\r\n enableOccupiedCellDrop: false,\r\n emptyCellDragMaxCols: 50,\r\n emptyCellDragMaxRows: 50,\r\n ignoreMarginInRow: false,\r\n disablePushOnDrag: false,\r\n disablePushOnResize: false,\r\n pushDirections: {north: true, east: true, south: true, west: true},\r\n pushResizeItems: false,\r\n disableWindowResize: true\r\n };\r\n }\r\n\r\n private cellSizeChanged(item: GridsterItem, itemComponent: GridsterItemComponentInterface): void {\r\n item.widgetHeight = itemComponent.height;\r\n item.widgetWidth = itemComponent.width;\r\n const totalVisuals = item.inputs.length;\r\n item.inputs.forEach((input: any) => {\r\n const header = itemComponent.el.querySelector('mdb-card-header');\r\n const headerHeight = header ? header.offsetHeight : 0;\r\n // TODO figure out how to calculate this\r\n input.height = itemComponent.height / totalVisuals - headerHeight;\r\n input.width = itemComponent.width / totalVisuals;\r\n });\r\n }\r\n\r\n // noinspection FunctionWithMoreThanThreeNegationsJS\r\n private saveGridToDb(): void {\r\n const reportWidgetsCreationData = [];\r\n for (let i = 0; i < this.layoutLastSavedState.length; i++) {\r\n const lastSavedItem = this.layoutLastSavedState[i];\r\n const currentItem = this.gridsterItems[i];\r\n if (currentItem && lastSavedItem) {\r\n // noinspection OverlyComplexBooleanExpressionJS\r\n if (currentItem.x !== lastSavedItem.x ||\r\n currentItem.y !== lastSavedItem.y ||\r\n currentItem.cols !== lastSavedItem.cols ||\r\n currentItem.rows !== lastSavedItem.rows) {\r\n reportWidgetsCreationData.push({\r\n widgetId: currentItem.inputs[0].widgetId,\r\n reportId: this.layoutClientService.selectedMenuItem.contentPageId,\r\n column: currentItem.x,\r\n columnSpan: currentItem.cols,\r\n row: currentItem.y,\r\n rowSpan: currentItem.rows\r\n });\r\n }\r\n }\r\n }\r\n if (reportWidgetsCreationData.length > 0) {\r\n this.layoutClientService.saveGridInDb(reportWidgetsCreationData);\r\n }\r\n if (this.removeWidgetList.length > 0) {\r\n this.ngZone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n this.removeWidgetList.forEach(widget =>\r\n this.layoutClientService.disconnectWidgetFromReport(\r\n widget.inputs[0].widgetId,\r\n this.layoutClientService.selectedMenuItem.contentPageId));\r\n this.removeWidgetList = [];\r\n });\r\n });\r\n }\r\n if (this.connectedWidgets.length > 0) {\r\n this.connectedWidgets.forEach((widget) => {\r\n this.layoutClientService.connectWidgetToReport(widget);\r\n });\r\n this.connectedWidgets = [];\r\n }\r\n\r\n this.gridsterItemsObservable = of(this.gridsterItems);\r\n }\r\n\r\n private saveLayoutState(): void {\r\n this.layoutLastSavedState = deepClone(this.gridsterItems);\r\n this.gridsterItemsObservable = of(this.gridsterItems);\r\n }\r\n}\r\n","// Angular\r\nimport {NgModule} from '@angular/core';\r\n// 3rd Party Libraries\r\nimport {DropDownsModule} from '@progress/kendo-angular-dropdowns';\r\nimport {ContextMenuModule} from '@progress/kendo-angular-menu';\r\nimport {LayoutModule} from '@progress/kendo-angular-layout';\r\n\r\n@NgModule({\r\n imports: [DropDownsModule, ContextMenuModule, LayoutModule],\r\n exports: [DropDownsModule, ContextMenuModule, LayoutModule]\r\n})\r\nexport class KendoContentModule {\r\n}\r\n","\r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","// Angular\r\nimport {Component} from '@angular/core';\r\nimport {UserClientService} from '../../../services/client/user-client.service';\r\n\r\n@Component({\r\n selector: 'gmx-bi-app-container',\r\n templateUrl: './app-container.component.html',\r\n styleUrls: ['./app-container.component.scss']\r\n})\r\nexport class AppContainerComponent {\r\n constructor(\r\n public userClientService: UserClientService) {\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n","import {Component, OnDestroy} from '@angular/core';\r\nimport {BreakpointObserver, BreakpointState} from '@angular/cdk/layout';\r\nimport {Observable, of, Subject} from 'rxjs';\r\nimport {NavigationClientService} from '../../../services/client/navigation-client.service';\r\nimport {BreakpointService} from '../../../services/breakpoint.service';\r\nimport {ThemesService} from '../../../services/themes.service';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {destroySubject} from '../../../utils/utilities';\r\n\r\n@Component({\r\n selector: 'gmx-bi-layout',\r\n templateUrl: './layout.component.html',\r\n styleUrls: ['./layout.component.scss']\r\n})\r\nexport class LayoutComponent implements OnDestroy {\r\n public isSmallScreen: Observable;\r\n private onDestroy$: Subject = new Subject();\r\n\r\n constructor(\r\n private breakpointObserver: BreakpointObserver,\r\n private navigationClientService: NavigationClientService,\r\n public breakpointService: BreakpointService,\r\n public themesService: ThemesService\r\n ) {\r\n this.breakpointObserver.observe(['(max-width: 1024px)'])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((state: BreakpointState) => {\r\n this.isSmallScreen = of(state.matches);\r\n this.breakpointService.isSmallScreen = state.matches;\r\n });\r\n }\r\n\r\n get isNavigationDrawerHidden() {\r\n return this.navigationClientService.isNavigationDrawerHidden;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destroySubject(this.onDestroy$);\r\n }\r\n}\r\n","\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
  • \r\n \r\n
  • \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n","// Angular\r\nimport {\r\n AfterViewChecked,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n Renderer2,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\n// 3rd Party Libraries\r\nimport {PopoverDirective, SidenavComponent} from 'ng-uikit-pro-standard';\r\n// Gmx Services\r\nimport {ListenersService} from '../../../services/listeners.service';\r\n// Gmx Utilities\r\nimport {deepClone, textContains} from '../../../utils/utilities';\r\n// Gmx Animations\r\nimport {fadeInAnimation} from '../../../animations';\r\nimport {NavigationClientService} from '../../../services/client/navigation-client.service';\r\nimport {RoutingService} from '../../../services/routing.service';\r\nimport {GmxBiWorks} from '../../../../typings';\r\nimport {TreeNode} from '../../../services/web-api-client';\r\nimport {LayoutClientService} from '../../../services/client/layout-client.service';\r\nimport {ThemesService} from '../../../services/themes.service';\r\nimport {AdminService} from '../../../services/admin.service';\r\nimport MenuItemModel = GmxBiWorks.Menu.MenuItemModel;\r\n\r\n@Component({\r\n selector: 'gmx-bi-navigation-drawer',\r\n templateUrl: './navigation-drawer.component.html',\r\n styleUrls: ['./navigation-drawer.component.scss'],\r\n animations: [fadeInAnimation],\r\n host: {'[@fadeInAnimation]': ''}\r\n})\r\nexport class NavigationDrawerComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\r\n @ViewChild('searchBar') searchBarInput: ElementRef;\r\n @ViewChild('cancelSearchButton') cancelSearchButton: ElementRef;\r\n @ViewChild('sidenav') sidenav: SidenavComponent;\r\n @ViewChildren(PopoverDirective) allPopovers: QueryList;\r\n @Input() navDrawerBreakpoint: boolean;\r\n private menuWasSearched = false;\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n private elemRef: ElementRef,\r\n private listenersService: ListenersService,\r\n private cdr: ChangeDetectorRef,\r\n private navigationClientService: NavigationClientService,\r\n private layoutClientService: LayoutClientService,\r\n private routingService: RoutingService,\r\n public themesService: ThemesService,\r\n public adminService: AdminService\r\n ) {\r\n }\r\n\r\n //#region Getters/Setters\r\n\r\n get menuDataExists(): boolean {\r\n return this.navigationClientService.menuData !== null;\r\n }\r\n\r\n get menuData() {\r\n return this.navigationClientService.menuData;\r\n }\r\n\r\n get filteredMenuData() {\r\n return this.navigationClientService.filteredMenuData;\r\n }\r\n\r\n set filteredMenuData(value: GmxBiWorks.Menu.MenuItemModel[]) {\r\n this.navigationClientService.filteredMenuData = value;\r\n }\r\n\r\n get isNavigationDrawerHidden() {\r\n return this.navigationClientService.isNavigationDrawerHidden;\r\n }\r\n\r\n set isNavigationDrawerHidden(value) {\r\n this.navigationClientService.isNavigationDrawerHidden = value;\r\n }\r\n\r\n // noinspection FunctionNamingConventionJS\r\n get initialNavigationDrawerViewCheckCompleted() {\r\n return this.navigationClientService.initialNavigationDrawerViewCheckCompleted;\r\n }\r\n\r\n // noinspection FunctionNamingConventionJS\r\n set initialNavigationDrawerViewCheckCompleted(value) {\r\n this.navigationClientService.initialNavigationDrawerViewCheckCompleted = value;\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Static functions\r\n\r\n private static getAllCardHeaders(element: HTMLElement): NodeList {\r\n return element.querySelectorAll('mdb-accordion-item-head > div > a');\r\n }\r\n\r\n private static getAllAccordionItems(element: HTMLElement): NodeList {\r\n return element.querySelectorAll('mdb-accordion-item');\r\n }\r\n\r\n private static performNavItemHeaderClick(element: any): void {\r\n if (element instanceof HTMLElement) {\r\n (element.querySelector('mdb-accordion-item-head > div > a') as HTMLElement).click();\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n public ngOnInit(): void {\r\n if (this.menuData) {\r\n this.filterMenu();\r\n }\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n // this.detectMenuChanges();\r\n }\r\n\r\n // When loading the component - this handles the ui selection of the menu\r\n public ngAfterViewChecked(): void {\r\n if (this.navigationClientService.menuItemIsSelected && !this.initialNavigationDrawerViewCheckCompleted) {\r\n // this opens all headers on load\r\n // this.openAllItemCardHeader();\r\n\r\n this.openSelectedItemCardHeader();\r\n if (this.cdr) {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n }\r\n\r\n public filterMenu(keyClicked: KeyboardEvent = null, canceledSearch = false): void {\r\n if (keyClicked && keyClicked.key === 'Escape' || canceledSearch) {\r\n this.searchBarInput.nativeElement.value = '';\r\n }\r\n this.menuWasSearched = this.performFiltering();\r\n }\r\n\r\n public changeNavigationSize(): void {\r\n this.isNavigationDrawerHidden = !this.isNavigationDrawerHidden;\r\n this.sidenav.toggleSlim();\r\n }\r\n\r\n public openNavPane(): void {\r\n if (this.isNavigationDrawerHidden) {\r\n this.changeNavigationSize();\r\n }\r\n }\r\n\r\n public navigateTo(route, itemHead?: any): void {\r\n if (route) {\r\n this.routingService.navigateTo(route);\r\n }\r\n if (itemHead) {\r\n this.closeOtherCardHeaders(itemHead);\r\n }\r\n if (this.navDrawerBreakpoint && !itemHead) {\r\n this.sidenav.hide();\r\n }\r\n }\r\n\r\n public trackByItemFn(index, item) {\r\n return item.name;\r\n }\r\n\r\n public trackByBodyFn(index, item) {\r\n return item.name;\r\n }\r\n\r\n public trackByPopoverFn(index, item) {\r\n return item.name;\r\n }\r\n\r\n public changeInnerChildIcon(childElement: HTMLAnchorElement): void {\r\n if (childElement.firstElementChild.classList.contains('inner-child-active')) {\r\n this.renderer.removeClass(childElement.firstElementChild, 'inner-child-active');\r\n } else {\r\n this.renderer.addClass(childElement.firstElementChild, 'inner-child-active');\r\n }\r\n }\r\n\r\n private detectMenuChanges(): void {\r\n const config = {childList: true};\r\n\r\n const observer = new MutationObserver((mutations: MutationRecord[]) => {\r\n this.onMenuContentChange();\r\n });\r\n\r\n const sideNav = document.querySelector('.accordion.md-accordion');\r\n\r\n if (sideNav) {\r\n observer.observe(sideNav, config);\r\n }\r\n }\r\n\r\n private onMenuContentChange(): void {\r\n if (this.menuWasSearched) {\r\n NavigationDrawerComponent.getAllCardHeaders(this.elemRef.nativeElement).forEach((item: HTMLElement) => item.click());\r\n }\r\n this.menuWasSearched = false;\r\n }\r\n\r\n private performFiltering(): boolean {\r\n const searchValue: string = this.searchBarInput.nativeElement.value.toLowerCase();\r\n const isFiltered = searchValue.length > 0;\r\n\r\n this.showSearchButton(isFiltered);\r\n\r\n if (isFiltered) {\r\n this.filteredMenuData = this.recursiveSearchInMenu(\r\n deepClone(this.menuData),\r\n searchValue\r\n );\r\n } else {\r\n this.filteredMenuData = deepClone(this.menuData);\r\n }\r\n setTimeout(() => this.openAllItemCardHeader(), 10);\r\n return isFiltered;\r\n }\r\n\r\n private recursiveSearchInMenu(menuItems: TreeNode[], searchValue: string): MenuItemModel[] {\r\n const matchingMenuItems: MenuItemModel[] = [];\r\n\r\n menuItems.forEach((menuItem: any) => {\r\n if (textContains(menuItem.name, searchValue)) {\r\n matchingMenuItems.push(menuItem);\r\n } else {\r\n const matchingChildren = this.recursiveSearchInMenu(menuItem.children, searchValue);\r\n\r\n if (matchingChildren.length > 0) {\r\n menuItem.children = matchingChildren;\r\n matchingMenuItems.push(menuItem);\r\n }\r\n }\r\n });\r\n\r\n return matchingMenuItems;\r\n }\r\n\r\n private showSearchButton(showSearch: boolean): void {\r\n if (showSearch) {\r\n this.renderer.removeClass(this.cancelSearchButton.nativeElement, 'hide-cancel-button');\r\n } else {\r\n this.renderer.addClass(this.cancelSearchButton.nativeElement, 'hide-cancel-button');\r\n }\r\n }\r\n\r\n private openAllItemCardHeader(): void {\r\n NavigationDrawerComponent\r\n .getAllAccordionItems(this.elemRef.nativeElement)\r\n .forEach((item: HTMLElement) => {\r\n if (item.querySelectorAll('div.card.is-collapsed').length > 0) {\r\n NavigationDrawerComponent.performNavItemHeaderClick(item);\r\n this.initialNavigationDrawerViewCheckCompleted = true;\r\n }\r\n });\r\n }\r\n\r\n private closeOtherCardHeaders(itemHead: any): void {\r\n NavigationDrawerComponent\r\n .getAllAccordionItems(this.elemRef.nativeElement)\r\n .forEach((item: HTMLElement) => {\r\n if (item.querySelectorAll('div.card.active').length > 0) {\r\n NavigationDrawerComponent.performNavItemHeaderClick(item);\r\n this.initialNavigationDrawerViewCheckCompleted = true;\r\n }\r\n });\r\n NavigationDrawerComponent.performNavItemHeaderClick(itemHead.sbItem.body.bodyEl);\r\n }\r\n\r\n private openSelectedItemCardHeader(): void {\r\n NavigationDrawerComponent.getAllAccordionItems(this.elemRef.nativeElement).forEach((item: HTMLElement) => {\r\n const card = item.querySelector('.card');\r\n if (card.querySelector('.active-navigation-head')) {\r\n NavigationDrawerComponent.performNavItemHeaderClick(card);\r\n }\r\n if (item.querySelector('.active-navigation-item')) {\r\n NavigationDrawerComponent.performNavItemHeaderClick(item);\r\n }\r\n this.initialNavigationDrawerViewCheckCompleted = true;\r\n });\r\n }\r\n}\r\n","
    \r\n\r\n
    \r\n
    \r\n \r\n \"BI.WORKS\"\r\n\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n \r\n {{ layoutClientService.layoutTitle }}\r\n - Dark Admin Mode\r\n \r\n\r\n \r\n\r\n
      \r\n
    • \r\n \r\n Hello {{ userClientService.user?.name }}\r\n \r\n
    • \r\n
    • \r\n \r\n \r\n \r\n
    • \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n\r\n \r\n
    \r\n
    \r\n {{ userClientService.user?.tenantName }}\r\n Sign Out\r\n
    \r\n\r\n
    \r\n
    \r\n
    {{ getUserInitials() }}
    \r\n
    \r\n
    \r\n {{ userClientService.user?.name }}\r\n {{ userClientService.user?.username }}\r\n Clear local storage\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","// Angular\r\nimport {Component, Input, OnDestroy, OnInit} from '@angular/core';\r\nimport {Observable, Subject} from 'rxjs';\r\n// Gmx Services\r\nimport {ListenersService} from '../../../services/listeners.service';\r\n// Gmx Configs\r\n// Gmx Animations\r\nimport {fadeInAnimation} from '../../../animations';\r\nimport {NavigationClientService} from '../../../services/client/navigation-client.service';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {MsAdalAngular6Service} from 'microsoft-adal-angular6';\r\nimport {UserClientService} from '../../../services/client/user-client.service';\r\nimport {destroySubject, getNameInitials} from '../../../utils/utilities';\r\nimport {LayoutClientService} from '../../../services/client/layout-client.service';\r\nimport {AdminService} from '../../../services/admin.service';\r\nimport {CacheService} from '../../../services/cache.service';\r\n\r\n@Component({\r\n selector: 'gmx-bi-top-bar',\r\n templateUrl: './top-bar.component.html',\r\n styleUrls: ['./top-bar.component.scss'],\r\n animations: [fadeInAnimation],\r\n host: {'[@fadeInAnimation]': ''}\r\n})\r\nexport class TopBarComponent implements OnInit, OnDestroy {\r\n //#region Properties\r\n @Input() breakpointMatch: Observable;\r\n public unseenNotifications: number;\r\n private unseenNotifications$ = new Subject();\r\n\r\n //#endregion\r\n\r\n constructor(\r\n private listenersService: ListenersService,\r\n private navigationClientService: NavigationClientService,\r\n private msAdalAngularService: MsAdalAngular6Service,\r\n public userClientService: UserClientService,\r\n public layoutClientService: LayoutClientService,\r\n public adminService: AdminService,\r\n private cacheService: CacheService\r\n ) {\r\n }\r\n\r\n get isNavigationDrawerHidden() {\r\n return this.navigationClientService.isNavigationDrawerHidden;\r\n }\r\n\r\n //#region Angular LifeCycle Functions\r\n\r\n public ngOnInit(): void {\r\n this.listenersService.unseenNotifications\r\n .pipe(\r\n takeUntil(this.unseenNotifications$)\r\n )\r\n .subscribe(\r\n (unseenNotifications: number) => {\r\n this.unseenNotifications = unseenNotifications;\r\n }\r\n );\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.unseenNotifications$);\r\n }\r\n\r\n //#endregion\r\n\r\n public logoutUser(): void {\r\n if (this.msAdalAngularService.isAuthenticated) {\r\n this.msAdalAngularService.logout();\r\n }\r\n }\r\n\r\n public clearLocalStorage(): void {\r\n this.cacheService.clearCurrentUserCache();\r\n }\r\n\r\n public getUserInitials() {\r\n return getNameInitials(this.userClientService.user.name);\r\n }\r\n}\r\n","
    \r\n
    \r\n\r\n
    \r\n\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    0\"\r\n class=\"overflowing-container\">\r\n +{{overflowingControls}}6\r\n \"open\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n Add filters\r\n \r\n \r\n
    \r\n
    \r\n Filters\r\n
    \r\n\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n","import {fadeInAnimation} from '../../animations';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Inject,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {ControlsClientService} from '../../services/client/controls-client.service';\r\nimport {ReportControl, ReportControlVisualType} from '../../services/web-api-client';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {NgbPopover} from '@ng-bootstrap/ng-bootstrap';\r\nimport {ControlsComponent} from '../../components/controls/controls-container/controls.component';\r\nimport {DOCUMENT} from '@angular/common';\r\nimport {ListenersService} from '../../services/listeners.service';\r\nimport {Subject} from 'rxjs';\r\nimport {RoutingService} from '../../services/routing.service';\r\nimport {ThemesService} from '../../services/themes.service';\r\nimport {WidgetsDataManagerService} from '../../services/client/widgets-data-manager.service';\r\nimport {destroySubject} from '../../utils/utilities';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport DisplayedControls = GmxBiWorks.ReportControls.DisplayedControls;\r\n\r\n@Component({\r\n selector: 'gmx-bi-report-controls',\r\n templateUrl: './report-controls.component.html',\r\n styleUrls: ['./report-controls.component.scss'],\r\n animations: [fadeInAnimation],\r\n host: {'[@fadeInAnimation]': ''}\r\n})\r\nexport class ReportControlsComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild('reportControlsBody', {read: ElementRef}) reportControlsBody: ElementRef;\r\n @ViewChild('addFilterButton', {read: ElementRef}) addFilterButton: ElementRef;\r\n @ViewChildren(ControlsComponent, {read: ElementRef}) controlQueryList: QueryList;\r\n\r\n isExpanded = true;\r\n overflowingControls: number;\r\n public controls: ReportControl[];\r\n public displayedControls: DisplayedControls;\r\n public dateControl = ReportControlVisualType.DateRange;\r\n public singleSelect = ReportControlVisualType.SingleSelect;\r\n public applyEventsSubject$: Subject = new Subject();\r\n public placeholderKeyChanged$: Subject = new Subject();\r\n public dynamicDatePlaceholder: string;\r\n private previousControlQueryListLength: number;\r\n private currentReportId: number;\r\n private onDestroy$: Subject = new Subject();\r\n\r\n constructor(\r\n public controlsClientService: ControlsClientService,\r\n @Inject(DOCUMENT) document,\r\n private listenersService: ListenersService,\r\n private cdr: ChangeDetectorRef,\r\n private routingService: RoutingService,\r\n public themesService: ThemesService,\r\n private widgetsDataManagerService: WidgetsDataManagerService\r\n ) {\r\n }\r\n\r\n public get isControlStateTheSame(): boolean {\r\n return this.controlsClientService.isControlStateTheSame;\r\n }\r\n\r\n private _currentTotalSelected?: number = null;\r\n\r\n get currentTotalSelected(): number | null {\r\n return this._currentTotalSelected > 0 ? this._currentTotalSelected : null;\r\n }\r\n\r\n private static hideAddFilter() {\r\n (document.getElementsByClassName('add-filter-popover')[0] as HTMLElement)\r\n .style.visibility = 'hidden';\r\n }\r\n\r\n private static showAddFilter() {\r\n (document.getElementsByClassName('add-filter-popover')[0] as HTMLElement)\r\n .style.visibility = 'initial';\r\n }\r\n\r\n public cancelChanges(controlPopOver: NgbPopover) {\r\n this.controlsClientService.restoreControlToLastChanges();\r\n // this.controlsClientService.revertToControlDefault(control);\r\n // this.controlsClientService.updateFilterState();\r\n // this.applyEventsSubject$.next(true);\r\n this.closePopover(controlPopOver);\r\n ReportControlsComponent.showAddFilter();\r\n }\r\n\r\n public applyClick(controlPopOver: NgbPopover, control: ReportControl) {\r\n this.controlsClientService.checkFilterBar(control, this.currentTotalSelected > 0);\r\n this.emitAndClose(controlPopOver);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.controlsClientService.controlsFinished\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((finished) => {\r\n if (finished) {\r\n this.controls = this.controlsClientService.controls;\r\n this.displayedControls = this.controlsClientService.displayedControls;\r\n this.currentReportId = this.controlsClientService.navigationClientService.selectedMenuItem.contentPageId;\r\n }\r\n });\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n // Set overflow state if number of controls changed\r\n this.controlQueryList.changes\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n if (this.controlQueryList.length !== this.previousControlQueryListLength) {\r\n this.previousControlQueryListLength = this.controlQueryList.length;\r\n this.setOverflowingFilters();\r\n }\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.onDestroy$);\r\n destroySubject(this.placeholderKeyChanged$);\r\n destroySubject(this.applyEventsSubject$);\r\n }\r\n\r\n public revertToDefaultAndApply(control: ReportControl, controlPopOver: NgbPopover): void {\r\n this.controlsClientService.revertToControlDefault(control);\r\n this.controlsClientService.updateFilterState();\r\n this.controlsClientService.checkFilterBar(control, false);\r\n this.emitAndClose(controlPopOver);\r\n }\r\n\r\n public valueChanged(item: any): void {\r\n this.controlsClientService.setCurrentState(item);\r\n }\r\n\r\n public changePredefinedRanges(control: ReportControl) {\r\n const placeholderKeyOverride = Object.keys(control.placeholdersList)\r\n .find(key => control.placeholdersList[key] === this.dynamicDatePlaceholder);\r\n const currentState = this.controlsClientService.currentControlState\r\n .find((state) => state.controlTemplateId === control.controlTemplateId);\r\n currentState.placeholderKeyOverride = placeholderKeyOverride;\r\n this.placeholderKeyChanged$.next(true);\r\n }\r\n\r\n public restoreDefaultControlsState(moreOptionsPopover: NgbPopover) {\r\n if (this.controlsClientService.stateChanged()) {\r\n this.controlsClientService.applyControls();\r\n this.controlsClientService.revertDisplayedControls();\r\n this.controlsClientService.restoreAllControlsToDefaults();\r\n this.widgetsDataManagerService.getAllDataFromApi(this.currentReportId);\r\n this.listenersService.allDataRefresh.next(true);\r\n this.routingService.checkParamsToUrl();\r\n this.controlsClientService.urlParams = null;\r\n }\r\n this.closePopover(moreOptionsPopover);\r\n }\r\n\r\n public trackByListFn(index, item): void {\r\n return item;\r\n }\r\n\r\n public trackByDisplayedControlFn(index, item) {\r\n return item.controlTemplateId;\r\n }\r\n\r\n public trackByDropdownFn(index, item) {\r\n return item.controlTemplateId;\r\n }\r\n\r\n // If the control is displayed it returns true\r\n checkIfInUse(controlTemplateId: number): boolean {\r\n const control = this.controlsClientService.currentControlState.find(\r\n (_control) => _control.controlTemplateId === controlTemplateId\r\n );\r\n return !!(control && control.values);\r\n }\r\n\r\n public existsInFilterBar(controlTemplateId: number): boolean {\r\n return !!this.controlsClientService.displayedControls.controlsData\r\n .find((displayedControl) =>\r\n displayedControl.controlTemplateId === controlTemplateId);\r\n }\r\n\r\n public refreshAllData(moreOptionsPopover: NgbPopover) {\r\n this.widgetsDataManagerService.getAllDataFromApi(this.currentReportId);\r\n this.listenersService.allDataRefresh.next(true);\r\n this.closePopover(moreOptionsPopover);\r\n }\r\n\r\n public toggleFiltersContainer(): void {\r\n if (this.isExpanded) {\r\n this.controlsClientService.hideOverflowFilters(this.getOverflowingFilters());\r\n } else {\r\n this.controlsClientService.showOverflowFilters();\r\n }\r\n\r\n this.isExpanded = !this.isExpanded;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n public collapseFiltersContainer() {\r\n if (this.isExpanded && document.querySelector('ngb-popover-window') === null) {\r\n this.toggleFiltersContainer();\r\n }\r\n }\r\n\r\n public hideOverflowingControl(controlTemplateId: number): boolean {\r\n return !this.displayedControls.controlsData\r\n .find(control => control.controlTemplateId === controlTemplateId).isVisible;\r\n }\r\n\r\n public closePopover(ngbPopover: NgbPopover): void {\r\n ngbPopover.close();\r\n }\r\n\r\n public openPopover(ngbPopover: NgbPopover): void {\r\n ReportControlsComponent.hideAddFilter();\r\n ngbPopover.open();\r\n }\r\n\r\n public onCurrentTotalSelectedChanged(currentTotalSelected?: number): void {\r\n this._currentTotalSelected = currentTotalSelected;\r\n }\r\n\r\n public getPopoverClass(control: ReportControl): string {\r\n return control.visualType === this.dateControl\r\n ? 'add-filter-control-popover date-control'\r\n : 'add-filter-control-popover';\r\n }\r\n\r\n private emitAndClose(controlPopOver: NgbPopover) {\r\n this.emitApplyClicked();\r\n this.closePopover(controlPopOver);\r\n ReportControlsComponent.showAddFilter();\r\n }\r\n\r\n private emitApplyClicked() {\r\n this.widgetsDataManagerService.getAllDataFromApi(this.currentReportId);\r\n this.applyEventsSubject$.next(true);\r\n }\r\n\r\n private setOverflowingFilters() {\r\n this.overflowingControls = this.getOverflowingFilters().length;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private getOverflowingFilters(): number[] {\r\n if (!this.controlQueryList) {\r\n return [];\r\n }\r\n\r\n return this.controlQueryList\r\n .filter(control => this.isOverflowingControl(control))\r\n .map(control =>\r\n parseInt(\r\n control.nativeElement.getAttribute('data-control-id'),\r\n 10)\r\n );\r\n }\r\n\r\n private isOverflowingControl(control: ElementRef): boolean {\r\n return (control.nativeElement.offsetTop > control.nativeElement.offsetHeight) || // If not first row\r\n // Or if not enough space to fit \"Add filter\" and\r\n // a \"more filters chip\" (roughly estimated at 50 px, not able to use real width since it's not available at this stage)\r\n (control.nativeElement.offsetLeft + control.nativeElement.offsetWidth)\r\n > (this.reportControlsBody.nativeElement.clientWidth\r\n - (this.addFilterButton ? this.addFilterButton.nativeElement.clientWidth : 0) - 50);\r\n }\r\n}\r\n","// Angular\r\nimport {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n// Kendo\r\nimport {GridModule} from '@progress/kendo-angular-grid';\r\n// 3rd Party Libraries\r\nimport {MDBBootstrapModulesPro} from 'ng-uikit-pro-standard';\r\nimport {DynamicModule} from 'ng-dynamic-component';\r\nimport {GridsterModule} from 'angular-gridster2';\r\n// Gmx Widgets\r\nimport {WidgetComponent} from '../widgets/widget/widget.component';\r\nimport {WidgetsModule} from '../widgets/widgets.module';\r\n// Gmx Services\r\nimport {PagerService} from '../services/pager.service';\r\n// Gmx Views\r\nimport {ArchiveComponent} from './archive/archive.component';\r\nimport {NotificationsComponent} from './notifications/notifications.component';\r\nimport {AddWidgetComponent} from './add-widget/add-widget.component';\r\nimport {ReportControlsComponent} from './report-controls/report-controls.component';\r\n// Gmx Components\r\nimport {ComponentsModule} from '../components/components.module';\r\nimport {ContentPageComponent} from './content-page/content-page.component';\r\nimport {NotFoundComponent} from '../components/errors/not-found/not-found.component';\r\nimport {ControlsModule} from '../components/controls/controls.module';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {NgbPopoverModule} from '@ng-bootstrap/ng-bootstrap';\r\nimport {MatDividerModule, MatMenuModule, MatRadioModule} from '@angular/material';\r\nimport {RouterModule} from '@angular/router';\r\nimport {KendoContentModule} from './kendo.content.module';\r\nimport {LayoutComponent} from './main-layout/layout/layout.component';\r\nimport {ClickInsideDirective} from '../directives/click-inside.directive';\r\nimport {DetectResizeDirective} from '../directives/detect-resize.directive';\r\nimport {MouseDownDirective} from '../directives/mouse-down.directive';\r\nimport {TopBarComponent} from './main-layout/top-bar/top-bar.component';\r\nimport {AppContainerComponent} from './main-layout/app-container/app-container.component';\r\nimport {NavigationDrawerComponent} from './main-layout/navigation-drawer/navigation-drawer.component';\r\nimport {InfoPaneComponent} from './main-layout/app-container/info-pane/info-pane.component';\r\nimport {ListenersService} from '../services/listeners.service';\r\nimport {NotificationsService} from '../services/notifications.service';\r\nimport {IsAdminDirective} from '../directives/is-admin.directive';\r\nimport {BoundSensorModule} from 'angular-bound-sensor';\r\n\r\n@NgModule({\r\n declarations: [\r\n ArchiveComponent,\r\n NotificationsComponent,\r\n AddWidgetComponent,\r\n ReportControlsComponent,\r\n ContentPageComponent,\r\n LayoutComponent,\r\n ClickInsideDirective,\r\n DetectResizeDirective,\r\n MouseDownDirective,\r\n TopBarComponent,\r\n AppContainerComponent,\r\n NavigationDrawerComponent,\r\n InfoPaneComponent,\r\n IsAdminDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n GridModule,\r\n GridsterModule,\r\n MDBBootstrapModulesPro.forRoot(),\r\n WidgetsModule,\r\n DynamicModule.withComponents(\r\n [WidgetComponent, NotFoundComponent, AddWidgetComponent, ReportControlsComponent]),\r\n ComponentsModule,\r\n ControlsModule,\r\n FormsModule,\r\n NgbPopoverModule,\r\n MatDividerModule,\r\n RouterModule,\r\n KendoContentModule,\r\n MatRadioModule,\r\n MatMenuModule,\r\n BoundSensorModule\r\n ],\r\n exports: [\r\n NotificationsComponent,\r\n ReportControlsComponent,\r\n TopBarComponent,\r\n AppContainerComponent,\r\n NavigationDrawerComponent,\r\n InfoPaneComponent,\r\n LayoutComponent],\r\n providers: [PagerService, ListenersService, NotificationsService]\r\n})\r\nexport class ViewsModule {\r\n}\r\n","// Angular Imports\r\nimport {Injectable, OnDestroy, OnInit} from '@angular/core';\r\n// Gmx Services\r\nimport {WidgetBase} from '../widget-base-class';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {Observable, of} from 'rxjs';\r\nimport {destroySubject} from '../../utils/utilities';\r\nimport CustomHttpError = GmxBiWorks.HttpError.CustomHttpError;\r\nimport {colors} from '../../configs/user-settings.config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class ChartBase extends WidgetBase implements OnInit, OnDestroy {\r\n //#region Properties\r\n\r\n public colors: string[] = colors.customColors;\r\n public crossingValues: number[] = [];\r\n public isMultiVisual = false;\r\n public isMultiSeries = false;\r\n public hasLegend = false;\r\n public yAxisStep = 3;\r\n public isDonutTemplate: boolean;\r\n public seriesObservableData$: Observable;\r\n public seriesData: GmxBiWorks.DataPoints.ChartData;\r\n public centerTemplateHeader$: Observable;\r\n public centerTemplateSubtitle$: Observable;\r\n\r\n //#endregion\r\n\r\n //#region Angular LifeCycle Functions\r\n\r\n public ngOnInit(): void {\r\n this.loadQueryData(false);\r\n\r\n this.refresh\r\n .pipe(\r\n takeUntil(this.refreshEvent$)\r\n )\r\n .subscribe(() => {\r\n this.refreshDataFromServer(true);\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n destroySubject(this.refreshEvent$);\r\n }\r\n\r\n //#endregion\r\n\r\n public loadQueryData(loadNewData: boolean) {\r\n this.loadingEvent.emit(true);\r\n this.widgetsDataManagerService.getDataFromService(this.widgetId, loadNewData)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(\r\n (seriesData) => {\r\n if (!seriesData) {\r\n return;\r\n }\r\n if ((seriesData as CustomHttpError).httpErrorResponse) {\r\n this.error = seriesData as CustomHttpError;\r\n this.seriesObservableData$ = of(null);\r\n this.emitEvents(true, null, true);\r\n return;\r\n }\r\n this.error = undefined;\r\n (seriesData as Promise)\r\n .then((data) => {\r\n this.loadData(data);\r\n this.emitEvents(false, null, this.chartLoaded);\r\n });\r\n }\r\n );\r\n }\r\n\r\n //#region Tooltips\r\n\r\n private loadData(data: GmxBiWorks.DataPoints.ChartData) {\r\n this.loadingEvent.emit(true);\r\n if (data && data.categories) {\r\n data.chartMetadata.seriesGap = +this.width / 6 / data.categories.length;\r\n if (data.chartMetadata.hasNegativeValues) {\r\n data.chartMetadata.seriesGap = +this.width / 50 / data.categories.length;\r\n }\r\n }\r\n this.centerTemplateSubtitle$ = of(data.chartMetadata.centerTemplateSubtitle);\r\n this.centerTemplateHeader$ = of(data.chartMetadata.centerTemplateHeader);\r\n this.isDonutTemplate = data.chartMetadata.isDonutTemplate;\r\n this.seriesData = data;\r\n this.seriesObservableData$ = of(data);\r\n }\r\n\r\n //#endregion\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
    \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n {{ chartData.chartMetadata.category.title.text }}\r\n
    \r\n
    \r\n {{ intl | seriesFormattedValue :\r\n chartData.chartMetadata :\r\n chartData.tooltips.originalCategoryValues :\r\n chartData.tooltips.formattedCategoryValues :\r\n category }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ chartData.chartMetadata | seriesTooltipValueTitle :\r\n i :\r\n point['series'].name :\r\n point}}\r\n
    \r\n
    \r\n {{ intl | seriesTooltipValueText :\r\n chartData.chartMetadata :\r\n chartData.allSeries :\r\n point.value :\r\n point['series'].name :\r\n point}}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {{ data['tooltip']['valueTitle'] }}\r\n
    \r\n
    \r\n {{ data['tooltip']['formattedValue'] }}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n
    \r\n

    {{ centerTemplateHeader$ | async | percent:'1.2-2' }}

    \r\n \r\n {{ centerTemplateSubtitle$ | async }}\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n {{ chartData.tooltips.valueTitle }}\r\n
    \r\n
    \r\n {{ intl | seriesFormattedValue :\r\n chartData.chartMetadata :\r\n chartData.tooltips.originalCategoryValues :\r\n chartData.tooltips.formattedCategoryValues :\r\n category }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ dataItem['tooltip']['valueTitle'] }}\r\n
    \r\n
    \r\n {{ dataItem['tooltip']['formattedValue'] }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ data['tooltip']['valueTitle'] }}\r\n
    \r\n
    \r\n {{ data['tooltip']['formattedValue'] }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n {{item.text}}\r\n \r\n \r\n \r\n
    \r\n
    \r\n","// Angular\r\nimport {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core';\r\n\r\nimport {ChartBase} from '../chart-base-class';\r\n// Gmx Animations\r\nimport {fadeInAnimation, fadeInOutAnimationFast} from '../../../animations';\r\nimport {SassHelperComponent} from '../../../../scss/sass-helper.component';\r\nimport {\r\n CategoryAxisCrosshair,\r\n CategoryAxisLabels,\r\n ChartComponent,\r\n LegendItemHoverEvent,\r\n PlotAreaClickEvent\r\n} from '@progress/kendo-angular-charts';\r\nimport {LegendLabels, LegendMarkers} from '@progress/kendo-angular-charts/dist/es2015/common/property-types';\r\nimport {GmxBiWorks} from '../../../../typings';\r\nimport {ContextMenuComponent} from '@progress/kendo-angular-menu';\r\nimport {ColumnSetting} from '../../../services/web-api-client';\r\nimport {of} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport SeriesData = GmxBiWorks.DataPoints.SeriesData;\r\n\r\n@Component({\r\n selector: 'gmx-bi-series-chart',\r\n templateUrl: './series-chart.component.html',\r\n styleUrls: ['./series-chart.component.scss'],\r\n animations: [fadeInAnimation, fadeInOutAnimationFast],\r\n host: {'[@fadeInAnimation]': ''},\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SeriesChartComponent extends ChartBase implements OnInit, AfterViewInit {\r\n\r\n @ViewChild(SassHelperComponent) public sassHelper: SassHelperComponent;\r\n @ViewChild('chartMenu') public chartContextMenu: ContextMenuComponent;\r\n public categoryAxisLabels: CategoryAxisLabels;\r\n public crossHairConfig: CategoryAxisCrosshair;\r\n public circularChartLegendLabels: LegendLabels;\r\n public chartLegendMarkers: LegendMarkers;\r\n public background;\r\n public border;\r\n public color;\r\n public renderCenterTemplate = true;\r\n public contextMenuItems: any;\r\n @ViewChild(ChartComponent) private chart: ChartComponent;\r\n private navigationColumnSetting: ColumnSetting;\r\n private clickedCategory: string;\r\n\r\n private static multiSeriesSortPoints(pointOne: any, pointTwo: any): number {\r\n return (isNaN(pointTwo.value) ? Number.MIN_SAFE_INTEGER : pointTwo.value) -\r\n (isNaN(pointOne.value) ? Number.MIN_SAFE_INTEGER : pointOne.value);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.adminService.isAdmin$\r\n .pipe(\r\n takeUntil(this.isAdmin$)\r\n )\r\n .subscribe((isAdmin) => {\r\n // this.applyMetadata();\r\n // this.categoryAxisLabels.color =\r\n // isAdmin ? 'white' : this.hasTransparentFrame ? 'black' : this.hasFrameColor;\r\n // this.crossHairConfig.color = isAdmin ? 'white' : this.sassHelper.readProperty('crosshair-color');\r\n // this.legendLabels.color = isAdmin ? 'white' : 'black';\r\n // if (this.chart) {\r\n // this.chart.render.emit();\r\n // }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.categoryAxisLabels = {\r\n position: 'start',\r\n rotation: 'auto',\r\n color: this.hasTransparentFrame ? 'black' : this.hasFrameColor,\r\n };\r\n this.crossHairConfig = {\r\n color: this.sassHelper.readProperty('crosshair-color'),\r\n dashType: 'longDash',\r\n visible: true,\r\n width: 1\r\n };\r\n this.circularChartLegendLabels = {\r\n color: 'black',\r\n font: '12px Cairo, sans-serif',\r\n margin: {top: 2, bottom: 2}\r\n // fix the donut hole size with truncated string\r\n // content: (label) => label.text.length > 10 ? label.text.substring(0, 10) + '...' : label.text\r\n };\r\n this.chartLegendMarkers = {\r\n type: 'circle',\r\n width: 7\r\n };\r\n this.background = this.customCSS('tooltip-background-color');\r\n this.border = {\r\n color: this.customCSS('tooltip-border-color'),\r\n dashType: 'solid',\r\n width: 1\r\n };\r\n this.color = this.customCSS('color');\r\n\r\n this.buildMenuItems();\r\n }\r\n\r\n public trackByCategoricalFn(index, item) {\r\n return item;\r\n }\r\n\r\n public trackByCircularFn(index, item) {\r\n return item.series;\r\n }\r\n\r\n public onZoom(event: any): void {\r\n const delta = Math.max(-1, Math.min(1, (event.originalEvent.wheelDelta || -event.originalEvent.detail)));\r\n if (delta > 0) {\r\n // for IE\r\n event.returnValue = false;\r\n // for Chrome and Firefox\r\n if (event.preventDefault) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n public seriesChartRendered(): void {\r\n if (this.chart) {\r\n // For some strange reason ==> The center template does not load in the beginning so\r\n // I'm loading it again manually one time\r\n if (this.renderCenterTemplate) {\r\n setTimeout(() => {\r\n this.renderCenterTemplate = false;\r\n this.chart.render.emit();\r\n });\r\n return;\r\n }\r\n }\r\n this.chartRendered();\r\n }\r\n\r\n public onLegendItemHover(e: LegendItemHoverEvent): void {\r\n if (e && this.seriesData.chartMetadata.chartTypeFamily === 'Circular') {\r\n if (this.singleVisual.widgetVisual === 'pie') {\r\n e.sender.showTooltip(point => {\r\n // @ts-ignore\r\n return point.index === e.pointIndex;\r\n });\r\n return;\r\n }\r\n\r\n (e.series as any).data.forEach((_item: SeriesData) => _item.explode = false);\r\n this.changeCenterTemplateContent((e.series as any).data[e.pointIndex]);\r\n // item.explode = true;\r\n (e.sender as any).configurationService.transition = false;\r\n\r\n // (e.series as any).data.forEach((_item) => {\r\n // _item.explode = _item.name === e.text;\r\n // });\r\n }\r\n }\r\n\r\n public onSeriesClick(e: any): void {\r\n if (this.contextMenuItems) {\r\n const originalEvent = e.originalEvent;\r\n\r\n if (originalEvent.type === 'contextmenu') {\r\n originalEvent.preventDefault();\r\n\r\n // this.contextItem = this.seriesData.find(item => item.product === e.category);\r\n this.clickedCategory = e.category;\r\n this.chartContextMenu.show({left: originalEvent.pageX, top: originalEvent.pageY});\r\n }\r\n }\r\n }\r\n\r\n public onContextMenuClick(): void {\r\n this.goToReport(this.navigationColumnSetting, this.clickedCategory);\r\n }\r\n\r\n public onSeriesItemHover(e: any): void {\r\n if (e && this.seriesData.chartMetadata.chartTypeFamily === 'Circular') {\r\n this.changeCenterTemplateContent(e.dataItem);\r\n }\r\n }\r\n\r\n // public labelContent(args: LegendLabelsContentArgs): string {\r\n // return `${args.dataItem.category} years old: ${this.intl.formatNumber(args.dataItem.value, 'p2')}`;\r\n\r\n public labelContent(e: any): string {\r\n return `${e.dataItem.tooltips.valueTitle} - ${e.dataItem.tooltips.formattedCategoryValues[0]}`;\r\n }\r\n\r\n public sortPoints(points) {\r\n return points.sort(SeriesChartComponent.multiSeriesSortPoints);\r\n }\r\n\r\n public disableRightClick(e: PlotAreaClickEvent): void {\r\n if (e.originalEvent.type === 'contextmenu') {\r\n // Disable browser context menu\r\n e.originalEvent.preventDefault();\r\n }\r\n }\r\n\r\n private changeCenterTemplateContent(item: SeriesData) {\r\n this.centerTemplateSubtitle$ = of(item.name);\r\n this.centerTemplateHeader$ = of(item.percent);\r\n }\r\n\r\n private buildMenuItems() {\r\n if (this.singleVisual) {\r\n if (this.singleVisual.columns === null) {\r\n return;\r\n }\r\n\r\n this.navigationColumnSetting = this.singleVisual.columns.find((column) =>\r\n column.drillThroughControlTemplateId !== null);\r\n\r\n if (this.navigationColumnSetting) {\r\n this.contextMenuItems = [{\r\n text: this.navigationTypeTranslationDic[this.navigationColumnSetting.navigationType]\r\n }];\r\n }\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {{ value | sparklineTitle : sparklineData }}\r\n
    \r\n
    \r\n {{ intl | formatValue: value : sparklineData.valueFormat }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {Observable, of, Subject} from 'rxjs';\r\nimport {SassHelperComponent} from '../../../../scss/sass-helper.component';\r\nimport {IntlService} from '@progress/kendo-angular-intl';\r\nimport {GmxBiWorks} from '../../../../typings';\r\nimport {CategoryAxisCrosshair} from '@progress/kendo-angular-charts/dist/es2015/option-types/category-axis-item/crosshair.interface';\r\nimport {AdminService} from '../../../services/admin.service';\r\nimport {ChartComponent} from '@progress/kendo-angular-charts';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {destroySubject} from '../../../utils/utilities';\r\nimport SparklineData = GmxBiWorks.DataPoints.SparklineData;\r\n\r\n@Component({\r\n selector: 'gmx-bi-sparkline',\r\n templateUrl: './sparkline.component.html',\r\n styleUrls: ['./sparkline.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class SparklineComponent implements OnInit, OnDestroy {\r\n @ViewChild(SassHelperComponent)\r\n public sassHelper: SassHelperComponent;\r\n // @Input() percentTotal: number;\r\n @Input() bulletValue: number;\r\n @Input() metadata: any;\r\n @Input() data: Observable;\r\n @Input() type: 'line' | 'bullet' | 'area' = 'line';\r\n @Input() seriesColors: string[];\r\n @Output() chartRendered = new EventEmitter();\r\n public style: any;\r\n public bulletValueAxis: any = null;\r\n public height;\r\n public crossHairConfig: CategoryAxisCrosshair;\r\n public sparkBackgroundColor: Observable;\r\n public isAdmin$ = new Subject();\r\n @ViewChild(ChartComponent) private chart: ChartComponent;\r\n private min = 0;\r\n private max = 100;\r\n\r\n constructor(public intl: IntlService, public adminService: AdminService) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.adminService.isAdmin$\r\n .pipe(\r\n takeUntil(this.isAdmin$)\r\n )\r\n .subscribe((isAdmin) => {\r\n this.sparkBackgroundColor = isAdmin ? of('#222B45') : of('#fff');\r\n if (this.chart) {\r\n this.chart.render.emit();\r\n }\r\n });\r\n this.crossHairConfig = {\r\n color: this.sassHelper.readProperty('crosshair-color'),\r\n dashType: 'longDash',\r\n visible: true,\r\n width: 1\r\n };\r\n\r\n this.checkMetadata(this.metadata);\r\n switch (this.type) {\r\n case 'bullet':\r\n const valuePercent = this.bulletValue * this.max;\r\n const bulletValueAxis = {\r\n min: this.min,\r\n max: this.max,\r\n plotBands: [{\r\n from: this.min, to: valuePercent, color: this.seriesColors[0]\r\n }, {\r\n from: valuePercent, to: this.max, color: this.seriesColors[0], opacity: 0.15\r\n }]\r\n };\r\n this.bulletValueAxis = of(bulletValueAxis);\r\n break;\r\n case 'line':\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.isAdmin$);\r\n }\r\n\r\n public customCSS(propertyName: string) {\r\n return this.sassHelper.readProperty(propertyName);\r\n }\r\n\r\n private checkMetadata(metadata: any) {\r\n if (!metadata) {\r\n return;\r\n }\r\n\r\n this.height = metadata.height === null ? 30 : metadata.height;\r\n const width = metadata.width;\r\n const lineHeight = metadata.lineHeight;\r\n this.style = {\r\n 'line-height': `${lineHeight}px`,\r\n width: width ? `${width}px` : '100%',\r\n };\r\n }\r\n}\r\n","\r\n
    \r\n
    \r\n {{ text.value }}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {{ text.value }}\r\n {{ text.text }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import {Component, Input} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport MapCustomOverlay = GmxBiWorks.DataPoints.MapCustomOverlay;\r\n\r\n@Component({\r\n selector: 'gmx-bi-custom-map-overlay',\r\n templateUrl: './custom-map-overlay.component.html',\r\n styleUrls: ['./custom-map-overlay.component.scss']\r\n})\r\nexport class CustomMapOverlayComponent {\r\n @Input() dataObservable$: Observable;\r\n @Input() sparklineColor: string;\r\n}\r\n","// Angular\r\nimport {NgModule} from '@angular/core';\r\n// Kendo\r\nimport {ChartsModule} from '@progress/kendo-angular-charts';\r\nimport {DropDownsModule} from '@progress/kendo-angular-dropdowns';\r\nimport {ContextMenuModule} from '@progress/kendo-angular-menu';\r\nimport {GridModule} from '@progress/kendo-angular-grid';\r\nimport {GaugesModule} from '@progress/kendo-angular-gauges';\r\nimport {InputsModule} from '@progress/kendo-angular-inputs';\r\nimport {DateRangeModule} from '@progress/kendo-angular-dateinputs';\r\n\r\n@NgModule({\r\n imports: [ChartsModule,\r\n DropDownsModule,\r\n InputsModule,\r\n ContextMenuModule,\r\n GridModule,\r\n GaugesModule,\r\n DateRangeModule\r\n ],\r\n exports: [ChartsModule,\r\n DropDownsModule,\r\n InputsModule,\r\n ContextMenuModule,\r\n GridModule,\r\n GaugesModule,\r\n DateRangeModule,\r\n ]\r\n})\r\nexport class KendoWidgetsModule {\r\n}\r\n","\r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {{ getTooltipTitle('Name') }}\r\n
    \r\n
    \r\n {{ point.name }}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ getTooltipTitle('Value') }}\r\n
    \r\n
    \r\n {{ getTooltipValueText('Value', point.value) }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ getTooltipTitle(additionalDataRow.key) }}\r\n
    \r\n
    \r\n {{ getTooltipValueText(additionalDataRow.key, additionalDataRow.value) }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n","import {AfterViewInit, Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {WidgetBase} from '../widget-base-class';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {AgmMap, MapTypeStyle} from '@agm/core';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {SassHelperComponent} from '../../../scss/sass-helper.component';\r\nimport {areObjectsEqual, deepClone, destroySubject, formatDataValue} from '../../utils/utilities';\r\nimport {Observable, of} from 'rxjs';\r\nimport {ColumnSetting} from '../../services/web-api-client';\r\nimport MapDataPoint = GmxBiWorks.DataPoints.MapDataPoint;\r\nimport MapCustomOverlay = GmxBiWorks.DataPoints.MapCustomOverlay;\r\nimport CustomHttpError = GmxBiWorks.HttpError.CustomHttpError;\r\n\r\n@Component({\r\n selector: 'gmx-bi-map',\r\n templateUrl: './map.component.html',\r\n styleUrls: ['./map.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MapComponent extends WidgetBase implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(SassHelperComponent) public sassHelper: SassHelperComponent;\r\n @ViewChild('agmMap') agmMap: AgmMap;\r\n public showCustomOverlay: boolean;\r\n public hasSparkline: boolean;\r\n fitBounds = true;\r\n latitude: number;\r\n longitude: number;\r\n mapStyle: MapTypeStyle[];\r\n strokeColor: string;\r\n public lastOverlayPoint: MapDataPoint;\r\n\r\n dataObservable$: Observable;\r\n customOverlayObservable$: Observable;\r\n minZoom: Observable;\r\n private columnSetting: ColumnSetting;\r\n\r\n public ngOnInit(): void {\r\n this.mapsAPILoader.load().then(() => {\r\n this.loadQueryData(false);\r\n });\r\n this.refresh\r\n .pipe(\r\n takeUntil(this.refreshEvent$)\r\n )\r\n .subscribe(() => {\r\n this.refreshDataFromServer(true);\r\n });\r\n this.strokeColor = this.customCSS('map-stroke-color');\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.defineZoom();\r\n this.columnSetting = this.singleVisual.columns.find((column) =>\r\n column.drillThroughControlTemplateId !== null);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.refreshEvent$);\r\n }\r\n\r\n public loadQueryData(loadNewData: boolean) {\r\n this.loadingEvent.emit(true);\r\n this.widgetsDataManagerService.getDataFromService(this.widgetId, loadNewData)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(\r\n (mapData) => {\r\n if (!mapData) {\r\n return;\r\n }\r\n if ((mapData as CustomHttpError).httpErrorResponse) {\r\n this.error = mapData as CustomHttpError;\r\n this.dataObservable$ = of(null);\r\n this.emitEvents(true, null, true);\r\n // this.showLoadingIndicator(false);\r\n return;\r\n }\r\n this.error = undefined;\r\n (mapData as Promise)\r\n .then((data) => {\r\n this.loadData(data);\r\n this.emitEvents(false, null, true);\r\n // this.showLoadingIndicator(false);\r\n });\r\n }\r\n );\r\n }\r\n\r\n onMouseOver(point: MapDataPoint) {\r\n if (point.additionalData && Array.isArray(point.additionalData[0].value)) {\r\n this.createCustomOverlayInfo(point);\r\n this.showCustomOverlay = true;\r\n this.hasSparkline = true;\r\n } else {\r\n this.hasSparkline = false;\r\n }\r\n point.uiOptions.isTooltipDisplayed = true;\r\n }\r\n\r\n onMouseOut(point: MapDataPoint) {\r\n this.showCustomOverlay = false;\r\n point.uiOptions.isTooltipDisplayed = false;\r\n }\r\n\r\n createCustomOverlayInfo(point: MapDataPoint) {\r\n if (!areObjectsEqual(this.lastOverlayPoint, point)) {\r\n this.lastOverlayPoint = deepClone(point);\r\n const mapCustomOverlay: MapCustomOverlay[] = [];\r\n mapCustomOverlay.push({\r\n value: point.name\r\n });\r\n point.additionalData.forEach((row) => {\r\n mapCustomOverlay.push({\r\n text: this.getTooltipTitle(row.key),\r\n value: this.getTooltipValueText(row.key, +Object.values(row.value[row.value.length - 1])[0]),\r\n sparklineData: {\r\n values: this.getSparklineData(row.value)\r\n }\r\n });\r\n });\r\n this.customOverlayObservable$ = of(mapCustomOverlay);\r\n }\r\n }\r\n\r\n getTooltipTitle(field: string) {\r\n if (!field) {\r\n return 'N/A';\r\n }\r\n return this.getColumnSetting(field).title;\r\n }\r\n\r\n getTooltipValueText(field: string, value: number) {\r\n if (!field) {\r\n return 'N/A';\r\n }\r\n return formatDataValue(this.intl, value, this.getColumnSetting(field).format);\r\n }\r\n\r\n customCSS(propertyName: string) {\r\n return this.sassHelper.readProperty(propertyName);\r\n }\r\n\r\n drillThough(point: GmxBiWorks.DataPoints.MapDataPoint) {\r\n if (this.columnSetting) {\r\n this.goToReport(this.columnSetting, point.name);\r\n }\r\n }\r\n\r\n private loadData(data: MapDataPoint[]) {\r\n this.showLoadingIndicator(true);\r\n this.dataObservable$ = of(data);\r\n }\r\n\r\n private showLoadingIndicator(value) {\r\n this.loadingEvent.emit(value);\r\n }\r\n\r\n private getSparklineData(value: any) {\r\n return value.map((val) => Object.values(val)[0]);\r\n }\r\n\r\n private defineZoom() {\r\n if (+this.height > 600) {\r\n this.minZoom = of(3);\r\n return;\r\n }\r\n if (+this.height > 450) {\r\n this.minZoom = of(2);\r\n return;\r\n }\r\n this.minZoom = of(1);\r\n }\r\n}\r\n","// Angular Imports\r\nimport {EventEmitter, Injectable, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {BehaviorSubject, Observable, of} from 'rxjs';\r\nimport {WidgetBase} from '../widget-base-class';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {destroySubject} from '../../utils/utilities';\r\nimport NumbersChangeData = GmxBiWorks.DataPoints.NumbersChangeData;\r\nimport NumbersData = GmxBiWorks.DataPoints.NumbersData;\r\nimport NumbersChangeResult = GmxBiWorks.DataPoints.NumbersChangeResult;\r\nimport CustomHttpError = GmxBiWorks.HttpError.CustomHttpError;\r\nimport WidgetVisualMetadata = GmxBiWorks.DataPoints.WidgetVisualMetadata;\r\nimport {colors} from '../../configs/user-settings.config';\r\n\r\n// Gmx Services\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class NumberBase extends WidgetBase implements OnInit, OnDestroy {\r\n //#region Properties\r\n @Output() isScalarRendering = new EventEmitter();\r\n public changeIcon: string;\r\n public animateData = new BehaviorSubject(false);\r\n public data: NumbersChangeData;\r\n\r\n public colors: string[] = colors.customColors;\r\n public currentWidgetColor: string;\r\n public totalWidgets: number;\r\n public widgetMargin = 15;\r\n public widgetPadding = 3;\r\n public widgetWidth: number;\r\n public numbersObservableData$: Observable;\r\n public percentageVisual$: Observable;\r\n\r\n //#endregion\r\n\r\n //#region Angular LifeCycle Functions1\r\n\r\n public ngOnInit(): void {\r\n this.loadQueryData(false);\r\n this.refresh\r\n .pipe(\r\n takeUntil(this.refreshEvent$)\r\n )\r\n .subscribe(() => {\r\n this.refreshDataFromServer(true);\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n destroySubject(this.refreshEvent$);\r\n }\r\n\r\n //#endregion\r\n\r\n public loadQueryData(loadNewData) {\r\n this.loadingEvent.emit(true);\r\n this.widgetsDataManagerService.getDataFromService(this.widgetId, loadNewData)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(\r\n (numbersData) => {\r\n if (!numbersData) {\r\n return;\r\n }\r\n if ((numbersData as CustomHttpError).httpErrorResponse) {\r\n this.error = numbersData as CustomHttpError;\r\n this.numbersObservableData$ = of(null);\r\n this.emitEvents(true, null, true);\r\n return;\r\n }\r\n this.error = undefined;\r\n (numbersData as Promise)\r\n .then((data) => {\r\n this.loadData(data);\r\n this.emitEvents(false, null, this.chartLoaded);\r\n });\r\n }\r\n );\r\n }\r\n\r\n // The margin between each widget is 15px\r\n public setWidgetStyle(color: string, hasKendoVisual: boolean, hasSparkline: boolean) {\r\n const multiplier = hasKendoVisual || hasSparkline ? 2 : 1;\r\n this.widgetWidth = +this.width * multiplier / this.totalWidgets - this.widgetMargin;\r\n return {\r\n 'border-left': `${this.widgetPadding}px solid ${color}`,\r\n height: `${this.height}px`,\r\n width: `${this.widgetWidth}%`\r\n };\r\n }\r\n\r\n public setMainFontSize() {\r\n return {\r\n 'font-size': `${Math.min(32, +this.width / this.totalWidgets / 8)}px`\r\n };\r\n }\r\n\r\n // Minimum Font-size is\r\n public setBadgeContainerFontSize() {\r\n let calculatedSize = +this.width / this.totalWidgets / 100 * 7;\r\n calculatedSize = calculatedSize > 16 ? calculatedSize : 16;\r\n return {\r\n 'font-size': `${calculatedSize}px`\r\n };\r\n }\r\n\r\n private loadData(numbersData: NumbersData) {\r\n this.loadingEvent.emit(true);\r\n this.totalWidgets = numbersData.numbersData.result.length;\r\n\r\n if (numbersData.noComparedValue || numbersData.numbersMetadata.singleVisual.widgetVisual === 'percentagechange') {\r\n this.percentageVisual$ = of(numbersData.numbersMetadata.singleVisual);\r\n setTimeout(() => this.isScalarRendering.emit(false));\r\n }\r\n this.chartLoaded = true;\r\n this.numbersObservableData$ = of(numbersData.numbersData.result);\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n \r\n
    \r\n\r\n \r\n \r\n {{ intl | formatValue: item.oldValue : item.valueFormat }}\r\n / {{ intl | formatValue: item.newValue : item.valueFormat }}\r\n \r\n \r\n \r\n \r\n {{ intl | formatValue: item.oldValue : item.valueFormat : false }}\r\n\r\n \r\n \r\n \r\n \r\n {{ getColumnTitle(item.name) }}\r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
    \r\n
    \r\n {{ category }}\r\n
    \r\n
    \r\n {{ value }}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n No data to display\r\n
    \r\n
    \r\n","import {Component} from '@angular/core';\r\nimport {NumberBase} from '../number-base-class';\r\nimport {GmxBiWorks} from '../../../../typings';\r\n\r\n@Component({\r\n selector: 'gmx-bi-number-scalar',\r\n templateUrl: './number-scalar.component.html',\r\n styleUrls: ['./number-scalar.component.scss']\r\n})\r\nexport class NumberScalarComponent extends NumberBase {\r\n private renderedCounter = 0;\r\n\r\n public trackByFn(index, item) {\r\n return item;\r\n }\r\n\r\n // calculate the width of the current widget without padding and margin\r\n // alo of magical numbers - because the scale is right\r\n public getTitleFontSize() {\r\n return Math.min(38,\r\n (+this.width -\r\n (this.totalWidgets * (this.widgetPadding + this.widgetMargin))\r\n ) / this.totalWidgets / 12);\r\n }\r\n\r\n // calculate the width of the current widget without padding and margin\r\n // allot of magical numbers - because the scale is right\r\n public getSubtitleFontSize() {\r\n return Math.min(30,\r\n (+this.width -\r\n (this.totalWidgets * (this.widgetPadding + this.widgetMargin))\r\n ) / this.totalWidgets / 18);\r\n }\r\n\r\n // check if all the scalar sections have been loaded\r\n public addToRendered(render: boolean): void {\r\n if (render) {\r\n this.renderedCounter++;\r\n }\r\n\r\n if (this.renderedCounter === this.totalWidgets) {\r\n this.isScalarRendering.emit(false);\r\n }\r\n }\r\n\r\n numberColor(item: GmxBiWorks.DataPoints.NumbersChangeResult) {\r\n return item.valueFormat && item.valueFormat.startsWith('p') && item.sparklineData && item.oldValue !== 0\r\n ? item.oldValue < 0 ? 'red' : 'limegreen'\r\n : null;\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n {{ item.percent }}%\r\n\r\n \r\n\r\n
    \r\n \r\n {{ item.name }}\r\n \r\n \r\n
    \r\n\r\n \r\n \r\n
    \r\n
    \r\n {{ visual | valueTitle: 'OldValue' }}\r\n
    \r\n
    \r\n {{ intl | formatValue: item.oldValue : item.valueFormat }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ visual | valueTitle: 'NewValue' }}\r\n
    \r\n
    \r\n {{ intl | formatValue: item.newValue : item.valueFormat }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n","// Angular Imports\r\nimport {Component} from '@angular/core';\r\nimport {NumberBase} from '../number-base-class';\r\n\r\n@Component({\r\n selector: 'gmx-bi-percentage-change',\r\n templateUrl: './percentage-change.component.html',\r\n styleUrls: ['./percentage-change.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PercentageChangeComponent extends NumberBase {\r\n public trackByFn(index, item) {\r\n return item;\r\n }\r\n}\r\n","
    \r\n \r\n \r\n\r\n \r\n
    \r\n \r\n \"icon\"\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n {{ dataItem[column.field] }}\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n {{ dataItem[column.field] }}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n {{ dataItem[column.field] | kendoNumber: column.format }}\r\n
    \r\n\r\n
    \r\n {{ dataItem[column.field] | kendoDate: column.format }}\r\n
    \r\n\r\n \r\n
    \r\n {{ dataItem[column.field]}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n","import {AfterViewInit, Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {CellClickEvent, DataBindingDirective, GridComponent, GridDataResult, PageChangeEvent} from '@progress/kendo-angular-grid';\r\nimport {ColumnSetting, ColumnSettingNavigationType} from '../../services/web-api-client';\r\nimport {WidgetBase} from '../widget-base-class';\r\nimport {Observable, of} from 'rxjs';\r\nimport {debounceTime, takeUntil} from 'rxjs/operators';\r\nimport {destroySubject} from '../../utils/utilities';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {ContextMenuComponent} from '@progress/kendo-angular-menu';\r\nimport {orderBy, SortDescriptor} from '@progress/kendo-data-query';\r\nimport CustomHttpError = GmxBiWorks.HttpError.CustomHttpError;\r\n\r\n\r\n// @ts-ignore\r\n\r\n@Component({\r\n selector: 'gmx-bi-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TableComponent extends WidgetBase implements OnInit, AfterViewInit, OnDestroy {\r\n //#region Properties\r\n\r\n @ViewChild(GridComponent) public grid: GridComponent;\r\n @ViewChild('gridMenu') public gridContextMenu: ContextMenuComponent;\r\n @ViewChild(DataBindingDirective) dataBinding: DataBindingDirective;\r\n public gridView: Observable;\r\n public loading = false;\r\n public tableData: GmxBiWorks.DataPoints.TableData;\r\n public skip = 0;\r\n public sort: SortDescriptor[] = [];\r\n public rowHeight = 36;\r\n public pageSize = 0;\r\n public sumOfField: number = null;\r\n public navigationType = ColumnSettingNavigationType;\r\n public contextMenuItems: any;\r\n public widgetTitle: string;\r\n private navigationColumnSetting: ColumnSetting;\r\n\r\n //#endregion\r\n\r\n //#region Angular LifeCycle Functions\r\n private clickedCell: any;\r\n\r\n public ngOnInit(): void {\r\n setTimeout(() => {\r\n this.pageSize = this.heightNumber > 0 ? Math.floor(this.heightNumber / this.rowHeight * 3) : 100;\r\n this.loadQueryData(false);\r\n });\r\n this.refresh\r\n .pipe(\r\n takeUntil(this.refreshEvent$)\r\n )\r\n .subscribe(() => {\r\n this.tableData = null;\r\n this.refreshDataFromServer(true);\r\n });\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.grid.pageChange.pipe(debounceTime(500))\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((e) => this.pageChange(e));\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.refreshEvent$);\r\n }\r\n\r\n public loadQueryData(loadNewData) {\r\n this.loadingEvent.emit(true);\r\n this.loading = true;\r\n this.widgetsDataManagerService.getDataFromService(this.widgetId, loadNewData)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(\r\n (tableData) => {\r\n if (!tableData) {\r\n return;\r\n }\r\n if ((tableData as CustomHttpError).httpErrorResponse) {\r\n this.error = tableData as CustomHttpError;\r\n this.tableData = null;\r\n this.emitEvents(true, null, true);\r\n return;\r\n }\r\n this.error = undefined;\r\n (tableData as Promise)\r\n .then((data) => {\r\n this.loadData(data);\r\n this.emitEvents(false, null, true);\r\n });\r\n this.widgetTitle = `${this.layoutClientService.layoutTitle} - ${this.title}`;\r\n }\r\n );\r\n }\r\n\r\n public resize(): void {\r\n if (!this.isHeightSet){\r\n this.isHeightSet = true;\r\n this.height = (this.el.nativeElement.offsetHeight).toString();\r\n // this.height = (this.el.nativeElement.offsetHeight - 100).toString();\r\n }\r\n }\r\n\r\n public goToExternalLink(linkElement: string) {\r\n window.open(linkElement, '_blank');\r\n }\r\n\r\n public onContextMenuClick(): void {\r\n this.goToReport(this.navigationColumnSetting, this.clickedCell);\r\n }\r\n\r\n public onCellClick(e: CellClickEvent): void {\r\n const originalEvent = e.originalEvent;\r\n if (originalEvent.type === 'contextmenu') {\r\n originalEvent.preventDefault();\r\n if (this.buildContextMenuItems(e)) {\r\n this.clickedCell = e.dataItem[this.navigationColumnSetting.field];\r\n this.gridContextMenu.show({left: originalEvent.pageX, top: originalEvent.pageY});\r\n }\r\n }\r\n }\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.loadGridView();\r\n }\r\n\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.loadGridView();\r\n }\r\n\r\n public allData(): Observable {\r\n return of({\r\n data: this.tableData.dataRows,\r\n total: this.tableData.dataRows.length\r\n });\r\n }\r\n\r\n public exportToExcel() {\r\n this.grid.saveAsExcel();\r\n }\r\n\r\n private loadGridView(): void {\r\n this.gridView = of({\r\n data: this.tableData.dataRows\r\n ? orderBy(this.tableData.dataRows, this.sort).slice(this.skip, this.skip + this.pageSize)\r\n : null,\r\n total: this.tableData.tableLength\r\n });\r\n }\r\n\r\n private loadData(tableData: GmxBiWorks.DataPoints.TableData, kendoLoader?: boolean) {\r\n if (!kendoLoader) {\r\n this.loadingEvent.emit(true);\r\n }\r\n this.tableData = tableData;\r\n this.loadGridView();\r\n this.allData = this.allData.bind(this);\r\n this.loading = false;\r\n }\r\n\r\n private buildContextMenuItems(e: CellClickEvent): boolean {\r\n this.navigationColumnSetting = this.visuals[0].columns[e.columnIndex].navigationType\r\n ? this.visuals[0].columns[e.columnIndex]\r\n : null;\r\n if (this.navigationColumnSetting) {\r\n this.contextMenuItems = [{\r\n text: this.navigationTypeTranslationDic[this.navigationColumnSetting.navigationType]\r\n }];\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","\r\n
    \r\n
    \r\n \"message\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n","import {Component, OnInit} from '@angular/core';\r\nimport {WidgetBase} from '../widget-base-class';\r\nimport {Observable, of} from 'rxjs';\r\nimport {GmxBiWorks} from '../../../typings';\r\nimport {IMessageTemplate} from '../../services/web-api-client';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport TextData = GmxBiWorks.DataPoints.TextData;\r\nimport CustomHttpError = GmxBiWorks.HttpError.CustomHttpError;\r\n\r\n@Component({\r\n selector: 'gmx-bi-text',\r\n templateUrl: './text.component.html',\r\n styleUrls: ['./text.component.scss']\r\n})\r\nexport class TextComponent extends WidgetBase implements OnInit {\r\n public textData$: Observable;\r\n\r\n ngOnInit() {\r\n this.refresh\r\n .pipe(\r\n takeUntil(this.refreshEvent$)\r\n )\r\n .subscribe(() => {\r\n this.refreshDataFromServer(true);\r\n });\r\n this.loadQueryData(false);\r\n }\r\n\r\n loadQueryData(loadNewData: boolean): void {\r\n this.loadingEvent.emit(true);\r\n this.widgetsDataManagerService.getDataFromService(this.widgetId, loadNewData)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(\r\n (textData) => {\r\n if (!textData) {\r\n return;\r\n }\r\n if ((textData as CustomHttpError).httpErrorResponse) {\r\n this.error = textData as CustomHttpError;\r\n this.textData$ = of(null);\r\n this.emitEvents(true, null, true);\r\n this.loadingEvent.emit(false);\r\n return;\r\n }\r\n this.error = undefined;\r\n if ((textData as TextData).staticMessage) {\r\n this.loadData(textData as TextData);\r\n this.emitEvents(false, null, true);\r\n } else {\r\n (textData as Promise)\r\n .then((data) => {\r\n this.loadData(data);\r\n this.emitEvents(false, null, true);\r\n });\r\n }\r\n }\r\n );\r\n\r\n }\r\n\r\n public trackByFn(index, item): void {\r\n return item;\r\n }\r\n\r\n private loadData(textData: TextData) {\r\n const data = textData.staticMessage ? [textData.staticMessage] : textData.dynamicMessage;\r\n this.textData$ = of(data);\r\n this.loadingEvent.emit(false);\r\n }\r\n}\r\n","// Angular Imports\r\nimport {ChangeDetectorRef, ElementRef, EventEmitter, Injectable, Input, NgZone, OnDestroy, Output, ViewChild} from '@angular/core';\r\nimport {Observable, Subject} from 'rxjs';\r\n// Gmx Services\r\nimport {ListenersService} from '../services/listeners.service';\r\nimport {ChartTypeComponent} from '../enums/enums';\r\nimport {GmxBiWorks} from '../../typings';\r\nimport {IntlService} from '@progress/kendo-angular-intl';\r\nimport {deepClone, destroySubject, getComparisonOperator} from '../utils/utilities';\r\nimport {ColumnSetting, FilterValue} from '../services/web-api-client';\r\nimport {SassHelperComponent} from '../../scss/sass-helper.component';\r\nimport {Router} from '@angular/router';\r\nimport {NavigationClientService} from '../services/client/navigation-client.service';\r\nimport {ControlsClientService} from '../services/client/controls-client.service';\r\nimport {LayoutClientService} from '../services/client/layout-client.service';\r\nimport {PermissionsService} from '../services/client/permissions.service';\r\nimport {BreakpointService} from '../services/breakpoint.service';\r\nimport {ThemesService} from '../services/themes.service';\r\nimport {AdminService} from '../services/admin.service';\r\nimport {WidgetsDataManagerService} from '../services/client/widgets-data-manager.service';\r\nimport {colors} from '../configs/user-settings.config';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {MapsAPILoader} from '@agm/core';\r\nimport {environment} from '../../environments/environment';\r\nimport WidgetVisualMetadata = GmxBiWorks.DataPoints.WidgetVisualMetadata;\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport abstract class WidgetBase implements OnDestroy {\r\n //#region Properties\r\n @ViewChild(SassHelperComponent)\r\n public sassHelper: SassHelperComponent;\r\n\r\n // inputs are coming from pushWidgetToGrid in layout-client.ts\r\n @Input() public height: string;\r\n @Input() public title: string;\r\n @Input() public titleDescription: string;\r\n @Input() public hideTitle: string;\r\n @Input() public extraMessage: string;\r\n @Input() public hasTransparentFrame: boolean;\r\n @Input() public width: string;\r\n @Input() public widgetId: number;\r\n @Input() public widgetType: ChartTypeComponent;\r\n @Input() public visuals: WidgetVisualMetadata[];\r\n @Input() public singleVisual: WidgetVisualMetadata;\r\n @Input() public refresh: Observable;\r\n @Input() public isWidgetShown: boolean;\r\n @Input() extraMessagesArray: string[];\r\n @Output() public loadingEvent = new EventEmitter();\r\n @Output() public errorsEvent = new EventEmitter();\r\n public refreshEvent$ = new Subject();\r\n public error: GmxBiWorks.HttpError.CustomHttpError;\r\n public chartLoaded = false;\r\n public hasFrameColor = '#a4b0ca';\r\n public isProduction = environment.production;\r\n public onDestroy$: Subject = new Subject();\r\n public colors: string[] = colors.customColors;\r\n public isAdmin$ = new Subject();\r\n protected isHeightSet = false;\r\n\r\n protected navigationTypeTranslationDic = {\r\n DrillThrough: 'Drill-Through to details report',\r\n Slicing: 'Slice data',\r\n External: 'Open externally',\r\n };\r\n\r\n //#endregion\r\n\r\n constructor(\r\n public listenersService: ListenersService,\r\n public cdr: ChangeDetectorRef,\r\n public intl: IntlService,\r\n private router: Router,\r\n private navigationClientService: NavigationClientService,\r\n public controlsClientService: ControlsClientService,\r\n public layoutClientService: LayoutClientService,\r\n protected permissionsService: PermissionsService,\r\n public zone: NgZone,\r\n public el: ElementRef,\r\n public breakpointService: BreakpointService,\r\n public themesService: ThemesService,\r\n public mapsAPILoader: MapsAPILoader,\r\n public widgetsDataManagerService: WidgetsDataManagerService,\r\n public adminService: AdminService\r\n ) {\r\n }\r\n\r\n //#endregion\r\n\r\n public get heightNumber(): number {\r\n return +this.height;\r\n }\r\n\r\n //#region Angular LifeCycle Functions\r\n\r\n get chartTypeComponent() {\r\n return ChartTypeComponent;\r\n }\r\n\r\n //#endregion\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.onDestroy$);\r\n }\r\n\r\n abstract loadQueryData(loadNewData: boolean): void;\r\n\r\n public emitEvents(wasHttpError: boolean, data: any, chartRendered: boolean) {\r\n if (wasHttpError) {\r\n this.errorsEvent.emit(this.error);\r\n } else {\r\n const error = data ? data.error : null;\r\n this.errorsEvent.emit(error);\r\n }\r\n this.loadingEvent.emit(!chartRendered);\r\n }\r\n\r\n public chartRendered() {\r\n this.chartLoaded = true;\r\n this.emitEvents(false, null, this.chartLoaded);\r\n this.loadingEvent.emit(false);\r\n }\r\n\r\n public refreshDataFromServer(forceRefresh?: boolean) {\r\n this.error = null;\r\n const loadNewData = forceRefresh ? forceRefresh : !this.isWidgetShown;\r\n this.loadQueryData(loadNewData);\r\n }\r\n\r\n public customCSS(propertyName: string) {\r\n return this.sassHelper.readProperty(propertyName);\r\n }\r\n\r\n public getColumnTitle(field: string): string {\r\n if (!field) {\r\n return 'N/A';\r\n }\r\n\r\n const settings = this.getColumnSetting(field);\r\n\r\n return settings ? settings.title || field : field;\r\n }\r\n\r\n public goToReport(columnSetting: ColumnSetting, value: any): void {\r\n const route = this.navigationClientService.getNavigationRoute(columnSetting.drillThroughReportId);\r\n this.controlsClientService.getReportControlData(\r\n columnSetting.drillThroughReportId,\r\n columnSetting.drillThroughControlTemplateId,\r\n this.controlsClientService.requestQueryParameters,\r\n value)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((filterData) => {\r\n this.createDrillThroughControl(columnSetting, filterData, value);\r\n\r\n this.updateControlsForRouting(columnSetting.drillThroughControlTemplateId, value);\r\n\r\n this.createControlsForRouting();\r\n\r\n setTimeout(() => this.router.navigate([route]).then());\r\n });\r\n }\r\n\r\n protected getColumnSetting(field: string): ColumnSetting {\r\n if (this.singleVisual) {\r\n return this.singleVisual.columns.find(col => col.field === field);\r\n }\r\n }\r\n\r\n private createDrillThroughControl(column: ColumnSetting, filterData: FilterValue[], value: any) {\r\n this.navigationClientService.drillThroughControl = {\r\n comparisonOperator: getComparisonOperator(\r\n this.controlsClientService.controls.find((control) =>\r\n control.controlTemplateId === column.drillThroughControlTemplateId).visualType),\r\n controlTemplateId: column.drillThroughControlTemplateId,\r\n values: [filterData[0].value],\r\n title: value\r\n };\r\n }\r\n\r\n private createControlsForRouting() {\r\n this.navigationClientService.controlsAfterInnerRouting = {\r\n controls: deepClone(this.controlsClientService.controls),\r\n controlsTitles: deepClone(this.controlsClientService.controlsTitles),\r\n displayedControls: deepClone(this.controlsClientService.displayedControls),\r\n currentControlState: deepClone(this.controlsClientService.currentControlState),\r\n dateControlsSummary: deepClone(this.controlsClientService.dateControlsSummary),\r\n autoCompleteSelected: deepClone(this.controlsClientService.autoCompleteSelected),\r\n };\r\n }\r\n\r\n private updateControlsForRouting(controlTemplateId: number, value: any) {\r\n const control = this.controlsClientService.controls\r\n .find((_control) => _control.controlTemplateId === controlTemplateId);\r\n const titleControl = this.controlsClientService.controlsTitles\r\n .find((_control) => _control.controlTemplateId === controlTemplateId);\r\n titleControl.title = value;\r\n this.controlsClientService.checkFilterBar(control, true);\r\n this.controlsClientService.setCurrentState(this.navigationClientService.drillThroughControl);\r\n this.controlsClientService.updateFilterState();\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ title }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {Observable, of, Subject} from 'rxjs';\r\n// Gmx Services\r\nimport {WidgetBase} from '../widget-base-class';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {destroySubject} from '../../utils/utilities';\r\n\r\n@Component({\r\n selector: 'gmx-bi-widget',\r\n templateUrl: './widget.component.html',\r\n styleUrls: ['./widget.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WidgetComponent extends WidgetBase implements OnInit, OnDestroy {\r\n //#region Properties\r\n\r\n public loading = false;\r\n public refreshEventSubject: Subject = new Subject();\r\n public hasRefreshButton: boolean;\r\n public isIntersected$: Observable;\r\n public intersectOptions = {rootMargin: '0px', threshold: 0};\r\n public extraMessage$: Observable;\r\n private allDataRefresh$ = new Subject();\r\n\r\n //#endregion\r\n\r\n //#region Angular LifeCycle Functions\r\n\r\n public ngOnInit(): void {\r\n this.hasRefreshButton = !this.isProduction && this.permissionsService.canCustomizeReport;\r\n\r\n this.listenersService.allDataRefresh\r\n .pipe(\r\n takeUntil(this.allDataRefresh$)\r\n )\r\n .subscribe((refresh) => {\r\n if (refresh) {\r\n this.refreshData();\r\n }\r\n });\r\n if (this.extraMessage) {\r\n if (this.extraMessage.includes('|||')) {\r\n this.extraMessagesArray = this.extraMessage.split('|||');\r\n this.extraMessage = null;\r\n } else {\r\n this.extraMessage$ = of(this.extraMessage);\r\n }\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n destroySubject(this.allDataRefresh$);\r\n destroySubject(this.refreshEvent$);\r\n }\r\n\r\n //#endregion\r\n\r\n public refreshData(): void {\r\n this.refreshEventSubject.next();\r\n }\r\n\r\n loadingEventHandler(isLoading: boolean) {\r\n this.loading = isLoading;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n errorsEventHandler(error: any) {\r\n this.error = error;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n loadQueryData(): void {\r\n }\r\n\r\n intersectionChanged(isIntersected: boolean) {\r\n this.isIntersected$ = of(isIntersected);\r\n this.isWidgetShown = isIntersected;\r\n }\r\n}\r\n","// Angular\r\nimport {CommonModule} from '@angular/common';\r\nimport {RouterModule} from '@angular/router';\r\nimport {NgModule} from '@angular/core';\r\nimport {FormsModule} from '@angular/forms';\r\n// 3rd Party Libraries\r\nimport {MDBBootstrapModulesPro} from 'ng-uikit-pro-standard';\r\nimport {KendoWidgetsModule} from './kendo.widgets.module';\r\n// Gmx Services\r\n// Gmx Widgets\r\nimport {SeriesChartComponent} from './charts/series-chart/series-chart.component';\r\n// Gmx Services\r\nimport {ListenersService} from '../services/listeners.service';\r\n// Gmx Components\r\nimport {ComponentsModule} from '../components/components.module';\r\nimport {WidgetComponent} from './widget/widget.component';\r\nimport {TableComponent} from './table/table.component';\r\nimport {PercentageChangeComponent} from './numbers/percentage-change/percentage-change.component';\r\nimport {NumberScalarComponent} from './numbers/number-scalar/number-scalar.component';\r\nimport {LinearGaugeComponent} from './numbers/linear-gauge/linear-gauge.component';\r\nimport {GaugesModule} from 'ng-canvas-gauges';\r\nimport {MapComponent} from './map/map.component';\r\nimport {BodyModule, ExcelModule, SharedModule} from '@progress/kendo-angular-grid';\r\nimport {AgmCoreModule, InfoWindowManager} from '@agm/core';\r\nimport {IntlModule} from '@progress/kendo-angular-intl';\r\nimport {SassHelperComponent} from '../../scss/sass-helper.component';\r\nimport {SparklineComponent} from './charts/sparkline/sparkline.component';\r\nimport {AgmSnazzyInfoWindowModule} from '@agm/snazzy-info-window';\r\nimport {CustomMapOverlayComponent} from './custom-map-overlay/custom-map-overlay.component';\r\nimport {ButtonModule} from '@progress/kendo-angular-buttons';\r\nimport {MakeObservablePipe} from '../pipes/make-observable.pipe';\r\nimport {ScalarTitleWidthPipe} from '../pipes/scalar-title-width.pipe';\r\nimport {FormatValuePipe} from '../pipes/format-value.pipe';\r\nimport {ValueTitlePipe} from '../pipes/value-title.pipe';\r\nimport {SparklineTitlePipe} from '../pipes/sparkline-title.pipe';\r\nimport {SeriesFormattedValuePipe} from '../pipes/series-formatted-value.pipe';\r\nimport {SeriesTooltipValueTitlePipe} from '../pipes/series-tooltip-value-title.pipe';\r\nimport {SeriesTooltipValueTextPipe} from '../pipes/series-tooltip-value-text.pipe';\r\nimport {ChartTypeFamilyPipe} from '../pipes/chart-type-family.pipe';\r\nimport {TextComponent} from './text/text.component';\r\nimport {FontScalePipe} from '../pipes/font-scale.pipe';\r\nimport {ControlsModule} from '../components/controls/controls.module';\r\nimport {RemoveMarkUpPipe} from '../pipes/remove-mark-up.pipe';\r\nimport {TableItemStylePipe} from '../pipes/table-item-style.pipe';\r\nimport {TableIsChipPipe} from '../pipes/table-is-chip.pipe';\r\nimport {NgIntersectionModule} from 'ng-intersection';\r\nimport { ResizeSensorModule } from '@progress/kendo-angular-common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n MDBBootstrapModulesPro.forRoot(),\r\n KendoWidgetsModule,\r\n ComponentsModule,\r\n GaugesModule,\r\n SharedModule,\r\n BodyModule,\r\n IntlModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: 'AIzaSyAbpfrqJ9nH-f8zJdgHC6GqmKOWmmfIGhI'\r\n }),\r\n AgmSnazzyInfoWindowModule,\r\n ExcelModule,\r\n ButtonModule,\r\n ControlsModule,\r\n ResizeSensorModule,\r\n NgIntersectionModule\r\n ],\r\n declarations: [\r\n SeriesChartComponent,\r\n SparklineComponent,\r\n WidgetComponent,\r\n TableComponent,\r\n PercentageChangeComponent,\r\n NumberScalarComponent,\r\n LinearGaugeComponent,\r\n MapComponent,\r\n SassHelperComponent,\r\n CustomMapOverlayComponent,\r\n TextComponent,\r\n ScalarTitleWidthPipe,\r\n FormatValuePipe,\r\n ValueTitlePipe,\r\n SparklineTitlePipe,\r\n SeriesFormattedValuePipe,\r\n SeriesTooltipValueTitlePipe,\r\n SeriesTooltipValueTextPipe,\r\n ChartTypeFamilyPipe,\r\n FontScalePipe,\r\n RemoveMarkUpPipe,\r\n MakeObservablePipe,\r\n TableItemStylePipe,\r\n TableIsChipPipe\r\n ],\r\n exports: [SeriesChartComponent, SparklineComponent, MakeObservablePipe],\r\n providers: [\r\n ListenersService,\r\n InfoWindowManager\r\n ]\r\n})\r\nexport class WidgetsModule {\r\n}\r\n","export const environment = {\r\n name: 'test',\r\n production: true,\r\n\r\n appInsights: {\r\n instrumentationKey: '8ff0ed51-5732-4c68-9d97-e02fe44edbc4'\r\n }\r\n};\r\n","/* tslint:disable:no-string-literal */\r\nimport 'hammerjs';\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\nenableProdMode();\r\n\r\n// this will remove console.log from production\r\nif (environment.production) {\r\n enableProdMode();\r\n if (window) {\r\n // noinspection AnonymousFunctionJS\r\n window.console.log = () => {\r\n };\r\n }\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule).then(ref => {\r\n // Ensure Angular destroys itself on hot reloads.\r\n if (window['ngRef']) {\r\n window['ngRef'].destroy();\r\n }\r\n window['ngRef'] = ref;\r\n // if ('serviceWorker' in navigator && environment.production) {\r\n // navigator.serviceWorker.register('ngsw-worker.js').then((swr) => console.log(swr));\r\n // }\r\n\r\n // Otherwise, log the boot error\r\n}).catch(err => console.error(err));\r\n","
    ","import {Component} from '@angular/core';\r\n\r\nexport const PREFIX = '--';\r\n\r\n@Component({\r\n selector: 'gmx-bi-sass-helper',\r\n template: '
    '\r\n})\r\nexport class SassHelperComponent {\r\n // Read the custom property of body section with given name:\r\n readProperty(name: string): string {\r\n const bodyStyles = window.getComputedStyle(document.body);\r\n return bodyStyles.getPropertyValue(PREFIX + name);\r\n }\r\n}\r\n"],"sourceRoot":""}