{"version":3,"file":"src_Client_routes_contracts_module_ts-es2015.js","mappings":"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","sources":["./src/Client/routes/contracts/component.ts","./src/Client/routes/contracts/component.html","./src/Client/routes/contracts/details/component.ts","./src/Client/routes/contracts/details/component.html","./src/Client/routes/contracts/module.ts","./src/Client/routes/contracts/results/component.ts","./src/Client/routes/contracts/results/component.html","./src/Client/routes/contracts/search/component.ts","./src/Client/routes/contracts/search/component.html","./src/Client/services/contracts.service.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AnalyticsService } from '../../services/analytics.service';\r\nimport { NavigatorComponent } from '../navigator.component';\r\n\r\n@Component({\r\n selector: 'app-Cotnracts',\r\n templateUrl: './component.html'\r\n})\r\nexport class ContractsComponent extends NavigatorComponent {\r\n constructor(router: Router, analytics: AnalyticsService) {\r\n super(router, analytics);\r\n }\r\n}\r\n","<router-outlet (activate)=\"onRouterOutletActivate($event)\"></router-outlet>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CommonUtilities } from 'src/Client/utilities/common-utilities';\r\nimport { environment } from '../../../environments/environment';\r\nimport { ServiceError } from '../../../services/base-service';\r\nimport { ContractsService } from '../../../services/contracts.service';\r\n\r\n@Component({\r\n selector: 'app-contract-details',\r\n templateUrl: './component.html',\r\n styleUrls: ['./component.css']\r\n})\r\nexport class ContractDetailsComponent implements OnInit {\r\n public hash: string;\r\n public dataItem: any;\r\n public isLoading: boolean;\r\n public errorMessage: string;\r\n\r\n private contractId: string;\r\n\r\n constructor(private service: ContractsService, route: ActivatedRoute) {\r\n this.isLoading = true;\r\n this.hash = route.snapshot.queryParams.hash;\r\n\r\n this.contractId = decodeURIComponent(route.snapshot.queryParams.id);\r\n\r\n this.loadDetails();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getFileType(name: string): string {\r\n return CommonUtilities.getFileType(name);\r\n }\r\n\r\n downloadAttachment(event: Event, docId: string): void {\r\n event.preventDefault();\r\n\r\n var win = window.open();\r\n win.location.replace((environment.apiUrl ? environment.apiUrl : '') + '/contracts/attachments/' + docId);\r\n }\r\n\r\n private loadDetails(): any {\r\n var __this__ = this;\r\n this.service.getDetails(this.contractId)\r\n .subscribe(\r\n function (item) {\r\n __this__.dataItem = item;\r\n __this__.errorMessage = null\r\n },\r\n function (error: ServiceError) {\r\n console.log(error.message);\r\n __this__.errorMessage = \"Failed to retrieve contract details\";\r\n __this__.isLoading = false;\r\n },\r\n function () {\r\n __this__.isLoading = false;\r\n });\r\n }\r\n}\r\n","<div class=\"entry\" style=\"margin-left:15px;margin-right:15px;\">\r\n <a routerLink=\"/contracts/results\" [queryParams]=\"{'hash':hash}\"><span class=\"fa fa-chevron-left\"></span> <span style=\"margin-left:8px;\">Back to Search Results</span></a>\r\n</div>\r\n<div class=\"entry\" style=\"margin-left:15px;margin-right:15px;\">\r\n <h1>Contract Details</h1>\r\n</div>\r\n<div class=\"error-message\" *ngIf=\"errorMessage\">{{errorMessage}}</div>\r\n<div style=\"margin-left:15px;margin-right:15px;\" *ngIf=\"dataItem\">\r\n <div class=\"row\">\r\n <div class=\"col col-lg-8\">\r\n <div class=\"entry\">\r\n <div class=\"label\">Contract Number</div>\r\n <div class=\"value\">{{dataItem.contractNumber}}</div>\r\n </div>\r\n <div class=\"entry\" *ngIf=\"dataItem.contractType\">\r\n <div class=\"label\">Contract Type</div>\r\n <div class=\"value\">{{dataItem.contractType}}</div>\r\n </div>\r\n <div class=\"entry\" *ngIf=\"dataItem.agencyNames && dataItem.agencyNames.length > 0\">\r\n <div class=\"label\">Agency</div>\r\n <div class=\"value\"><span *ngFor=\"let name of dataItem.agencyNames\">{{name}}<br /></span></div>\r\n </div>\r\n <div class=\"entry\">\r\n <div class=\"label\">Vendor</div>\r\n <div class=\"value\">{{dataItem.vendor}}</div>\r\n <div class=\"value\" *ngIf=\"dataItem.vendorStreet && dataItem.vendorCity && dataItem.vendorState && dataItem.vendorZip\">{{dataItem.vendorStreet}}</div>\r\n <div class=\"value\" *ngIf=\"dataItem.vendorStreet && dataItem.vendorCity && dataItem.vendorState && dataItem.vendorZip\">{{dataItem.vendorCity}}, {{dataItem.vendorState}} {{dataItem.vendorZip}}</div>\r\n </div>\r\n <div class=\"entry\">\r\n <div class=\"label\">Title</div>\r\n <div class=\"value\">{{dataItem.title}}</div>\r\n </div>\r\n <div class=\"entry\">\r\n <div class=\"label\">Contract Amount</div>\r\n <div class=\"value\">{{dataItem.contractAmount}}</div>\r\n </div>\r\n <div class=\"entry\">\r\n <div class=\"label\">Contract Period</div>\r\n <div class=\"value\">{{dataItem.currentOptionPeriod}}<br />{{dataItem.startDate}} - {{dataItem.endDate}}</div>\r\n </div>\r\n <div class=\"entry\">\r\n <div class=\"label\">NIGP Code</div>\r\n <div class=\"value\"><span *ngFor=\"let commodity of dataItem.commodityCodes\">{{commodity}}<br /></span></div>\r\n </div>\r\n <div class=\"entry\">\r\n <div class=\"label\">Market Type</div>\r\n <div class=\"value\">{{dataItem.marketType}}</div>\r\n </div>\r\n </div>\r\n <div class=\"col\">\r\n <div class=\"entry\">\r\n <div class=\"label\">Contracting Officer</div>\r\n <div class=\"value\"><span class=\"fa fa-address-book icon\" aria-hidden=\"true\"></span>{{dataItem.contractingOfficerName}}</div>\r\n <div class=\"value\" *ngIf=\"dataItem.contractingOfficerEmail\"><a href=\"mailto:{{dataItem.contractingOfficerEmail}}\" attr.aria-label=\"contracting officer email address - {{dataItem.contractingOfficerEmail}}\"><span class=\"fa fa-envelope icon\" aria-hidden=\"true\"></span>{{dataItem.contractingOfficerEmail}}</a></div>\r\n <div class=\"value\"><a href=\"tel:2027244477\" aria-label=\"contracting officer phone number - (202) 724 4477\"><span class=\"fa fa-phone icon\"></span>202-724-4477</a></div>\r\n </div>\r\n <div class=\"entry\" *ngIf=\"dataItem.contractingSpecialistName\">\r\n <div class=\"label\">Contract Specialist</div>\r\n <div class=\"value\"><span class=\"fa fa-address-book icon\" aria-hidden=\"true\"></span>{{dataItem.contractingSpecialistName}}</div>\r\n <div class=\"value\" *ngIf=\"dataItem.contractingSpecialistEmail\"><a href=\"mailto:{{dataItem.contractingSpecialistEmail}}\" attr.aria-label=\"contract specialist email address - {{dataItem.contractingSpecialistEmail}}\"><span class=\"fa fa-envelope icon\" aria-hidden=\"true\"></span>{{dataItem.contractingSpecialistEmail}}</a></div>\r\n </div>\r\n <hr />\r\n <div class=\"entry\">\r\n <div class=\"label\">Attachments</div>\r\n <div *ngIf=\"dataItem.documents.length<1\">No attachments found</div>\r\n <div class=\"value\" *ngFor=\"let doc of dataItem.documents\">\r\n <a href=\"javascript:void(0)\" attr.aria-label=\"attachment - {{doc.name}}\" (click)=\"downloadAttachment($event, doc.id)\"><span class=\"fa icon {{getFileType(doc.name)}}\"></span>{{doc.name}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"isLoading\" class=\"loader-overlay text-center\"></div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { BsDatepickerModule, TabsModule, TypeaheadModule } from 'ngx-bootstrap';\r\nimport { ComponentsModule } from '../../components/module';\r\nimport { NavigationGuard } from '../../providers/navigation-gaurds';\r\nimport { ContractsComponent } from './component';\r\nimport { ContractDetailsComponent } from './details/component';\r\nimport { ContractsResultsComponent } from './results/component';\r\nimport { ContractsSearchComponent } from './search/component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ContractsComponent,\r\n ContractsSearchComponent,\r\n ContractsResultsComponent,\r\n ContractDetailsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ComponentsModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: ContractsComponent,\r\n children: [\r\n {\r\n path: 'search',\r\n component: ContractsSearchComponent,\r\n canDeactivate: [NavigationGuard]\r\n },\r\n {\r\n path: 'results',\r\n component: ContractsResultsComponent,\r\n canDeactivate: [NavigationGuard]\r\n },\r\n {\r\n path: 'details',\r\n component: ContractDetailsComponent\r\n }\r\n ]\r\n }\r\n ]),\r\n BsDatepickerModule.forRoot(),\r\n FormsModule,\r\n TypeaheadModule.forRoot(),\r\n TabsModule.forRoot(),\r\n ]\r\n})\r\nexport class ContractsModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\nimport { CustomDimension, ICustomDimensionProvider } from '../../../common/custom-dimension-provider';\r\nimport { SortOrder } from '../../../common/enums';\r\nimport { ColumnDefinition, Results, ResultsGridComponent, SortDefinition } from '../../../components/results-grid/component';\r\nimport { CriteriaData } from '../../../providers/criteria-data';\r\nimport { IOnBeforeNavigatingAway } from '../../../providers/navigation-gaurds';\r\nimport { PageState, StateStore } from '../../../providers/state-store';\r\nimport { ApiCriteria, ServiceError } from '../../../services/base-service';\r\nimport { ContractsService } from '../../../services/contracts.service';\r\n\r\n@Component({\r\n selector: 'app-contracts-results',\r\n templateUrl: './component.html',\r\n styleUrls: ['./component.css']\r\n})\r\nexport class ContractsResultsComponent implements OnInit, IOnBeforeNavigatingAway, ICustomDimensionProvider {\r\n public results: ReplaySubject<Results<any>>;\r\n public pageState: PageState;\r\n\r\n public criteria: ApiCriteria;\r\n public hash: string;\r\n\r\n @ViewChild('grid', { static: true }) grid: ResultsGridComponent;\r\n\r\n public columns: ColumnDefinition[] = [{\r\n name: 'contractNumber',\r\n propertyName: 'contractNumber',\r\n title: 'Contract #',\r\n makeHyperlink: true,\r\n widthPercentage: 5,\r\n minWidth: 90,\r\n cellAlignment: 'center',\r\n exportedAs: [{ widthPercentage: 7 }],\r\n }, {\r\n name: 'title',\r\n propertyName: 'title',\r\n title: 'Title',\r\n widthPercentage: 30,\r\n minWidth: 60,\r\n cellAlignment: 'left',\r\n exportedAs: [{ widthPercentage: 23 }],\r\n }, {\r\n name: 'agencyNames',\r\n propertyName: 'agencyNames',\r\n title: 'Agency',\r\n widthPercentage: 17.5,\r\n minWidth: 70,\r\n cellAlignment: 'left',\r\n exportedAs: [{ widthPercentage: 11 }],\r\n }, {\r\n name: 'contractPeriod',\r\n propertyName: '',\r\n valueGetter: function (row): string[] {\r\n return [row.currentOptionPeriod, row.startDate + ' - ' + row.endDate];\r\n },\r\n title: 'Contract Period',\r\n widthPercentage: 13,\r\n minWidth: 120,\r\n cellAlignment: 'center',\r\n exportedAs: [{\r\n propertyName: 'currentOptionPeriod',\r\n title: 'Option Period',\r\n widthPercentage: 9,\r\n }, {\r\n propertyName: 'startDate',\r\n title: 'Start Date',\r\n widthPercentage: 7,\r\n }, {\r\n propertyName: 'endDate',\r\n title: 'End Date',\r\n widthPercentage: 7,\r\n }]\r\n }, {\r\n name: 'awardDate',\r\n propertyName: 'awardDate',\r\n title: 'Award Date',\r\n widthPercentage: 4,\r\n minWidth: 100,\r\n cellAlignment: 'center',\r\n exportedAs: [{ widthPercentage: 7 }],\r\n }, {\r\n name: 'commodityCodes',\r\n propertyName: 'commodityCodes',\r\n title: 'NIGP Code',\r\n widthPercentage: 5,\r\n minWidth: 90,\r\n cellAlignment: 'center',\r\n exportedAs: [{ widthPercentage: 7 }],\r\n }, {\r\n name: 'vendor',\r\n propertyName: 'vendor',\r\n title: 'Vendor/Supplier',\r\n widthPercentage: 17.5,\r\n minWidth: 120,\r\n cellAlignment: 'left',\r\n exportedAs: [{ widthPercentage: 13 }],\r\n }, {\r\n name: 'contractAmount',\r\n propertyName: 'contractAmount',\r\n title: 'Amount',\r\n widthPercentage: 8,\r\n minWidth: 80,\r\n cellAlignment: 'right',\r\n exportedAs: [{ widthPercentage: 9 }],\r\n }];\r\n\r\n constructor(private stateStore: StateStore, data: CriteriaData, private service: ContractsService, route: ActivatedRoute, private router: Router) {\r\n this.hash = route.snapshot.queryParams['hash'];\r\n var criteria = this.hash ? data.contracts.get(this.hash) : null;\r\n\r\n if (!ContractsService.validateCriteria(criteria)) {\r\n router.navigateByUrl('/contracts/search');\r\n }\r\n\r\n this.criteria = {\r\n 'FilterBy': criteria ? criteria.toArray() : [],\r\n 'OrderBy': []\r\n };\r\n\r\n this.pageState = this.stateStore.getState('contracts', 'results', this.hash);\r\n if (this.pageState && this.pageState.orderBy) {\r\n this.criteria.OrderBy.push({ name: this.pageState.orderBy.name, order: this.pageState.orderBy.order });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.retrieveResults();\r\n }\r\n\r\n onNavigatingAway(toUrl: string): boolean | Observable<boolean> | Promise<boolean> {\r\n this.savePageState();\r\n\r\n return true;\r\n }\r\n\r\n sortBy(field: string) {\r\n var sortField: SortDefinition;\r\n if (this.criteria.OrderBy) {\r\n this.criteria.OrderBy.forEach(function (sort) {\r\n if (sort.name === field) {\r\n sortField = sort;\r\n }\r\n }, this);\r\n }\r\n\r\n if (sortField) {\r\n sortField.order = sortField.order === SortOrder.Ascending ? SortOrder.Descending : SortOrder.Ascending;\r\n }\r\n else {\r\n sortField = { name: field, order: SortOrder.Ascending };\r\n this.criteria.OrderBy = [sortField];\r\n }\r\n\r\n if (this.pageState) {\r\n this.pageState.orderBy = sortField;\r\n }\r\n\r\n this.savePageState();\r\n\r\n this.retrieveResults();\r\n }\r\n\r\n onRemoveClick(id: number): void {\r\n for (var i = 0; i < this.criteria.FilterBy.length; i++) {\r\n var fitlerItem = this.criteria.FilterBy[i];\r\n if (fitlerItem.id == id) {\r\n this.criteria.FilterBy.splice(i, 1);\r\n\r\n if (fitlerItem.name === 'Title') {\r\n for (var j = 0; j < this.criteria.FilterBy.length; j++) {\r\n var item = this.criteria.FilterBy[j];\r\n if (item.name === 'Keyword') {\r\n this.criteria.FilterBy.splice(j, 1);\r\n j--;\r\n }\r\n }\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n this.retrieveResults();\r\n }\r\n\r\n onEditSearchClick(): void {\r\n this.router.navigateByUrl('contracts/search?hash=' + this.hash);\r\n }\r\n\r\n onRowClick(row): void {\r\n this.router.navigateByUrl('contracts/details?id=' + encodeURIComponent(row.id) + '&hash=' + this.hash);\r\n }\r\n\r\n getDimensionData(index: CustomDimension): any {\r\n switch (index) {\r\n case 1:\r\n return this.criteria;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private retrieveResults(): void {\r\n var __this__ = this;\r\n this.results = new ReplaySubject<Results<any>>();\r\n this.service\r\n .getResults(this.criteria)\r\n .subscribe(function (data: Results<any>) {\r\n if (data.errorMessage) {\r\n console.warn(data.errorMessage);\r\n __this__.results.error({ message: \"Failed to retrieve data\" });\r\n }\r\n else {\r\n __this__.results.next(data);\r\n }\r\n }, function (error: ServiceError): void {\r\n console.error(error.message);\r\n __this__.results.error({ message: \"Failed to retrieve data\" });\r\n }, function () {\r\n __this__.results.complete();\r\n\r\n __this__.loadPageState();\r\n });\r\n }\r\n\r\n private loadPageState() {\r\n this.grid.loadState();\r\n }\r\n\r\n private savePageState() {\r\n this.grid.saveState();\r\n }\r\n}\r\n","<h1>Search Results</h1>\r\n<app-results-grid #grid\r\n [columns]=\"columns\"\r\n [results]=\"results\"\r\n [state]=\"pageState\"\r\n exportFileName=\"ContractAwards\"\r\n (resultClick)=\"onRowClick($event.target)\"\r\n (editSearch)=\"onEditSearchClick()\"\r\n (removeFilter)=\"onRemoveClick($event.target.id)\"\r\n (orderChange)=\"sortBy($event.target.name)\"></app-results-grid>\r\n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { BsDatepickerConfig, BsModalRef, BsModalService, TabsetComponent, TypeaheadMatch } from 'ngx-bootstrap';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\nimport { INavigationDetails, NavigationTrigger } from 'src/Client/common/navigation-details';\r\nimport { ContractsDatesMode } from '../../../common/enums';\r\nimport { CriteriaCollection, CriteriaData } from '../../../providers/criteria-data';\r\nimport { IOnBeforeNavigatingAway } from '../../../providers/navigation-gaurds';\r\nimport { StateStore } from '../../../providers/state-store';\r\nimport { ContractsService } from '../../../services/contracts.service';\r\nimport { CommonUtilities } from '../../../utilities/common-utilities';\r\n\r\n@Component({\r\n selector: 'app-contracts-search',\r\n templateUrl: './component.html',\r\n styleUrls: ['./component.css']\r\n})\r\nexport class ContractsSearchComponent implements OnInit, IOnBeforeNavigatingAway, INavigationDetails {\r\n public formData: ContractSearchData;\r\n public allSuppliers: string[];\r\n public allContractingOfficers: string[];\r\n public allAgencyClusters: any[];\r\n public allAgencies: any[];\r\n public allCommodities: NigpItem[];\r\n public allTitles: TitleItem[];\r\n public nigpPickerDialog: BsModalRef;\r\n public isLoading: boolean;\r\n public searchError: string;\r\n\r\n @ViewChild('datesTabs', { static: true }) datesTabs: TabsetComponent;\r\n\r\n DatesMode = ContractsDatesMode; // HACK: Allows using the enum in a binding in template\r\n\r\n private hash: string;\r\n private navigationTrigger: NavigationTrigger;\r\n\r\n constructor(private criteriaData: CriteriaData, private state: StateStore, private service: ContractsService, private router: Router, private route: ActivatedRoute, private modalService: BsModalService) {\r\n this.formData = new ContractSearchData(this);\r\n\r\n this.isLoading = true;\r\n var __this__ = this;\r\n this.loadPageData().subscribe(null, null, function () { __this__.isLoading = false; });\r\n }\r\n\r\n setNavigationDetails(trigger: NavigationTrigger): void {\r\n this.navigationTrigger = trigger;;\r\n }\r\n\r\n ngOnInit() {\r\n var __this__ = this;\r\n this.route.queryParams.subscribe(function (query: Params) {\r\n __this__.initialize(query.hash);\r\n });\r\n }\r\n\r\n onNavigatingAway(toUrl: string): boolean | Observable<boolean> | Promise<boolean> {\r\n if (!this.hash) {\r\n var state = this.state.getState('contracts', 'search');\r\n state.formData = this.formData.save();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n onSearchClick(event: Event): void {\r\n event.preventDefault();\r\n\r\n var criteria = this.formData.save();\r\n if (!ContractsService.validateCriteria(criteria)) {\r\n this.searchError = 'At least one of the criteria must be selected';\r\n }\r\n else {\r\n var hash = this.criteriaData.contracts.add(criteria);\r\n this.state['contracts.results.' + hash] = null;\r\n this.router.navigateByUrl('/contracts/results?hash=' + hash);\r\n }\r\n }\r\n\r\n onClearClick(event: Event): void {\r\n event.preventDefault();\r\n\r\n this.formData.clear();\r\n this.searchError = null;\r\n }\r\n\r\n showModal(event: Event, template: TemplateRef<any>): BsModalRef {\r\n event.preventDefault();\r\n\r\n return this.modalService.show(template, { class: 'modal-lg' });\r\n }\r\n\r\n closeModel(event: Event, dalogRef: BsModalRef) {\r\n event.preventDefault();\r\n\r\n dalogRef.hide();\r\n }\r\n\r\n quoteWords(sentence: string): string {\r\n var value = '';\r\n sentence.split(' ').forEach(function (word) {\r\n if (word) {\r\n value = (value ? value + ' ' : '') + '\"' + word.toLowerCase() + '\"';\r\n }\r\n });\r\n\r\n return value;\r\n }\r\n\r\n onAgencyClusterChanged(): void {\r\n if (!this.allAgencyClusters) {\r\n return;\r\n }\r\n\r\n var __this__ = this;\r\n var selectedCluster = this.allAgencyClusters.find(function (cluster) {\r\n return cluster.id === __this__.formData.agencyClusterCode;\r\n }, this);\r\n\r\n var clusters = selectedCluster ? [selectedCluster] : this.allAgencyClusters;\r\n\r\n var agencies = [];\r\n var hasCurrentAgency = false;\r\n\r\n clusters.forEach(function (cluster) {\r\n cluster.agencies.forEach(function (agency) {\r\n agencies.push(agency);\r\n if (agency.id === __this__.formData.agencyCode) {\r\n hasCurrentAgency = true;\r\n }\r\n });\r\n });\r\n\r\n if (!hasCurrentAgency) {\r\n this.formData.agencyCode = '';\r\n }\r\n\r\n agencies.sort(function (x, y) {\r\n return x.displayName > y.displayName ? 1 : x.displayName < y.displayName? -1 : 0;\r\n });\r\n\r\n this.allAgencies = agencies;\r\n }\r\n\r\n getAllMarketTypes(): string[] {\r\n return [\"Open\", \"Set Aside\"];\r\n }\r\n\r\n getAllFiscalYears(): string[] {\r\n return CommonUtilities.getFiscalYears(5, 1);\r\n }\r\n\r\n private initialize(hash: string): void {\r\n this.hash = hash;\r\n var criteria: CriteriaCollection;\r\n if (hash) {\r\n criteria = this.criteriaData.contracts.get(this.hash);\r\n }\r\n else if (this.navigationTrigger === NavigationTrigger.PopState && this.state['contracts.search']) {\r\n criteria = this.state['contracts.search'].formData;\r\n }\r\n\r\n this.formData.initialize(criteria);\r\n }\r\n\r\n private loadPageData(): Observable<any> {\r\n var __this__ = this;\r\n var subject = new ReplaySubject<any>();\r\n var counter = 0;\r\n\r\n counter++;\r\n this.service.getAllSupplierNames().subscribe(function (items: string[]) {\r\n __this__.allSuppliers = items;\r\n }, function () {\r\n __this__.allSuppliers = [];\r\n counter--;\r\n if (counter <= 0) {\r\n subject.complete();\r\n }\r\n }, function () {\r\n counter--;\r\n if (counter <= 0) {\r\n subject.complete();\r\n }\r\n });\r\n\r\n counter++;\r\n this.service.getAllContractingOfficers().subscribe(function (items: string[]) {\r\n __this__.allContractingOfficers = items;\r\n }, function () {\r\n __this__.allContractingOfficers = [];\r\n counter--;\r\n if (counter <= 0) {\r\n subject.complete();\r\n }\r\n }, function () {\r\n counter--;\r\n if (counter <= 0) {\r\n subject.complete();\r\n }\r\n });\r\n\r\n counter++;\r\n this.service.getAllAgencyClusters().subscribe(function (items: any[]) {\r\n __this__.allAgencyClusters = items;\r\n __this__.onAgencyClusterChanged();\r\n }, function () {\r\n __this__.allAgencyClusters = [];\r\n __this__.onAgencyClusterChanged();\r\n counter--;\r\n if (counter <= 0) {\r\n subject.complete();\r\n }\r\n }, function () {\r\n counter--;\r\n if (counter <= 0) {\r\n subject.complete();\r\n }\r\n });\r\n\r\n counter++;\r\n this.service.getAllTitles().subscribe(function (items: string[]) {\r\n __this__.allTitles = [];\r\n items.forEach(function (item) {\r\n __this__.allTitles.push({ key: 'title', group: 'Suggested', value: item });\r\n });\r\n }, function () {\r\n __this__.allTitles = [];\r\n counter--;\r\n if (counter <= 0) {\r\n subject.complete();\r\n }\r\n }, function () {\r\n counter--;\r\n if (counter <= 0) {\r\n subject.complete();\r\n }\r\n });\r\n\r\n counter++;\r\n this.service.getAllCommodities().subscribe(function (items: any[]) {\r\n __this__.allCommodities = [];\r\n items.forEach(function (item) {\r\n __this__.allCommodities.push({ code: item.code, description: item.code + ' ' + item.description, isSelected: false });\r\n });\r\n }, function () {\r\n __this__.allCommodities = [];\r\n counter--;\r\n if (counter <= 0) {\r\n subject.complete();\r\n }\r\n }, function () {\r\n var code = __this__.formData.commodityCode;\r\n __this__.formData.commodity = code ? __this__.allCommodities.find(function (item) { return item.code === code; }).description : null;\r\n counter--;\r\n if (counter <= 0) {\r\n subject.complete();\r\n }\r\n });\r\n\r\n return subject;\r\n }\r\n}\r\n\r\ndeclare type NigpItem = { code: string, description: string, isSelected: boolean };\r\ndeclare type TitleItem = { key: string, group: string, value: string };\r\n\r\nclass ContractSearchData {\r\n public keywords: string = '';\r\n public title: string;\r\n public datesOption: ContractsDatesMode = ContractsDatesMode.FiscalYear;\r\n public selectedFiscalYears: Array<string> = [];\r\n public awardedDate: Array<Date> = [];\r\n public contractStartDate: Array<Date> = [];\r\n public contractEndDate: Array<Date> = [];\r\n public marketType: string[] = [];\r\n public isExpanded: boolean = false;\r\n public contractNumber: string;\r\n public amount: { from: string, to: string } = { from: null, to: null };\r\n public supplier: string;\r\n public contractingOfficer: string;\r\n public agencyClusterCode: string;\r\n public agencyCode: string;\r\n public commodity: string;\r\n public commodityCode: string;\r\n\r\n public contractStartDateConfig: Partial<BsDatepickerConfig> = Object.assign({}, {\r\n 'containerClass': 'theme-default',\r\n 'showWeekNumbers': false,\r\n 'rangeSeparator': ' to ',\r\n 'minDate': new Date(2013, 0, 1),\r\n 'maxDate': CommonUtilities.getFiscalYearEndDate(1),\r\n });\r\n\r\n public contractEndDateConfig: Partial<BsDatepickerConfig> = Object.assign({}, {\r\n 'containerClass': 'theme-default',\r\n 'showWeekNumbers': false,\r\n 'rangeSeparator': ' to ',\r\n 'minDate': new Date(2013, 0, 1),\r\n 'maxDate': CommonUtilities.getFiscalYearEndDate(1),\r\n });\r\n\r\n public awardedDateConfig: Partial<BsDatepickerConfig> = Object.assign({}, {\r\n 'containerClass': 'theme-default',\r\n 'showWeekNumbers': false,\r\n 'rangeSeparator': ' to ',\r\n 'minDate': new Date(2013, 0, 1),\r\n 'maxDate': new Date(new Date().getFullYear() + 1, new Date().getMonth(), new Date().getDate()),\r\n });\r\n\r\n private criteria: CriteriaCollection;\r\n\r\n public constructor(private owner: ContractsSearchComponent) {\r\n }\r\n\r\n initialize(criteria: CriteriaCollection): void {\r\n this.criteria = criteria;\r\n\r\n this.load();\r\n }\r\n\r\n // Handles typing in using keyboard\r\n onTitleKeyPressed(event): boolean {\r\n return event.which === 8 // backspace key (required for firefox)\r\n || event.which === 32 // space key\r\n || event.which === 0 && event.keyCode === 35 // end key (required for firefox)\r\n || event.which === 0 && event.keyCode === 36 // home key (required for firefox)\r\n || event.which === 0 && event.keyCode === 37 // left arrow key (required for firefox)\r\n || event.which === 0 && event.keyCode === 39 // right arrow key (required for firefox)\r\n || event.which === 0 && event.keyCode === 46 // delete key (required for firefox)\r\n || (event.which >= 65 && event.which <= 90) // Keys A to Z\r\n || (event.which >= 97 && event.which <= 122) // Keys a to z\r\n || (!event.shiftKey && event.which >= 48 && event.which <= 57) // Keys 0 to 9 (without shift key)\r\n ;\r\n }\r\n\r\n onTitleSelected(match: TypeaheadMatch): void {\r\n this.title = match.item.key === 'keyword' ? null : match.item.value;\r\n }\r\n\r\n // Handles typing in using keyboard\r\n onCurrencyKeyPressed(event): boolean {\r\n return event.which === 8 // backspace key (required for firefox)\r\n || (event.which === 0 && event.keyCode === 9) // tab key (required for firefox)\r\n || (event.which === 0 && event.keyCode === 46) // delete key (required for firefox)\r\n || (event.which === 0 && event.keyCode) === 36 // home key (required for firefox)\r\n || (event.which === 0 && event.keyCode === 35) // end key (required for firefox)\r\n || (event.which === 0 && event.keyCode) === 37 // left arrow key (required for firefox)\r\n || (event.which === 0 && event.keyCode) === 39 // right arrow key (required for firefox)\r\n || (event.ctrlKey && event.which === 97) // Select all action (with ctrl key)\r\n || (event.ctrlKey && event.which === 99) // Clipboard copy action (with ctrl key)\r\n || (event.ctrlKey && event.which === 120) // Clipboard cut action (with ctrl key)\r\n || ((event.target.value.length <= 10 || event.target.selectionEnd > event.target.selectionStart)\r\n && (!event.shiftKey && event.which >= 48 && event.which <= 57) // Keys 0 to 9 (without shift key)\r\n || (event.ctrlKey && event.which === 118) // Clipboard paste action (with ctrl key)\r\n );\r\n }\r\n\r\n // Handles other ways of input like pasting from clipboard\r\n onTitleInput(event): void {\r\n var value: string = event.target.value;\r\n var filteredValue: string = '';\r\n for (var i = 0; i < value.length; i++) {\r\n var charCode = value.toUpperCase().charCodeAt(i);\r\n if (charCode == 32 || (charCode >= 65 && charCode <= 90) || (charCode >= 65 && charCode <= 90) || (charCode >= 48 && charCode <= 57)) {\r\n filteredValue += value.charAt(i);\r\n }\r\n }\r\n\r\n filteredValue = filteredValue.trim();\r\n this.keywords = filteredValue;\r\n\r\n if (this.owner.allTitles) {\r\n for (var i = 0; i < this.owner.allTitles.length; i++) {\r\n if (this.owner.allTitles[i].key === 'keyword') {\r\n this.owner.allTitles.splice(i--, 1);\r\n }\r\n }\r\n\r\n this.owner.allTitles.splice(0, 0, { key: 'keyword', group: '', value: filteredValue });\r\n }\r\n\r\n this.title = null;\r\n }\r\n\r\n // Handles other ways of input like pasting from clipboard\r\n onCurrencyInput(event, field): void {\r\n var value: string = event.target.value;\r\n var filteredValue: string = '';\r\n for (var i = 0; i < value.length; i++) {\r\n var charCode = value.toUpperCase().charCodeAt(i);\r\n if (charCode >= 48 && charCode <= 57) {\r\n filteredValue += value.charAt(i);\r\n }\r\n }\r\n\r\n var currencyValue = parseInt(filteredValue);\r\n if (isNaN(currencyValue) || currencyValue < 0) {\r\n currencyValue = 0;\r\n }\r\n else if (currencyValue > 9999999999) {\r\n currencyValue = 9999999999;\r\n }\r\n\r\n switch (field) {\r\n case 'from':\r\n this.amount = { from: (event.target.value = (currencyValue === 0 ? '' : '$' + currencyValue.toString())), to: this.amount.to };\r\n break;\r\n\r\n case 'to':\r\n this.amount = { from: this.amount.from, to: (event.target.value = (currencyValue == 0 ? '' : '$' + currencyValue.toString())) };\r\n break;\r\n }\r\n }\r\n\r\n onCurrencyBlur(event, field): void {\r\n const fromAmount = parseInt((this.amount.from || '').substr(1));\r\n const toAmount = parseInt((this.amount.to || '').substr(1));\r\n\r\n switch (field) {\r\n case 'from':\r\n if (!isNaN(toAmount) && fromAmount > toAmount) {\r\n this.amount.from = event.target.value = null;\r\n }\r\n break;\r\n\r\n case 'to':\r\n if (!isNaN(fromAmount) && fromAmount > toAmount) {\r\n this.amount.to = event.target.value = null;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n onFiscalYearsChanged(values: Array<any>) {\r\n this.selectedFiscalYears = values;\r\n }\r\n\r\n onDatesOptionChanged(mode: ContractsDatesMode): void {\r\n this.datesOption = mode;\r\n }\r\n\r\n onContractStartDateChanged(values: Date[]): void {\r\n var minDate = (values ? values[0] : null) || new Date(2013, 0, 1);\r\n var maxDate = CommonUtilities.getFiscalYearEndDate(1);\r\n\r\n this.contractEndDateConfig.minDate = minDate;\r\n this.contractEndDateConfig.maxDate = maxDate;\r\n\r\n if (this.contractEndDate[0] < minDate) {\r\n this.contractEndDate = [minDate, this.contractEndDate[1]];\r\n }\r\n }\r\n\r\n onContractEndDateChanged(values: Date[]): void {\r\n var minDate = new Date(2013, 0, 1);\r\n var maxDate = (values ? values[1] : null) || CommonUtilities.getFiscalYearEndDate(1);\r\n\r\n this.contractStartDateConfig.minDate = minDate;\r\n this.contractStartDateConfig.maxDate = maxDate;\r\n\r\n if (this.contractStartDate[1] > maxDate) {\r\n this.contractStartDate = [this.contractStartDate[0], maxDate];\r\n }\r\n }\r\n\r\n onCommoditySelected(match: TypeaheadMatch): void {\r\n this.commodityCode = match.item.code;\r\n\r\n this.updateSelection(match.item);\r\n }\r\n\r\n onCommodityInput(): void {\r\n this.commodityCode = '';\r\n\r\n this.updateSelection(null);\r\n }\r\n\r\n nigpSelected(item: NigpItem): void {\r\n this.commodityCode = item.code;\r\n this.commodity = item.description;\r\n\r\n this.updateSelection(item);\r\n }\r\n\r\n private updateSelection(item: NigpItem) {\r\n this.owner.allCommodities.forEach(function (it: NigpItem) {\r\n it.isSelected = item && (it.code === item.code);\r\n });\r\n }\r\n\r\n public clear(): void {\r\n this.keywords = '';\r\n this.datesOption = ContractsDatesMode.FiscalYear;\r\n this.selectedFiscalYears = [];\r\n this.awardedDate = [];\r\n this.contractStartDate = [];\r\n this.contractEndDate = [];\r\n this.marketType = [];\r\n this.amount = { from: null, to: null };\r\n this.supplier = null;\r\n this.contractingOfficer = null;\r\n this.agencyClusterCode = '';\r\n this.agencyCode = '';\r\n this.commodityCode = '';\r\n this.commodity = '';\r\n this.contractNumber = '';\r\n this.title = null;\r\n this.owner.searchError = null;\r\n\r\n this.owner.onAgencyClusterChanged();\r\n }\r\n\r\n public save(): CriteriaCollection {\r\n var criteria = new CriteriaCollection();\r\n\r\n criteria.put('IsExpanded', this.isExpanded);\r\n\r\n this.keywords.trim().split(' ').forEach(function (keyword: string) {\r\n if (keyword) {\r\n criteria.put('Keyword', keyword);\r\n }\r\n }, this);\r\n\r\n if (this.title) {\r\n criteria.put('Title', this.title);\r\n }\r\n\r\n criteria.put('DatesOption', this.datesOption);\r\n this.selectedFiscalYears.forEach(year => {\r\n if (year) {\r\n criteria.put('FiscalYear', year);\r\n }\r\n });\r\n\r\n if (this.contractStartDate && this.contractStartDate.length === 2) {\r\n criteria.put('ContractStartDate', {\r\n 'from': this.contractStartDate[0],\r\n 'to': this.contractStartDate[1],\r\n });\r\n }\r\n\r\n if (this.contractEndDate && this.contractEndDate.length === 2) {\r\n criteria.put('ContractEndDate', {\r\n 'from': this.contractEndDate[0],\r\n 'to': this.contractEndDate[1],\r\n });\r\n }\r\n\r\n if (this.awardedDate && this.awardedDate.length === 2) {\r\n criteria.put('AwardedDate', {\r\n 'from': this.awardedDate[0],\r\n 'to': this.awardedDate[1],\r\n });\r\n }\r\n\r\n this.marketType.forEach(function (marketType) {\r\n criteria.put('MarketType', marketType);\r\n }, this);\r\n\r\n if (this.contractNumber) {\r\n criteria.put('ContractNumber', this.contractNumber);\r\n }\r\n\r\n if (this.amount.from) {\r\n criteria.put('Amount.From', CommonUtilities.currencyToNumber(this.amount.from));\r\n }\r\n\r\n if (this.amount.to) {\r\n criteria.put('Amount.To', CommonUtilities.currencyToNumber(this.amount.to));\r\n }\r\n\r\n if (this.supplier) {\r\n criteria.put('Supplier', this.supplier);\r\n }\r\n\r\n if (this.contractingOfficer) {\r\n criteria.put('ContractingOfficer', this.contractingOfficer);\r\n }\r\n\r\n if (this.agencyClusterCode) {\r\n criteria.put('AgencyCluster', this.agencyClusterCode);\r\n }\r\n\r\n if (this.agencyCode) {\r\n criteria.put('Agency', this.agencyCode);\r\n }\r\n\r\n if (this.commodityCode) {\r\n criteria.put('CommodityCode', this.commodityCode);\r\n }\r\n\r\n return criteria;\r\n }\r\n\r\n private load(): void {\r\n this.isExpanded = this.criteria ? this.criteria.get<boolean>('IsExpanded')[0] : false;\r\n this.keywords = this.criteria ? this.criteria.get<string>('Keyword').join(' ') : '';\r\n this.title = this.criteria ? this.criteria.get<string>('Title')[0] : null;\r\n this.datesOption = this.criteria ? (this.criteria.get<number>('DatesOption')[0] || this.datesOption) : ContractsDatesMode.FiscalYear;\r\n this.selectedFiscalYears = this.criteria ? this.criteria.get<string>('FiscalYear') : [];\r\n this.marketType = (this.criteria ? this.criteria.get<string>('MarketType') : null) || [];\r\n\r\n var date = this.criteria ? this.criteria.get<{ from: string, to: string }>('ContractStartDate') : [];\r\n this.contractStartDate = date.length > 0 ? [new Date(date[0].from), new Date(date[0].to)] : [];\r\n\r\n date = this.criteria ? this.criteria.get<{ from: string, to: string }>('ContractEndDate') : [];\r\n this.contractEndDate = date.length > 0 ? [new Date(date[0].from), new Date(date[0].to)] : [];\r\n\r\n date = this.criteria ? this.criteria.get<{ from: string, to: string }>('AwardedDate') : [];\r\n this.awardedDate = date.length > 0 ? [new Date(date[0].from), new Date(date[0].to)] : [];\r\n\r\n this.contractNumber = this.criteria ? this.criteria.get<string>('ContractNumber').join(' ') : '';\r\n\r\n const fromAmount = this.criteria ? this.criteria.get<number>('Amount.From')[0] : null;\r\n const toAmount = this.criteria ? this.criteria.get<number>('Amount.To')[0] : null;\r\n this.amount = {\r\n from: fromAmount ? '$' + fromAmount.toString() : null,\r\n to: toAmount ? '$' + toAmount.toString() : null\r\n };\r\n\r\n this.supplier = this.criteria ? this.criteria.get<string>('Supplier')[0] : '';\r\n\r\n this.contractingOfficer = this.criteria ? this.criteria.get<string>('ContractingOfficer')[0] : '';\r\n\r\n this.agencyClusterCode = (this.criteria ? this.criteria.get<string>(\"AgencyCluster\")[0] : null) || '';\r\n\r\n this.agencyCode = (this.criteria ? this.criteria.get<string>(\"Agency\")[0] : null) || '';\r\n\r\n var code = this.commodityCode = (this.criteria ? this.criteria.get<string>(\"CommodityCode\")[0] : null) || '';\r\n this.commodity = code ? this.owner.allCommodities ? this.owner.allCommodities.find(function (item) { return item.code === code; }).description : code : null;\r\n\r\n this.owner.onAgencyClusterChanged();\r\n }\r\n}\r\n","<h1>Search Contracts</h1>\r\n<form>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-8 mt-auto mb-auto\">\r\n <div class=\"error-message\" *ngIf=\"searchError\">{{searchError}}</div>\r\n </div>\r\n <div class=\"col text-right\">\r\n <button class=\"btn btn-default\" (click)=\"onClearClick($event)\">Clear All</button>\r\n <button class=\"btn btn-primary\" (click)=\"onSearchClick($event)\">Search Contracts</button>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-8\">\r\n <ng-template #customItemTemplate let-item=\"item\" let-index=\"index\">\r\n <span>{{item.key === 'keyword' ? 'Search for ' + quoteWords(item.value) : item.value}}</span>\r\n </ng-template>\r\n <label class=\"label-head\" for=\"title\">Title/Description</label>\r\n <div class=\"label-sub-head\">Begin typing in keywords or select title from the list</div>\r\n <input id=\"title\" name=\"title\" type=\"text\" class=\"form-control\" autocomplete=\"off\" title=\"Begin typing in keywords or select title from the list\" [(ngModel)]=\"formData.keywords\"\r\n [typeahead]=\"allTitles\" typeaheadGroupField=\"group\" typeaheadOptionField=\"value\" [typeaheadItemTemplate]=\"customItemTemplate\"\r\n (typeaheadOnSelect)=\"formData.onTitleSelected($event)\" (input)=\"formData.onTitleInput($event)\" (keypress)=\"formData.onTitleKeyPressed($event)\" />\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <label class=\"label-head\" for=\"number\">Contract Number</label>\r\n <div class=\"label-sub-head\">Enter exact contract number</div>\r\n <input id=\"number\" name=\"number\" type=\"text\" class=\"form-control\" title=\"Enter exact contract number\" [(ngModel)]=\"formData.contractNumber\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-4\" title=\"CFO Clusters\">\r\n <label class=\"label-head\" for=\"agencycluster\">Agency Cluster</label>\r\n <div class=\"label-sub-head\">Select an agency cluster</div>\r\n <select id=\"agencycluster\" name=\"agencycluster\" type=\"text\" class=\"form-control\" title=\"Select an agency cluster\"\r\n [(ngModel)]=\"formData.agencyClusterCode\" (change)=\"onAgencyClusterChanged()\">\r\n <option value=\"\"></option>\r\n <option *ngFor=\"let cluster of allAgencyClusters\" value=\"{{cluster.id}}\">{{cluster.displayName}}</option>\r\n </select>\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <label class=\"label-head\" for=\"agencyname\">Agency</label>\r\n <div class=\"label-sub-head\">Select an agency</div>\r\n <select id=\"agencyname\" name=\"agencyname\" type=\"text\" class=\"form-control\" title=\"Select an agency\" [(ngModel)]=\"formData.agencyCode\">\r\n <option value=\"\"></option>\r\n <option *ngFor=\"let agency of allAgencies\" value=\"{{agency.id}}\">{{agency.displayName}}</option>\r\n </select>\r\n </div>\r\n <div class=\"col-lg-2\">\r\n <label class=\"label-head\" for=\"amountFrom\">Amount (Min)</label>\r\n <div class=\"label-sub-head\">Enter up to 10 digits</div>\r\n <input id=\"amountFrom\" name=\"amountFrom\" type=\"text\" class=\"form-control sub-control\" placeholder=\"$\"\r\n title=\"Enter minimum amount up to 10 digits\" [(ngModel)]=\"formData.amount.from\"\r\n (blur)=\"formData.onCurrencyBlur($event,'from')\" (input)=\"formData.onCurrencyInput($event,'from')\" (keypress)=\"formData.onCurrencyKeyPressed($event)\" />\r\n </div>\r\n <div class=\"col-lg-2\">\r\n <label class=\"label-head\" for=\"amountTo\">Amount (Max)</label>\r\n <div class=\"label-sub-head\">Enter up to 10 digits</div>\r\n <input id=\"amountTo\" name=\"amountTo\" type=\"text\" class=\"form-control sub-control\" placeholder=\"$\"\r\n title=\"Enter minimum amount up to 10 digits\" [(ngModel)]=\"formData.amount.to\"\r\n (blur)=\"formData.onCurrencyBlur($event,'to')\" (input)=\"formData.onCurrencyInput($event,'to')\" (keypress)=\"formData.onCurrencyKeyPressed($event)\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-6\">\r\n <label class=\"label-head\" for=\"supplier\">Vendor/Supplier</label>\r\n <div class=\"label-sub-head\">Begin typing in name or keyword and select from the list</div>\r\n <input id=\"supplier\" name=\"supplier\" type=\"text\" class=\"form-control\" autocomplete=\"off\"\r\n title=\"Begin typing in name or keyword and select from the list\"\r\n [typeahead]=\"allSuppliers\" [(ngModel)]=\"formData.supplier\" />\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <label class=\"label-head\" for=\"commodity\">NIGP Code</label><a href=\"javascript:void(0)\" title=\"View full list of NIGP codes\" (click)=\"nigpPickerDialog=showModal($event,nigpPicker)\"><span aria-hidden=\"true\" class=\"fa fa-info-circle help-link\"></span></a>\r\n <div class=\"label-sub-head\">Enter first three digits of NIGP code or a keyword and select from the list</div>\r\n <input id=\"commodity\" name=\"commodity\" type=\"text\" class=\"form-control\" autocomplete=\"off\"\r\n title=\"Enter first three digits of NIGP code or a keyword and select from the list\" [(ngModel)]=\"formData.commodity\"\r\n [typeahead]=\"allCommodities\" typeaheadOptionField=\"description\" (typeaheadOnSelect)=\"formData.onCommoditySelected($event)\" (input)=\"formData.onCommodityInput()\" />\r\n <ng-template #nigpPicker>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">NIGP Codes</h4>\r\n <a href=\"javascript:void(0)\" (click)=\"closeModel($event,nigpPickerDialog)\"><span class=\"fa fa-close\"></span></a>\r\n </div>\r\n <div class=\"modal-body\">\r\n <h5>Select an option from below</h5>\r\n <div *ngFor=\"let item of allCommodities\">\r\n <label><input type=\"radio\" [checked]=\"item.isSelected\" (change)=\"formData.nigpSelected(item)\" /> {{item.description}}</label>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <label class=\"col\">Dates</label>\r\n </div>\r\n <div class=\"row\">\r\n <tabset style=\"width:100%\" #datesTabs>\r\n <tab heading=\"By Fiscal Year\" style=\"padding:15px;\" (select)=\"formData.datesOption = DatesMode.FiscalYear\" [active]=\"formData.datesOption === DatesMode.FiscalYear\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-4\">\r\n <div class=\"label-sub-head\">Select one or more fiscal years</div>\r\n <app-multiselect-dropdown id=\"fy\" name=\"fy\" ariaLabel=\"Fiscal Year\" title=\"Select one or more fiscal years\"\r\n [selectedvalue]=\"formData.selectedFiscalYears\" [values]=\"getAllFiscalYears()\"\r\n (change)=\"formData.onFiscalYearsChanged($event)\"></app-multiselect-dropdown>\r\n </div>\r\n </div>\r\n </tab>\r\n <tab heading=\"By Contract Dates\" style=\"padding:15px;\" (select)=\"formData.datesOption = DatesMode.ContractDates\" [active]=\"formData.datesOption === DatesMode.ContractDates\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-4\">\r\n <label for=\"csdate\" class=\"label-head\">Contract Start Date</label>\r\n <div class=\"label-sub-head\">Select a range of dates</div>\r\n <input id=\"csdate\" name=\"csdate\" class=\"form-control\" type=\"text\" autocomplete=\"off\" placement=\"bottom left\"\r\n title=\"Select or type in a range of dates in MM/DD/YYYY format separated by 'to'\"\r\n bsDaterangepicker [(ngModel)]=\"formData.contractStartDate\" [bsConfig]=\"formData.contractStartDateConfig\" (bsValueChange)=\"formData.onContractStartDateChanged($event)\" />\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <label for=\"cedate\" class=\"label-head\">Contract End Date</label>\r\n <div class=\"label-sub-head\">Select a range of dates</div>\r\n <input id=\"cedate\" name=\"cedate\" class=\"form-control\" type=\"text\" autocomplete=\"off\" placement=\"bottom left\"\r\n title=\"Select or type in a range of dates in MM/DD/YYYY format separated by 'to'\"\r\n bsDaterangepicker [(ngModel)]=\"formData.contractEndDate\" [bsConfig]=\"formData.contractEndDateConfig\" (bsValueChange)=\"formData.onContractEndDateChanged($event)\" />\r\n </div>\r\n </div>\r\n </tab>\r\n <tab heading=\"By Awarded Date\" style=\"padding:15px;\" (select)=\"formData.datesOption = DatesMode.AwardedDate\" [active]=\"formData.datesOption === DatesMode.AwardedDate\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-4\">\r\n <div class=\"label-sub-head\">Select a range of dates</div>\r\n <input id=\"awdate\" name=\"awdate\" aria-label=\"Awarded Date\" class=\"form-control\" type=\"text\" autocomplete=\"off\" placement=\"bottom left\"\r\n title=\"Select or type in a range of dates in MM/DD/YYYY format separated by 'to'\"\r\n bsDaterangepicker [(ngModel)]=\"formData.awardedDate\" [bsConfig]=\"formData.awardedDateConfig\" />\r\n </div>\r\n </div>\r\n </tab>\r\n </tabset>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <button class=\"btn non-btn\" (click)=\"formData.isExpanded = !formData.isExpanded\">\r\n <span class=\"fa\" [class.fa-angle-down]=\"!formData.isExpanded\" [class.fa-angle-up]=\"formData.isExpanded\"></span>\r\n <span>Show {{(formData.isExpanded? 'Less' : 'More')}} Search Filters</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"row\" *ngIf=\"formData.isExpanded\">\r\n <div class=\"col-lg-6\">\r\n <label for=\"contractingOfficer\" class=\"label-head\">Contracting Officer</label>\r\n <div class=\"label-sub-head\">Begin typing name and select from the list</div>\r\n <input id=\"contractingOfficer\" name=\"contractingOfficer\" type=\"text\" class=\"form-control\" autocomplete=\"off\"\r\n title=\"Begin typing name and select from the list\" [typeahead]=\"allContractingOfficers\" [(ngModel)]=\"formData.contractingOfficer\" />\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <label for=\"markettype\" class=\"label-head\">Market Type</label>\r\n <div class=\"label-sub-head\">Select one or more market types</div>\r\n <app-multiselect-dropdown id=\"markettype\" name=\"markettype\" ariaLabel=\"Market Type\" title=\"Select one or more market types\"\r\n [values]=\"getAllMarketTypes()\" [selectedvalue]=\"formData.marketType\"></app-multiselect-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-8\">\r\n </div>\r\n <div class=\"col text-right\">\r\n <button class=\"btn btn-default\" (click)=\"onClearClick($event)\">Clear All</button>\r\n <button class=\"btn btn-primary\" (click)=\"onSearchClick($event)\">Search Contracts</button>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n<div *ngIf=\"isLoading\" class=\"loader-overlay text-center\"></div>\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\nimport { Criteria, CriteriaCollection } from '../providers/criteria-data';\r\nimport { ApiCriteria, BaseService } from './base-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContractsService extends BaseService {\r\n private supplierNamesSubject: ReplaySubject<string[]>;\r\n private contractingOfficersSubject: ReplaySubject<string[]>;\r\n private agencyClustersSubject: ReplaySubject<any[]>;\r\n private titlesSubject: ReplaySubject<string[]>;\r\n private commoditiesSubject: ReplaySubject<any[]>;\r\n\r\n constructor(httpClient: HttpClient) {\r\n super(httpClient, 'contracts');\r\n }\r\n\r\n public getAllSupplierNames(): Observable<string[]> {\r\n return this.supplierNamesSubject || this.getItem('suppliers', this.supplierNamesSubject = new ReplaySubject<string[]>());\r\n }\r\n\r\n public getAllContractingOfficers(): Observable<string[]> {\r\n return this.contractingOfficersSubject || this.getItem('contractingofficers', this.contractingOfficersSubject = new ReplaySubject<string[]>());\r\n }\r\n\r\n public getAllAgencyClusters(): Observable<any[]> {\r\n return this.agencyClustersSubject || this.getItem('agencies', this.agencyClustersSubject = new ReplaySubject<any[]>());\r\n }\r\n\r\n public getAllTitles(): Observable<string[]> {\r\n return this.titlesSubject || this.getItem('titles', this.titlesSubject = new ReplaySubject<string[]>());\r\n }\r\n\r\n public getAllCommodities(): Observable<any[]> {\r\n return this.commoditiesSubject || this.getItem('commodities', this.commoditiesSubject = new ReplaySubject<any[]>());\r\n }\r\n\r\n public getResults(criteria: ApiCriteria): Observable<any> {\r\n return this.postCriteria('search', criteria, new ReplaySubject());\r\n }\r\n\r\n public getDetails(contractId: string): Observable<any> {\r\n return this.getItem('details?id=' + encodeURIComponent(contractId), new ReplaySubject<any>(), 'Contract details could not be retrieved');\r\n }\r\n\r\n public static validateCriteria(criteria: CriteriaCollection): boolean {\r\n return !!criteria && criteria.count(function (criteria: Criteria) { return criteria.name !== 'DatesOption' && criteria.name !== 'IsExpanded'; }) > 0;\r\n }\r\n}\r\n"],"names":[],"sourceRoot":"webpack:///"}