{"version":3,"sources":["./src/app/modules/statistics/ranches.html","./src/app/modules/statistics/ranches.ts","./src/app/modules/statistics/statistics-summary.html","./src/app/modules/statistics/statistics-summary.ts","./src/app/modules/statistics/statistics.module.ts","./src/app/modules/statistics/statistics.page.html","./src/app/modules/statistics/statistics.page.ts","./src/app/modules/statistics/statistics.routing.ts","./src/app/modules/statistics/statistics.service.ts"],"names":[],"mappings":"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","file":"modules-statistics-statistics-module-ngfactory.b5d8ce0a64f8ddce24fb.js","sourcesContent":["<h5 class=\"bk-text--gray\">\r\n\tRanches\r\n</h5>\r\n\r\n<mat-table [dataSource]=\"dataSource\" matSort>\r\n\r\n\t<ng-container matColumnDef=\"Id\">\r\n\t\t<mat-header-cell *matHeaderCellDef mat-sort-header>\r\n\t\t\t{{ 'Id' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{row.Id}}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"Name\">\r\n\t\t<mat-header-cell *matHeaderCellDef mat-sort-header>\r\n\t\t\t{{ 'Name' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{row.Name}}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"OwnerEmail\">\r\n\t\t<mat-header-cell *matHeaderCellDef mat-sort-header>\r\n\t\t\t{{ 'Owner Email' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{row.OwnerEmail}}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"PlantingsCount\">\r\n\t\t<mat-header-cell *matHeaderCellDef mat-sort-header>\r\n\t\t\t{{ 'Plantings' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{ row.PlantingsCount }}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"CountyName\">\r\n\t\t<mat-header-cell *matHeaderCellDef mat-sort-header>\r\n\t\t\t{{ 'County' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{ row.CountyName }}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"StateName\">\r\n\t\t<mat-header-cell *matHeaderCellDef mat-sort-header>\r\n\t\t\t{{ 'State' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{ row.StateName }}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"CommodityTypes\">\r\n\t\t<mat-header-cell *matHeaderCellDef>\r\n\t\t\t{{ 'Commodity Types' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{ row.CommodityTypes }}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\r\n\t<mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\r\n\r\n</mat-table>\r\n\r\n<mat-paginator [pageSizeOptions]=\"[10, 25]\"></mat-paginator>\r\n","import { Component, OnInit, ViewChild, OnDestroy, Input, SimpleChanges } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { StatisticsRanchDetails } from './interfaces';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { ObjectUtility } from '../../classes/objectUtility';\r\nimport { StatisticsService } from './statistics.service';\r\n\r\nexport interface HighChartsPieData {\r\n\tname: string,\r\n\ty: number,\r\n\tsliced?: boolean,\r\n\tselected?: boolean\r\n}\r\n\r\nexport enum RanchPieChartKeys {\r\n\tEDU = 1,\r\n\tGROWER = 2\r\n}\r\n\r\n@Component({\r\n\tselector: 'app-statistics-ranches',\r\n\ttemplateUrl: 'ranches.html',\r\n\tstyleUrls: [ 'ranches.scss']\r\n})\r\n\r\nexport class StatisticsRanchesComponent implements OnInit, OnDestroy {\r\n\t@ViewChild(MatPaginator, { static: true}) paginator: MatPaginator;\r\n\t@ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\tpublic dataSource: MatTableDataSource<StatisticsRanchDetails>;\r\n\tpublic results: StatisticsRanchDetails[];\r\n\r\n\t@Input()\r\n\tpublic start: Date;\r\n\r\n\t@Input()\r\n\tpublic end: Date;\r\n\r\n\t@Input()\r\n\tpublic commodityTypeId: number;\r\n\r\n\t@Input()\r\n\tpublic stateId: number;\r\n\r\n\t@Input()\r\n\tpublic countyId: number;\r\n\r\n\tpublic displayedColumns: string[] = ['Id', 'Name', 'PlantingsCount',\r\n\t\t'OwnerEmail', 'CountyName', 'StateName', 'CommodityTypes' ];\r\n\r\n\tprivate _subscriptions$: Subject<boolean>;\r\n\r\n\tconstructor(\r\n\t\tprivate _service: StatisticsService,\r\n\t) {\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis._subscriptions$ = new Subject();\r\n\r\n\t\tif (this.sort && this.sort.sortChange) {\r\n\t\t\tthis.sort.sortChange.pipe(takeUntil(this._subscriptions$)).subscribe(() => {\r\n\t\t\t\tif (!this.paginator) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\twhile (this.paginator.hasPreviousPage()) {\r\n\t\t\t\t\tthis.paginator.previousPage();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.sort.sort({ id: 'Name', start: 'asc', disableClear: false });\r\n\t\t}\r\n\t}\r\n\r\n\tngOnChanges() {\r\n\t\tif (!this.start || !this.end) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._getRanches(this.start, this.end, this.commodityTypeId, this.stateId, this.countyId).then((response) => {\r\n\t\t\tthis.results = response;\r\n\t\t\tthis._setDataSource(this.results);\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tif (!this._subscriptions$) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._subscriptions$.next(true);\r\n\t\tthis._subscriptions$.complete();\r\n\t}\r\n\r\n\tprivate _convertToGraphData(ranches: StatisticsRanchDetails[]): HighChartsPieData[] {\r\n\t\tlet result: HighChartsPieData[];\r\n\t\tlet map: { key: number, count: number}[];\r\n\t\tlet totalCount: number;\r\n\r\n\t\tresult = [];\r\n\t\tmap = [];\r\n\t\ttotalCount = 0;\r\n\r\n\t\tfor (let ranch of ranches) {\r\n\t\t\tlet index: RanchPieChartKeys;\r\n\r\n\t\t\ttotalCount++;\r\n\r\n\t\t\tif (ranch.OwnerEmail.indexOf('.edu') === -1) {\r\n\t\t\t\tindex = RanchPieChartKeys.GROWER;\r\n\t\t\t} else {\r\n\t\t\t\tindex = RanchPieChartKeys.EDU;\r\n\t\t\t}\r\n\r\n\t\t\tif (!map[index]) {\r\n\t\t\t\tmap[index] = {\r\n\t\t\t\t\tkey: index,\r\n\t\t\t\t\tcount: 1\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tmap[index].count++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tresult = [\r\n\t\t\t{\r\n\t\t\t\tname: '.edu',\r\n\t\t\t\ty: map[RanchPieChartKeys.EDU].count\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'grower',\r\n\t\t\t\ty: map[RanchPieChartKeys.GROWER].count\r\n\t\t\t}\r\n\t\t]\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprivate async _getRanches(start: Date, end: Date, commodityTypeId?: number, stateId?: number, countyId?: number):\r\n\t\tPromise<StatisticsRanchDetails[]> {\r\n\r\n\t\treturn await this._service.ranches(start, end, commodityTypeId, stateId, countyId);\r\n\t}\r\n\r\n\tprivate _setDataSource(results: StatisticsRanchDetails[]): void {\r\n\t\tthis.dataSource = new MatTableDataSource(results);\r\n\t\tthis.dataSource.paginator = this.paginator;\r\n\t\tthis.dataSource.sort = this.sort;\r\n\t}\r\n}\r\n","<h5 class=\"bk-text--gray\">\r\n\tStatistics Summary\r\n</h5>\r\n\r\n<mat-table [dataSource]=\"dataSource\" matSort>\r\n\r\n\t<ng-container matColumnDef=\"Ranches\">\r\n\t\t<mat-header-cell *matHeaderCellDef>\r\n\t\t\t{{ 'Ranches' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{row.Ranches}}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"Plantings\">\r\n\t\t<mat-header-cell *matHeaderCellDef>\r\n\t\t\t{{ 'Plantings' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{row.Plantings}}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"Acres\">\r\n\t\t<mat-header-cell *matHeaderCellDef>\r\n\t\t\t{{ 'Acres' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{row.Acres}}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"Users\">\r\n\t\t<mat-header-cell *matHeaderCellDef>\r\n\t\t\t{{ 'Users' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{ row.Users }}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"IrrigationEvents\">\r\n\t\t<mat-header-cell *matHeaderCellDef>\r\n\t\t\t{{ 'Irrigation Events' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{ row.IrrigationEvents }}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"FertilizationEvents\">\r\n\t\t<mat-header-cell *matHeaderCellDef>\r\n\t\t\t{{ 'Fertilization Events' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{ row.FertilizationEvents }}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"SoilSampleEvents\">\r\n\t\t<mat-header-cell *matHeaderCellDef>\r\n\t\t\t{{ 'Soil Sample Events' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{ row.SoilSampleEvents }}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"CutEvents\">\r\n\t\t<mat-header-cell *matHeaderCellDef>\r\n\t\t\t{{ 'Cut Events' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{ row.CutEvents }}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<ng-container matColumnDef=\"TissueSampleEvents\">\r\n\t\t<mat-header-cell *matHeaderCellDef>\r\n\t\t\t{{ 'Tissue Sample Events' | translate }}\r\n\t\t</mat-header-cell>\r\n\t\t<mat-cell *matCellDef=\"let row\">\r\n\t\t\t{{ row.TissueSampleEvents }}\r\n\t\t</mat-cell>\r\n\t</ng-container>\r\n\r\n\t<mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\r\n\t<mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\r\n\r\n</mat-table>\r\n","import { Component, OnInit, ViewChild, OnDestroy, Input } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { StatisticsRecord } from './interfaces';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n\tselector: 'app-statistics-summary',\r\n\ttemplateUrl: 'statistics-summary.html',\r\n\tstyleUrls: [ 'ranches.scss']\r\n})\r\n\r\nexport class StatisticsSummaryComponent implements OnInit, OnDestroy {\r\n\t@ViewChild(MatPaginator, { static: true}) paginator: MatPaginator;\r\n\t@ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\tpublic dataSource: MatTableDataSource<StatisticsRecord>;\r\n\r\n\t@Input()\r\n\tpublic results: StatisticsRecord[];\r\n\r\n\tpublic displayedColumns: string[] = ['Ranches', 'Plantings', 'Acres', 'Users',\r\n\t\t'IrrigationEvents', 'FertilizationEvents', 'SoilSampleEvents', 'CutEvents', 'TissueSampleEvents' ];\r\n\r\n\tprivate _subscriptions$: Subject<boolean>;\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis._subscriptions$ = new Subject();\r\n\r\n\t\tif (this.sort && this.sort.sortChange) {\r\n\t\t\tthis.sort.sortChange.pipe(takeUntil(this._subscriptions$)).subscribe(() => {\r\n\t\t\t\tif (!this.paginator) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\twhile (this.paginator.hasPreviousPage()) {\r\n\t\t\t\t\tthis.paginator.previousPage();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.sort.sort({ id: 'Ranches', start: 'asc', disableClear: false });\r\n\t\t}\r\n\t}\r\n\r\n\tngOnChanges() {\r\n\t\tthis._setDataSource(this.results);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tif (!this._subscriptions$) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._subscriptions$.next(true);\r\n\t\tthis._subscriptions$.complete();\r\n\t}\r\n\r\n\tprivate _setDataSource(results: StatisticsRecord[]): void {\r\n\t\tthis.dataSource = new MatTableDataSource(results);\r\n\t\tthis.dataSource.paginator = this.paginator;\r\n\t\tthis.dataSource.sort = this.sort;\r\n\t}\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { StatisticsPage } from './statistics.page';\r\nimport { StatisticsService } from './statistics.service';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { StatisticsRoutingModule } from './statistics.routing';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { StatisticsRanchesComponent } from './ranches';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { StatisticsSummaryComponent } from './statistics-summary';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tSharedModule,\r\n\t\tFormsModule,\r\n\t\tCommonModule,\r\n\t\tStatisticsRoutingModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatDatepickerModule,\r\n\t\tMatInputModule,\r\n\t\tMatTableModule,\r\n\t\tMatPaginatorModule,\r\n\t\tMatSortModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tStatisticsRanchesComponent,\r\n\t\tStatisticsPage,\r\n\t\tStatisticsSummaryComponent\r\n\t],\r\n\texports: [\r\n\t],\r\n\tproviders: [\r\n\t\tStatisticsService\r\n\t],\r\n\tentryComponents: [\r\n\t\t//\r\n\t]\r\n})\r\n\r\nexport class StatisticsModule {\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t\tngModule: StatisticsModule,\r\n\t\t\tproviders: [\r\n\t\t\t\t//\r\n\t\t\t]\r\n\t\t}\r\n\t}\r\n}\r\n","<admin-nav></admin-nav>\r\n<div class=\"bk-admin__page\">\r\n\r\n <h5 class=\"bk-text--gray\">\r\n {{'Statistics' | translate }}\r\n </h5>\r\n\r\n <div class=\"bk-data-table__head\">\r\n <div class=\"bk-data-table__search\">\r\n <select class=\"bk-data-table__search--select\"\r\n [(ngModel)]=\"commodityTypeId\"\r\n (ngModelChange)=\"filterByCommodityType($event)\">\r\n <option [ngValue]=\"null\">\r\n {{ 'All Commodity Types' | translate}}\r\n </option>\r\n <option *ngFor=\"let commodityType of commodityTypes\"\r\n [ngValue]=\"commodityType.Id\">\r\n {{commodityType.Name}}</option>\r\n </select>\r\n <select class=\"bk-data-table__search--select\"\r\n [(ngModel)]=\"stateId\"\r\n (ngModelChange)=\"filterByState($event)\">\r\n <option [ngValue]=\"null\">\r\n {{ 'All States' | translate}}\r\n </option>\r\n <option *ngFor=\"let state of states\"\r\n [ngValue]=\"state.Id\">\r\n {{state.Name}}\r\n </option>\r\n </select>\r\n <select class=\"bk-data-table__search--select\"\r\n [(ngModel)]=\"countyId\"\r\n (ngModelChange)=\"filterByCounty($event)\">\r\n <option [ngValue]=\"null\">\r\n {{ 'All Counties' | translate}}\r\n </option>\r\n <option *ngFor=\"let county of counties\"\r\n [ngValue]=\"county.Id\">\r\n {{county.Name}}\r\n </option>\r\n </select>\r\n\r\n <mat-form-field>\r\n <mat-label>{{ 'Show Data From' | translate }}</mat-label>\r\n <input matInput [matDatepicker]=\"start\"\r\n #startInput\r\n readonly\r\n (dateChange)=\"updateStartDate(startInput.value)\"\r\n [(ngModel)]=\"startDate\">\r\n <mat-datepicker-toggle matSuffix [for]=\"start\"></mat-datepicker-toggle>\r\n <mat-datepicker #start></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field>\r\n <mat-label>{{ 'to' | translate}}</mat-label>\r\n <input matInput [matDatepicker]=\"end\"\r\n #endInput\r\n readonly\r\n (dateChange)=\"updateEndDate(endInput.value)\"\r\n [(ngModel)]=\"endDate\">\r\n <mat-datepicker-toggle matSuffix [for]=\"end\"></mat-datepicker-toggle>\r\n <mat-datepicker #end></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"bk-chart\" #usageChartContainer></div>\r\n <div class=\"bk-chart\" #eventChartContainer></div>\r\n \r\n <app-statistics-summary\r\n [results]=\"statisticsSummary\">\r\n </app-statistics-summary>\r\n\r\n <app-statistics-ranches\r\n [start]=\"startDate\"\r\n [end]=\"endDate\"\r\n [commodityTypeId]=\"commodityTypeId\"\r\n [stateId]=\"stateId\"\r\n [countyId]=\"countyId\">\r\n </app-statistics-ranches>\r\n</div>","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TokenService } from '../../services/token.service';\r\nimport { StatisticsService } from './statistics.service';\r\nimport { AdministrativeArea, ICounty, IStatisticsRecord, StatisticsModel, StatisticsRanchDetails, StatisticsRecord } from './interfaces';\r\nimport * as Highcharts from 'highcharts';\r\nrequire('highcharts/modules/exporting')(Highcharts);\r\nimport { IHighchartsXAxis, IHighchartsData } from '../../interfaces/views/highCharts';\r\nimport { DateUtility } from '../../classes/dateUtility';\r\nimport highChartExportOptions from '../../components/shared/highchartsExportOptions';\r\nimport { CommodityService } from '../../models/commodity-type/service';\r\nimport { ICommodityType } from '../../models/commodity-type/interfaces';\r\nimport { IIdNamePair } from '../../interfaces/abstract';\r\nimport { IWeatherStationRegion } from '../../models/region/interfaces';\r\n\r\n@Component({\r\n\tselector: 'app-statistics-page',\r\n\ttemplateUrl: 'statistics.page.html',\r\n\tstyleUrls: [ 'statistics.page.scss' ]\r\n})\r\nexport class StatisticsPage implements OnInit {\r\n\tpublic administrativeAreas: AdministrativeArea[];\r\n\tpublic counties: ICounty[];\r\n\tpublic states: IIdNamePair[];\r\n\tpublic commodityTypeId: number;\r\n\tpublic commodityTypes: IIdNamePair[];\r\n\tpublic endDate: Date;\r\n\tpublic stateId: number;\r\n\tpublic countyId: number;\r\n\tpublic regions: IIdNamePair[];\r\n\tpublic startDate: Date;\r\n\tpublic statisticsSummary: StatisticsRecord[]; // summary of statistics within a date range\r\n\r\n\tprivate _commodityTypes: ICommodityType[];\r\n\tprivate _eventsPoints: Highcharts.IndividualSeriesOptions[];\r\n\r\n\t@ViewChild('eventChartContainer', { static: true })\r\n\t_eventChartContainer: ElementRef;\r\n\r\n\tprivate _counties: ICounty[];\r\n\tprivate _states: IIdNamePair[];\r\n\tprivate _statsCombined: StatisticsRecord[];\r\n\r\n\t@ViewChild('usageChartContainer', { static: true })\r\n\t_usageChartContainer: ElementRef;\r\n\r\n\tprivate _usagePoints: Highcharts.IndividualSeriesOptions[];\r\n\r\n\tconstructor(\r\n\t\tprivate _commodityTypeService: CommodityService,\r\n\t\tprivate _router: Router,\r\n\t\tprivate _service: StatisticsService,\r\n\t\tprivate _tokenService: TokenService,\r\n\t) {\r\n\t\t// redirect to login page if not logged in\r\n\t\tif (!this._tokenService.isAuthenticated()) {\r\n\t\t\tthis._router.navigate(['/login']);\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.commodityTypeId = null;\r\n\t\tthis.stateId = null;\r\n\t\tthis.countyId = null;\r\n\t\tthis.endDate = new Date();\r\n\t\tthis.startDate = new Date();\r\n\r\n\t\tthis.startDate.setMonth(this.endDate.getMonth() - 12);\r\n\r\n\t\tthis._list().then(() => {\r\n\t\t\tthis._commodityTypeService.list().then((response) => {\r\n\t\t\t\tthis._commodityTypes = response;\r\n\r\n\t\t\t\tthis._service.getAdministrativeAreas().then((res) => {\r\n\t\t\t\t\tthis.administrativeAreas = res;\r\n\t\t\t\t\tthis._separateStatesAndCounties(this.administrativeAreas);\r\n\t\t\t\t\tthis._updateFilters();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Create a list of states and counties based on a flat list of administrative\r\n\t * areas\r\n\t * @param adminAreas\r\n\t */\r\n\tpublic _separateStatesAndCounties(adminAreas: AdministrativeArea[]) {\r\n\t\tthis._states = [];\r\n\t\tthis._counties = [];\r\n\r\n\t\tadminAreas.filter(x => x.AdministrativeAreaLevel === 1).forEach(s => { this._states.push({\r\n\t\t\tId: s.Id,\r\n\t\t\tName: s.Name,\r\n\t\t})});\r\n\r\n\t\tadminAreas.filter(x => x.AdministrativeAreaLevel === 2).forEach(c => { this._counties.push({\r\n\t\t\tId: c.Id,\r\n\t\t\tName: c.Name,\r\n\t\t\tParentId: c.ParentId\r\n\t\t})})\r\n\t}\r\n\r\n\tpublic async filterByCommodityType(commodityTypeId: number): Promise<void> {\r\n\t\tthis.commodityTypeId = commodityTypeId;\r\n\t\tthis._updateFilters();\r\n\t\tthis._reloadStatistics();\r\n\t}\r\n\r\n\tpublic async filterByCounty(countyId: number): Promise<void> {\r\n\t\tthis.countyId = countyId;\r\n\t\tthis._updateFilters();\r\n\t\tthis._reloadStatistics();\r\n\t}\r\n\r\n\tpublic async filterByState(stateId: number): Promise<void> {\r\n\t\tif (this.stateId !== stateId) {\r\n\t\t\tthis.countyId = null;\r\n\t\t}\r\n\r\n\t\tthis.stateId = stateId;\r\n\t\tthis._updateFilters();\r\n\t\tthis._reloadStatistics();\r\n\t}\r\n\r\n\tpublic async updateStartDate(start: string): Promise<void> {\r\n\t\tthis.startDate = new Date(start);\r\n\t\tthis._reloadStatistics();\r\n\t}\r\n\r\n\tpublic async updateEndDate(end: string): Promise<void> {\r\n\t\tthis.endDate = new Date(end);\r\n\t\tthis._reloadStatistics();\r\n\t}\r\n\r\n\tprivate _convertToGraphData(): void {\r\n\r\n\t\tlet temp: {\r\n\t\t\tusers: Highcharts.IndividualSeriesOptions,\r\n\t\t\tranches: Highcharts.IndividualSeriesOptions,\r\n\t\t\tacres: Highcharts.IndividualSeriesOptions,\r\n\t\t\tplantings: IHighchartsData,\r\n\t\t\tirrigations: IHighchartsData,\r\n\t\t\tfertilizations: IHighchartsData,\r\n\t\t\tsoilSamples: IHighchartsData,\r\n\t\t\tcuts: IHighchartsData,\r\n\t\t\ttissueSamples: IHighchartsData,\r\n\t\t\ttotalEvents: IHighchartsData,\r\n\t\t};\r\n\r\n\t\tlet tempPoints: {\r\n\t\t\tusage: Highcharts.IndividualSeriesOptions[],\r\n\t\t\tevents: Highcharts.IndividualSeriesOptions[]\r\n\t\t}\r\n\r\n\t\tlet results: IStatisticsRecord[];\r\n\r\n\t\tresults = [];\r\n\r\n\t\ttempPoints = {\r\n\t\t\tusage: [],\r\n\t\t\tevents: []\r\n\t\t};\r\n\r\n\t\ttemp = {\r\n\t\t\tusers: {\r\n\t\t\t\tname: 'Users',\r\n\t\t\t\tvisible: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t\tyAxis: 0,\r\n\t\t\t},\r\n\t\t\tranches: {\r\n\t\t\t\tname: 'Ranches',\r\n\t\t\t\tvisible: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t\tyAxis: 0,\r\n\t\t\t},\r\n\t\t\tacres: {\r\n\t\t\t\tname: 'Acres',\r\n\t\t\t\tvisible: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t\tyAxis: 1\r\n\t\t\t},\r\n\t\t\tplantings: {\r\n\t\t\t\tname: 'Plantings',\r\n\t\t\t\tvisible: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t},\r\n\t\t\tirrigations: {\r\n\t\t\t\tname: 'Irrigations',\r\n\t\t\t\tvisible: true,\r\n\t\t\t\tdata: []\r\n\t\t\t},\r\n\t\t\tfertilizations: {\r\n\t\t\t\tname: 'Fertilizations',\r\n\t\t\t\tvisible: true,\r\n\t\t\t\tdata: []\r\n\t\t\t},\r\n\t\t\tsoilSamples: {\r\n\t\t\t\tname: 'Soil Samples',\r\n\t\t\t\tvisible: true,\r\n\t\t\t\tdata: []\r\n\t\t\t},\r\n\t\t\tcuts: {\r\n\t\t\t\tname: 'Cut Events',\r\n\t\t\t\tvisible: true,\r\n\t\t\t\tdata: []\r\n\t\t\t},\r\n\t\t\ttissueSamples: {\r\n\t\t\t\tname: 'Tissue Samples',\r\n\t\t\t\tvisible: true,\r\n\t\t\t\tdata: []\r\n\t\t\t},\r\n\t\t\ttotalEvents: {\r\n\t\t\t\tname: 'Total Events',\r\n\t\t\t\tvisible: false,\r\n\t\t\t\tdata: []\r\n\t\t\t},\r\n\t\t}\r\n\r\n\t\tfor (let record of this._statsCombined) {\r\n\t\t\tlet utc: number;\r\n\r\n\t\t\tutc = DateUtility.DateToUTC(DateUtility.DotNetToDate(record.Date));\r\n\r\n\t\t\tresults.push({\r\n\t\t\t\tUTC: utc,\r\n\t\t\t\tRanches: record.Ranches,\r\n\t\t\t\tAcres: record.Acres,\r\n\t\t\t\tUsers: record.Users,\r\n\t\t\t\tLotPlantings: record.Plantings,\r\n\t\t\t\tIrrigations: record.IrrigationEvents,\r\n\t\t\t\tFertilizations: record.FertilizationEvents,\r\n\t\t\t\tSoilSamples: record.SoilSampleEvents,\r\n\t\t\t\tCuts: record.CutEvents,\r\n\t\t\t\tTissueSamples: record.TissueSampleEvents\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tresults.sort((a, b) => {\r\n\t\t\treturn a.UTC - b.UTC;\r\n\t\t});\r\n\r\n\t\tfor (let result of results) {\r\n\t\t\tlet total: number;\r\n\r\n\t\t\tif (result.Ranches > 0) {\r\n\t\t\t\ttemp.ranches.data.push([result.UTC, result.Ranches]);\r\n\t\t\t}\r\n\r\n\t\t\tif (result.Acres > 0) {\r\n\t\t\t\ttemp.acres.data.push([result.UTC, result.Acres]);\r\n\t\t\t}\r\n\r\n\t\t\tif (result.LotPlantings > 0) {\r\n\t\t\t\ttemp.plantings.data.push([result.UTC, result.LotPlantings]);\r\n\t\t\t}\r\n\r\n\t\t\ttemp.users.data.push([result.UTC, result.Users])\r\n\r\n\t\t\tif (result.Irrigations > 0) {\r\n\t\t\t\ttemp.irrigations.data.push([result.UTC, result.Irrigations]);\r\n\t\t\t}\r\n\r\n\t\t\tif (result.Fertilizations > 0) {\r\n\t\t\t\ttemp.fertilizations.data.push([result.UTC, result.Fertilizations]);\r\n\t\t\t}\r\n\r\n\t\t\tif (result.SoilSamples > 0) {\r\n\t\t\t\ttemp.soilSamples.data.push([result.UTC, result.SoilSamples]);\r\n\t\t\t}\r\n\r\n\t\t\tif (result.Cuts > 0) {\r\n\t\t\t\ttemp.cuts.data.push([result.UTC, result.Cuts]);\r\n\t\t\t}\r\n\r\n\t\t\tif (result.TissueSamples > 0) {\r\n\t\t\t\ttemp.tissueSamples.data.push([result.UTC, result.TissueSamples]);\r\n\t\t\t}\r\n\r\n\t\t\ttotal = result.Irrigations +\r\n\t\t\t\tresult.Fertilizations + result.SoilSamples + result.Cuts\r\n\t\t\t\t+ result.TissueSamples;\r\n\r\n\t\t\tif (total > 0) {\r\n\t\t\t\ttemp.totalEvents.data.push([result.UTC, total]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (temp.ranches.data.length > 0) {\r\n\t\t\ttempPoints.usage.push(temp.ranches);\r\n\t\t}\r\n\r\n\t\tif (temp.acres.data.length > 0) {\r\n\t\t\ttempPoints.usage.push(temp.acres);\r\n\t\t}\r\n\r\n\t\tif (temp.plantings.data.length > 0) {\r\n\t\t\ttempPoints.usage.push(temp.plantings);\r\n\t\t}\r\n\r\n\t\tif (temp.users.data.length > 0) {\r\n\t\t\ttempPoints.usage.push(temp.users);\r\n\t\t}\r\n\r\n\t\tif (temp.irrigations.data.length > 0) {\r\n\t\t\ttempPoints.events.push(temp.irrigations);\r\n\t\t}\r\n\r\n\t\tif (temp.fertilizations.data.length > 0) {\r\n\t\t\ttempPoints.events.push(temp.fertilizations);\r\n\t\t}\r\n\r\n\t\tif (temp.soilSamples.data.length > 0) {\r\n\t\t\ttempPoints.events.push(temp.soilSamples);\r\n\t\t}\r\n\r\n\t\tif (temp.cuts.data.length > 0) {\r\n\t\t\ttempPoints.events.push(temp.cuts);\r\n\t\t}\r\n\r\n\t\tif (temp.tissueSamples.data.length > 0) {\r\n\t\t\ttempPoints.events.push(temp.tissueSamples);\r\n\t\t}\r\n\r\n\t\tif (temp.totalEvents.data.length > 0) {\r\n\t\t\ttempPoints.events.push(temp.totalEvents);\r\n\t\t}\r\n\r\n\t\tthis._eventsPoints = tempPoints.events;\r\n\t\tthis._usagePoints = tempPoints.usage;\r\n\t}\r\n\r\n\tprivate _drawGraph(chart: ElementRef, data: Highcharts.IndividualSeriesOptions[], chartType?: string): void {\r\n\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet options: Highcharts.Options;\r\n\t\tlet xAxis: IHighchartsXAxis;\r\n\r\n\t\txAxis = {\r\n\t\t\ttype: 'datetime',\r\n\t\t\tgridLineWidth: 1\r\n\t\t}\r\n\r\n\t\toptions = {\r\n\t\t\tchart: {\r\n\t\t\t\ttype: chartType ? chartType : 'line',\r\n\t\t\t},\r\n\t\t\ttitle: {\r\n\t\t\t\ttext: null,\r\n\t\t\t},\r\n\t\t\tlegend: {\r\n\t\t\t\ttitle: {\r\n\t\t\t\t\ttext: null,\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\ttooltip: {\r\n\t\t\t\t// backgroundColor: '#FFF',\r\n\t\t\t\t// borderColor: '#FFF',\r\n\t\t\t},\r\n\t\t\txAxis: xAxis,\r\n\t\t\tyAxis: [{\r\n\t\t\t\ttitle: {\r\n\t\t\t\t\ttext: null\r\n\t\t\t\t}\r\n\t\t\t}],\r\n\t\t\tseries: data,\r\n\t\t\texporting: highChartExportOptions\r\n\t\t}\r\n\r\n\t\tHighcharts.chart(chart.nativeElement, options);\r\n\t}\r\n\r\n\tprivate _drawUsageGraph(chart: ElementRef, data: Highcharts.IndividualSeriesOptions[],\r\n\t\tchartType?: string): void {\r\n\r\n\t\tlet options: Highcharts.Options;\r\n\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\toptions = {\r\n\t\t\tchart: {\r\n\t\t\t\ttype: chartType ? chartType : 'line',\r\n\t\t\t},\r\n\t\t\ttitle: {\r\n\t\t\t\ttext: null,\r\n\t\t\t},\r\n\t\t\tlegend: {\r\n\t\t\t\ttitle: {\r\n\t\t\t\t\ttext: null,\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\ttooltip: {\r\n\t\t\t\t// backgroundColor: '#FFF',\r\n\t\t\t\t// borderColor: '#FFF',\r\n\t\t\t},\r\n\t\t\txAxis: {\r\n\t\t\t\ttype: 'datetime',\r\n\t\t\t\tgridLineWidth: 1\r\n\t\t\t},\r\n\t\t\tyAxis: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle: {\r\n\t\t\t\t\t\ttext: null\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle: {\r\n\t\t\t\t\t\ttext: null\r\n\t\t\t\t\t},\r\n\t\t\t\t\topposite: true,\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tseries: data,\r\n\t\t\texporting: highChartExportOptions\r\n\t\t}\r\n\r\n\t\tHighcharts.chart(chart.nativeElement, options);\r\n\t}\r\n\r\n\tprivate _filterCommodityTypeOptions(commodityTypeIds: number[]): void {\r\n\t\tlet temp: IIdNamePair[];\r\n\r\n\t\ttemp = new Array();\r\n\r\n\t\tfor (let item of this._commodityTypes) {\r\n\t\t\tif (commodityTypeIds.find(x => x === item.Id)) {\r\n\t\t\t\ttemp.push({\r\n\t\t\t\t\tId: item.Id,\r\n\t\t\t\t\tName: item.Name,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.commodityTypes = temp;\r\n\t}\r\n\r\n\tprivate _filterStateOptions(stateIds: number[]): void {\r\n\t\tlet temp: IIdNamePair[];\r\n\r\n\t\ttemp = new Array();\r\n\r\n\t\tfor (let item of this._states) {\r\n\t\t\tif (stateIds.find(x => x === item.Id)) {\r\n\t\t\t\ttemp.push({\r\n\t\t\t\t\tId: item.Id,\r\n\t\t\t\t\tName: item.Name,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.states = temp;\r\n\t}\r\n\r\n\tprivate _filterCountyOptions(countyIds: number[]): void {\r\n\t\tlet temp: ICounty[];\r\n\r\n\t\ttemp = new Array();\r\n\r\n\t\tfor (let item of this._counties) {\r\n\t\t\tif (countyIds.find(x => x === item.Id)) {\r\n\t\t\t\ttemp.push({\r\n\t\t\t\t\tId: item.Id,\r\n\t\t\t\t\tName: item.Name,\r\n\t\t\t\t\tParentId: item.ParentId\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.counties = temp;\r\n\t}\r\n\r\n\tprivate async _list(): Promise<void> {\r\n\t\tthis._statsCombined = await this._service.list(this.startDate, this.endDate, this.commodityTypeId, this.stateId,\r\n\t\t\tthis.countyId);\r\n\r\n\t\tthis.statisticsSummary = [];\r\n\t\tthis.statisticsSummary.push(this._statsCombined.pop()); // grab the last element as the summary\r\n\t\t\t// since the summary is a table view, we create an array\r\n\t\tthis._loadGraph();\r\n\t}\r\n\r\n\tprivate _loadGraph(): void {\r\n\r\n\t\tthis._convertToGraphData();\r\n\t\tthis._drawUsageGraph(this._usageChartContainer, this._usagePoints);\r\n\t\tthis._drawGraph(this._eventChartContainer, this._eventsPoints, 'column');\r\n\t}\r\n\r\n\tprivate _reloadStatistics(): void {\r\n\t\tthis._list().then(() => {\r\n\t\t\tthis._updateFilters();\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _updateFilters(): void {\r\n\t\tthis._service.getDropdowns(this.startDate, this.endDate, this.commodityTypeId, this.stateId, this.countyId)\r\n\t\t\t.then((res) => {\r\n\t\t\tthis._filterCommodityTypeOptions(res.CommodityTypeIds);\r\n\t\t\tthis._filterStateOptions(res.StateIds);\r\n\t\t\tthis._filterCountyOptions(res.CountyIds);\r\n\t\t});\r\n\t}\r\n}\r\n","import { Routes, RouterModule } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\nimport { StatisticsPage } from './statistics.page';\r\n\r\nconst routes: Routes = [\r\n\t{ path: '', component: StatisticsPage }\r\n];\r\n\r\n@NgModule({\r\n\timports: [RouterModule.forChild(routes)],\r\n\texports: [RouterModule]\r\n})\r\n\r\nexport class StatisticsRoutingModule { }\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ModelService } from '../../services/model.service';\r\nimport { AdministrativeArea, IStatisticsService, StatisticsDropdownOptions,\r\n\tStatisticsRanchDetails, StatisticsRecord } from './interfaces';\r\n\r\n\r\n@Injectable()\r\nexport class StatisticsService extends ModelService implements IStatisticsService {\r\n\r\n\tprivate urls = {\r\n\t\tlist: '/v2/statistics.json',\r\n\t\tgetDropdowns: '/v2/statistics/dropdowns.json',\r\n\t\tranches: '/v2/statistics/ranches.json',\r\n\t\tgetAdminAreas: '/v2/statistics/administrative-areas.json',\r\n\t}\r\n\r\n\tpublic getDropdowns(start: Date, end: Date, commodityTypeId?: number,\r\n\t\tstateId?: number, countyId?: number): Promise<StatisticsDropdownOptions> {\r\n\r\n\t\tlet params: HttpParams;\r\n\r\n\t\tif (!start || !end) {\r\n\t\t\tthrow new Error('StatisticsService: start or end dates missing');\r\n\t\t}\r\n\r\n\t\tparams = new HttpParams()\r\n\t\t\t.set('start', start.toLocaleDateString())\r\n\t\t\t.set('end', end.toLocaleDateString())\r\n\r\n\t\tif (commodityTypeId) {\r\n\t\t\tparams = params.set('commodityTypeId', commodityTypeId.toString());\r\n\t\t}\r\n\r\n\t\tif (stateId) {\r\n\t\t\tparams = params.set('stateId', stateId.toString());\r\n\t\t}\r\n\r\n\t\tif (countyId) {\r\n\t\t\tparams = params.set('countyId', countyId.toString());\r\n\t\t}\r\n\r\n\t\treturn this.get(this.urls.getDropdowns,\r\n\t\t\t(data: StatisticsDropdownOptions): StatisticsDropdownOptions => {\r\n\t\t\t\treturn data;\r\n\t\t\t},\r\n\t\t\tparams\r\n\t\t);\r\n\t}\r\n\r\n\tpublic list(start: Date, end: Date, commodityTypeId?: number, stateId?: number, countyId?: number): Promise<StatisticsRecord[]> {\r\n\t\tlet params: HttpParams;\r\n\r\n\t\tif (!start || !end) {\r\n\t\t\tthrow new Error('StatisticsService: start or end dates missing');\r\n\t\t}\r\n\r\n\t\tparams = new HttpParams()\r\n\t\t\t.set('start', start.toLocaleDateString())\r\n\t\t\t.set('end', end.toLocaleDateString())\r\n\r\n\t\tif (commodityTypeId) {\r\n\t\t\tparams = params.set('commodityTypeId', commodityTypeId.toString());\r\n\t\t}\r\n\r\n\t\tif (stateId) {\r\n\t\t\tparams = params.set('stateId', stateId.toString());\r\n\t\t}\r\n\r\n\t\tif (countyId) {\r\n\t\t\tparams = params.set('countyId', countyId.toString());\r\n\t\t}\r\n\r\n\t\treturn this.get(this.urls.list,\r\n\t\t\t(data: StatisticsRecord[]): StatisticsRecord[] => {\r\n\t\t\t\treturn data;\r\n\t\t\t},\r\n\t\t\tparams\r\n\t\t);\r\n\t}\r\n\r\n\t/***\r\n\t * Get a list of administrative areas, to use for filtering the statistics view\r\n\t */\r\n\tpublic getAdministrativeAreas(): Promise<AdministrativeArea[]> {\r\n\t\treturn this.get(this.urls.getAdminAreas,\r\n\t\t\t(data: AdministrativeArea[]): AdministrativeArea[] => {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tpublic ranches(start: Date, end: Date, commodityTypeId?: number, stateId?: number, countyId?: number): Promise<StatisticsRanchDetails[]> {\r\n\t\tlet params: HttpParams;\r\n\r\n\t\tif (!start || !end) {\r\n\t\t\tthrow new Error('StatisticsService: start or end dates missing');\r\n\t\t}\r\n\r\n\t\tparams = new HttpParams()\r\n\t\t\t.set('start', start.toLocaleDateString())\r\n\t\t\t.set('end', end.toLocaleDateString());\r\n\r\n\t\tif (commodityTypeId) {\r\n\t\t\tparams = params.set('commodityTypeId', commodityTypeId.toString())\r\n\t\t}\r\n\r\n\t\tif (stateId) {\r\n\t\t\tparams = params.set('stateId', stateId.toString());\r\n\t\t}\r\n\r\n\t\tif (countyId) {\r\n\t\t\tparams = params.set('countyId', countyId.toString());\r\n\t\t}\r\n\r\n\t\treturn this.get(this.urls.ranches,\r\n\t\t\t(data: StatisticsRanchDetails[]): StatisticsRanchDetails[] => {\r\n\t\t\t\treturn data;\r\n\t\t\t},\r\n\t\t\tparams\r\n\t\t);\r\n\t}\r\n}\r\n"],"sourceRoot":"webpack:///"}