{"version":3,"file":"main-es2015.js","mappings":"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","sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/Client/common/navigation-details.ts","./src/Client/components/module.ts","./src/Client/components/multiselect-dropdown/component.ts","./src/Client/components/multiselect-dropdown/component.html","./src/Client/components/results-grid/component.ts","./src/Client/components/results-grid/component.html","./src/Client/environments/environment.ts","./src/Client/main.ts","./src/Client/providers/criteria-data.ts","./src/Client/providers/navigation-gaurds.ts","./src/Client/providers/results-data.ts","./src/Client/providers/state-store.ts","./src/Client/routes/agencies/component.ts","./src/Client/routes/agencies/component.html","./src/Client/routes/app.component.ts","./src/Client/routes/app.component.html","./src/Client/routes/app.module.ts","./src/Client/routes/error/not-found/component.ts","./src/Client/routes/error/not-found/component.html","./src/Client/routes/home/disclaimer/component.ts","./src/Client/routes/home/disclaimer/component.html","./src/Client/routes/home/landing/component.ts","./src/Client/routes/home/landing/component.html","./src/Client/routes/home/policy/component.ts","./src/Client/routes/home/policy/component.html","./src/Client/routes/home/terms-of-use/component.ts","./src/Client/routes/home/terms-of-use/component.html","./src/Client/routes/navigator.component.ts","./src/Client/services/agency.service.ts","./src/Client/services/analytics.service.ts","./src/Client/services/base-service.ts","./src/Client/utilities/common-utilities.ts"],"sourcesContent":["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;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","\r\nexport interface INavigationDetails {\r\n    setNavigationDetails(trigger: NavigationTrigger): void;\r\n}\r\n\r\nexport enum NavigationTrigger {\r\n    Unknown,\r\n    Imperative,\r\n    PopState,\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BsDropdownModule, PaginationModule } from 'ngx-bootstrap';\r\nimport { MultiselectDropdownComponent } from './multiselect-dropdown/component';\r\nimport { ResultsGridComponent } from './results-grid/component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        MultiselectDropdownComponent,\r\n        ResultsGridComponent\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        FormsModule,\r\n        BsDropdownModule.forRoot(),\r\n        PaginationModule.forRoot(),\r\n    ],\r\n    exports: [\r\n        MultiselectDropdownComponent,\r\n        ResultsGridComponent\r\n    ]\r\n})\r\nexport class ComponentsModule { }\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges, ViewChild, ElementRef } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n    selector: 'app-multiselect-dropdown',\r\n    templateUrl: './component.html',\r\n    styleUrls: ['./component.css'],\r\n})\r\nexport class MultiselectDropdownComponent implements OnInit, OnChanges {\r\n    @Input() ariaLabel: string;\r\n    @Input() placeholder: string;\r\n    @Input() values: Observable<any> | Array<any>;\r\n    @Input() selectedvalue: Array<any> = [];\r\n    @Output() change = new EventEmitter<Array<any>>();\r\n\r\n    private realValues: any[];\r\n\r\n    public isLoading: boolean;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.isLoading = true;\r\n        var array = this.values instanceof Array ? this.values as any[] : null;\r\n        var observable = this.values as Observable<any>;\r\n\r\n        if (array) {\r\n            this.realValues = array;\r\n            this.isLoading = false;\r\n        }\r\n        else if (observable) {\r\n            var __this__ = this;\r\n            this.realValues = [];\r\n            observable.subscribe(\r\n                function (item) {\r\n                    __this__.realValues.push(item);\r\n                },\r\n                function (error) {\r\n                    __this__.realValues = [];\r\n                },\r\n                function () {\r\n                    __this__.isLoading = false;\r\n                });\r\n        }\r\n\r\n        this.updateSelection();\r\n    }\r\n\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        if (changes.selectedvalue && !changes.selectedvalue.firstChange) {\r\n            this.updateSelection();\r\n        }\r\n    }\r\n\r\n    onItemClick(item: any, event: any): boolean {\r\n        if (this.isSelected(item)) {\r\n            this.unselectItem(item);\r\n        }\r\n        else {\r\n            this.selectItem(item);\r\n        }\r\n\r\n        return false;\r\n    }\r\n\r\n    onLinkClick(item: any, event: Event): boolean {\r\n        return false;\r\n    }\r\n\r\n    isSelected(item: any): boolean {\r\n        return this.selectedvalue.indexOf(item) >= 0;\r\n    }\r\n\r\n    onRemoveClick(event: Event, item: any): void {\r\n        event.stopPropagation();\r\n\r\n        this.unselectItem(item);\r\n    }\r\n\r\n    private selectItem(item: any): void {\r\n        var index = this.selectedvalue.indexOf(item);\r\n        if (index < 0) {\r\n            this.selectedvalue.push(item);\r\n            this.updateSelection();\r\n        }\r\n    }\r\n\r\n    private unselectItem(item: any): void {\r\n        var index = this.selectedvalue.indexOf(item);\r\n        if (index >= 0) {\r\n            this.selectedvalue.splice(index, 1);\r\n            this.updateSelection();\r\n        }\r\n    }\r\n\r\n    private updateSelection(): void {\r\n        var eventArgs = [];\r\n        for (var i = 0; i < this.selectedvalue.length; i++) {\r\n            eventArgs.push(this.selectedvalue[i]);\r\n        }\r\n\r\n        this.change.emit(eventArgs);\r\n    }\r\n}\r\n","<div dropdown class=\"btn-group\" [insideClick]=\"true\">\r\n    <button dropdownToggle class=\"btn btn-default dropdown-toggle form-control\" role=\"combobox\" [attr.aria-label]=\"ariaLabel\">\r\n        <div class=\"dropdown-content\">\r\n            <div class=\"selection\">\r\n                <div class=\"selected-item\" *ngFor=\"let item of selectedvalue\">\r\n                    <span style=\"padding:2px\">{{item}}</span>\r\n                    <button class=\"non-btn fa fa-remove\" attr.aria-label=\"'Remove ' + item + ' filter'\" title=\"Remove {{item}} from selection\"\r\n                            (click)=\"onRemoveClick($event, item)\"></button>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"dropdown-indicator\">\r\n            <span class=\"fa fa-caret-down\"></span>\r\n        </div>\r\n    </button>\r\n    <ul *dropdownMenu class=\"dropdown-menu\" role=\"list\">\r\n        <li role=\"listitem\" *ngIf=\"isLoading\" class=\"disabled\">\r\n            <a class=\"dropdown-item disabled\">Loading...</a>\r\n        </li>\r\n        <li role=\"listitem\" *ngFor=\"let item of realValues\" (click)=\"onItemClick(item, $event)\">\r\n            <a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"onLinkClick(item, $event)\"><span class=\"checkbox fa\" [class.fa-square-o]=\"!isSelected(item)\" [class.fa-check-square-o]=\"isSelected(item)\"></span> <span>{{item}}</span></a>\r\n        </li>\r\n    </ul>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { PageChangedEvent } from 'ngx-bootstrap';\r\nimport { Observable } from 'rxjs';\r\nimport { SortOrder } from '../../common/enums';\r\nimport { PageState } from '../../providers/state-store';\r\nimport { CommonUtilities, ExportColumnDefinition, ValueExtractor } from '../../utilities/common-utilities';\r\n\r\n@Component({\r\n    selector: 'app-results-grid',\r\n    templateUrl: './component.html',\r\n    styleUrls: ['./component.css'],\r\n})\r\nexport class ResultsGridComponent implements OnInit, OnChanges, ILoadable {\r\n    @Input() columns: ColumnDefinition[];\r\n    @Input() results: Observable<Results<any>>;\r\n    @Input() exportFileName: Observable<string>;\r\n    @Input() state: PageState;\r\n    @Input() showEditButton: boolean = true;\r\n    @Input() canRemoveFilter: CanRemoveFilter;\r\n\r\n    @Output() resultClick = new EventEmitter<ResultClickEvent>();\r\n    @Output() editSearch = new EventEmitter<void>();\r\n    @Output() removeFilter = new EventEmitter<RemoveFilterEvent>();\r\n    @Output() orderChange = new EventEmitter<OrderChangeEvent>();\r\n\r\n    public searchResults: SearchResults<any>;\r\n    public filteredResults: any[];\r\n    public selection: string;\r\n    public isLoading: boolean = true;\r\n    public isDownloadSupported: boolean;\r\n\r\n    constructor() {\r\n        this.searchResults = new SearchResults<any>(this);\r\n        this.isDownloadSupported = document.createElement('a').download !== undefined;\r\n    }\r\n\r\n    public saveState(): any {\r\n        if (this.state) {\r\n            this.state.results_pageSize = this.searchResults.pageSizeString;\r\n            this.state.results_pageIndex = this.searchResults.pageIndex;\r\n            this.state.results_keyword = this.searchResults.searchKeyword;\r\n        }\r\n        else {\r\n            console.warn(\"No state object was supplied. Grid state will not be saved.\");\r\n        }\r\n    }\r\n\r\n    public loadState(): any {\r\n        if (this.state) {\r\n            this.searchResults.pageSizeString = this.state.results_pageSize || \"10\";\r\n            this.searchResults.pageIndex = this.state.results_pageIndex || 1;\r\n            this.searchResults.searchKeyword = this.state.results_keyword || \"\";\r\n        }\r\n        else {\r\n            console.warn(\"No state object was supplied. Grid state will not be restored.\");\r\n        }\r\n\r\n        this.searchResults.updatePages();\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.loadData();\r\n    }\r\n\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        if (changes.results) {\r\n            this.loadData();\r\n        }\r\n    }\r\n\r\n    sortBy(column: string) {\r\n        this.orderChange.emit({ target: { name: column } });\r\n    }\r\n\r\n    isSorting(columnName: string, order: SortOrder): boolean {\r\n        var sortDefinition: SortDefinition;\r\n        this.searchResults.ordering.forEach(function (sort) {\r\n            if (sort.name === columnName) {\r\n                sortDefinition = sort;\r\n            }\r\n        }, this);\r\n\r\n        return sortDefinition && sortDefinition.order === order;\r\n    }\r\n\r\n    onRemoveClick(event: Event, filter: FilterDefinition): void {\r\n        event.preventDefault();\r\n\r\n        if (this.searchResults.filters.length > 1 && this.canRemove(filter)) {\r\n            this.removeFilter.emit({ target: { id: filter.id } });\r\n        }\r\n    }\r\n\r\n    onEditSearchClick(): void {\r\n        this.editSearch.emit();\r\n    }\r\n\r\n    isClickable(): boolean {\r\n        return this.resultClick.observers.length > 0;\r\n    }\r\n\r\n    onRowClick(row: any): void {\r\n        this.resultClick.emit({ target: row });\r\n    }\r\n\r\n    onExportClick(format: 'csv' | 'pdf'): void {\r\n        this.isLoading = true;\r\n\r\n        var exportColumns: ExportColumnDefinition[] = [];\r\n        this.columns.forEach(function (column) {\r\n            if (!column.exportedAs) {\r\n                column.exportedAs = [{}];\r\n            }\r\n\r\n            column.exportedAs.forEach(function (col) {\r\n                exportColumns.push({ property: col.propertyName || column.propertyName, title: col.title || column.title, widthPercentage: col.widthPercentage || column.widthPercentage });\r\n            });\r\n        });\r\n\r\n        var preparedData = CommonUtilities.prepareForExport(this.searchResults.items, exportColumns);\r\n\r\n        switch (format) {\r\n            case 'csv':\r\n                CommonUtilities.exportToCsv((this.exportFileName || \"Data\") + '.csv', preparedData);\r\n                break;\r\n\r\n            case 'pdf':\r\n                CommonUtilities.exportToPdf((this.exportFileName || \"Data\") + '.pdf', preparedData);\r\n                break;\r\n        }\r\n\r\n        this.isLoading = false;\r\n    }\r\n\r\n    getCellValues(column: ColumnDefinition, row: any): any[] {\r\n        var func = column.valueGetter || function (row) {\r\n            return row[this.propertyName];\r\n        };\r\n\r\n        var values = func.apply(column, [row]);\r\n        return values instanceof Array ? values : [values];\r\n    }\r\n\r\n    canRemove(filter: FilterDefinition): boolean {\r\n        return this.canRemoveFilter ? this.canRemoveFilter(filter) : true;\r\n    }\r\n\r\n    private loadData() {\r\n        if (this.results) {\r\n            this.isLoading = true;\r\n            var __this__ = this;\r\n            this.results.subscribe(function (item: Results<any>) {\r\n                __this__.searchResults.setResults(item.results, item.filters, item.ordering);\r\n            }, function (error: Error) {\r\n                __this__.searchResults.setError(error.message);\r\n                __this__.isLoading = false;\r\n            }, function () {\r\n                __this__.isLoading = false;\r\n            });\r\n        }\r\n    }\r\n}\r\n\r\nexport declare type ColumnDefinition = {\r\n    name: string,\r\n    propertyName: string,\r\n    title: string,\r\n    makeHyperlink?: boolean,\r\n    minWidth: number,\r\n    widthPercentage: number,\r\n    cellAlignment?: 'left' | 'center' | 'right',\r\n    valueGetter?: ValueExtractor,\r\n    exportedAs?: {\r\n        propertyName?: string | ValueExtractor,\r\n        title?: string,\r\n        widthPercentage?: number,\r\n    }[],\r\n};\r\nexport declare type Results<T> = { results: T[], errorMessage: string, filters: FilterDefinition[], ordering: SortDefinition[] };\r\nexport declare type FilterDefinition = { id: number, name: string, values: string[] };\r\nexport declare type SortDefinition = { name: string, order: SortOrder };\r\n\r\nexport declare type ResultClickEvent = { target: any };\r\nexport declare type RemoveFilterEvent = { target: { id: number } };\r\nexport declare type OrderChangeEvent = { target: { name: string } };\r\nexport declare type CanRemoveFilterEvent = { target: FilterDefinition, canRemove: boolean };\r\n\r\nexport declare type CanRemoveFilter = (filter: FilterDefinition) => boolean;\r\n\r\nexport interface ILoadable {\r\n    isLoading: boolean;\r\n    saveState(): any;\r\n}\r\n\r\nexport declare type PagingOptions = { pageSize?: number };\r\n\r\nexport class SearchResults<T> {\r\n    public pageIndex: number = 1;\r\n    public pageSize: number;\r\n    public pageSizeString: string;\r\n    public filteredItems: T[];\r\n    public searchKeyword: string = '';\r\n    public hasPages: boolean;\r\n\r\n    public items: T[];\r\n    public page: T[];\r\n    public errorMessage: string;\r\n    public filters: FilterDefinition[];\r\n    public ordering: SortDefinition[];\r\n\r\n    private defaultPageSize: number;\r\n\r\n    private searcher: number;\r\n\r\n    public constructor(private owner: ILoadable, options?: PagingOptions) {\r\n        this.defaultPageSize = (options ? options.pageSize : null) || 10;\r\n        this.pageSizeString = this.defaultPageSize.toString();\r\n\r\n        this.items = [];\r\n        this.errorMessage = null;\r\n        this.filters = [];\r\n        this.ordering = [];\r\n\r\n        this.updateInstance();\r\n    }\r\n\r\n    public setResults(results: T[], filters: FilterDefinition[], ordering: SortDefinition[]): void {\r\n        this.items = results || [];\r\n        this.errorMessage = null;\r\n        this.filters = filters || [];\r\n        this.ordering = ordering || [];\r\n\r\n        this.updateInstance();\r\n    }\r\n\r\n    public setError<T>(errorMessage: string): void {\r\n        this.items = [];\r\n        this.errorMessage = errorMessage;\r\n        this.filters = [];\r\n        this.ordering = [];\r\n\r\n        this.updateInstance();\r\n    }\r\n\r\n    onPageChanged(event: PageChangedEvent): void {\r\n        this.slicePage(event.page);\r\n    }\r\n\r\n    onPageSizeChanged(): void {\r\n        this.owner.isLoading = true;\r\n        var __this__ = this;\r\n        setTimeout(function () {\r\n            __this__.slicePage(__this__.pageIndex = 1);\r\n        }, 10);\r\n    }\r\n\r\n    onSearch(event: any): void {\r\n        var __this__ = this;\r\n        if (this.searcher) {\r\n            window.clearTimeout(this.searcher);\r\n            this.searcher = null;\r\n        }\r\n\r\n        this.searcher = window.setTimeout(function () {\r\n            __this__.owner.saveState();\r\n            __this__.beginSearch(event.target.value);\r\n        }, 300);\r\n    }\r\n\r\n    beginSearch(keyword: string): any {\r\n        this.searcher = null;\r\n\r\n        keyword = keyword.toLowerCase();\r\n        this.filteredItems = this.items.filter(function (item) {\r\n            for (var name in item) {\r\n                var value = item[name];\r\n                var valueStr = (value || '').toString().toLowerCase();\r\n                if (valueStr.indexOf(keyword) >= 0) {\r\n                    return true;\r\n                }\r\n            }\r\n\r\n            return false;\r\n        });\r\n\r\n        this.slicePage(this.pageIndex = 1);\r\n    }\r\n\r\n    updatePages(): void {\r\n        this.slicePage(this.pageIndex);\r\n    }\r\n\r\n    private updateInstance() {\r\n        this.filteredItems = this.items;\r\n        this.pageSizeString = this.defaultPageSize.toString();\r\n\r\n        this.slicePage(1);\r\n    }\r\n\r\n    private slicePage(pageIndex: number): void {\r\n        var newPageSize = parseInt(this.pageSizeString);\r\n        if (isNaN(newPageSize)) {\r\n            this.pageSizeString = (newPageSize = this.defaultPageSize).toString();\r\n        }\r\n\r\n        this.pageSize = newPageSize;\r\n        const startItem = newPageSize === 0 ? 0 : (pageIndex - 1) * this.pageSize;\r\n        const endItem = newPageSize === 0 ? this.filteredItems.length : pageIndex * this.pageSize;\r\n        this.page = this.items ? this.filteredItems.slice(startItem, endItem) : [];\r\n        this.hasPages = startItem !== 0 || endItem < this.filteredItems.length;\r\n        this.owner.isLoading = false;\r\n    }\r\n}\r\n","<div class=\"row\" style=\"margin-right:0\">\r\n    <div class=\"col\">\r\n        <div *ngIf=\"(!isLoading || searchResults.items.length > 0 ) && !searchResults.errorMessage\">\r\n            <span *ngIf=\"searchResults.filteredItems.length != searchResults.items.length\">{{searchResults.filteredItems.length}} of </span>\r\n            <span>{{searchResults.items.length}} Result{{searchResults.items.length == 1 ? '' : 's'}}</span>\r\n        </div>\r\n    </div>\r\n    <div *ngIf=\"showEditButton\">\r\n        <button class=\"btn btn-primary \"> <a href=\"//ocp.dc.gov/page/opportunities-support\" target=\"_blank\" class=\"oppurtunity-support-page more-info-btn\">More Information</a></button>\r\n        <button class=\"btn btn-default\" (click)=\"onEditSearchClick()\">Edit Search</button>\r\n    </div>\r\n</div>\r\n<div *ngIf=\"!isLoading && searchResults.errorMessage\" class=\"error-message\">{{searchResults.errorMessage}}</div>\r\n<div *ngIf=\"!searchResults.errorMessage\">\r\n    <div class=\"row\" style=\"margin-left:0;margin-right:0;\" *ngIf=\"searchResults.filters.length > 0\">\r\n        <div class=\"card\" *ngFor=\"let filter of searchResults.filters\">\r\n            <span style=\"font-weight:bolder\">{{filter.name}}</span>: <span>{{filter.value}}</span>\r\n            <button class=\"non-btn fa fa-remove\" attr.aria-label=\"'Remove ' + filter.name + ' filter'\" title=\"Remove {{filter.name}} filter\" style=\"margin-left:4px\"\r\n                    [disabled]=\"searchResults.filters.length < 2 || !canRemove(filter)\" (click)=\"onRemoveClick($event, filter)\"></button>\r\n        </div>\r\n    </div>\r\n    <div *ngIf=\"!isLoading && searchResults.items.length < 1\">No Results found</div>\r\n    <div *ngIf=\"searchResults.items.length > 0\">\r\n        <div class=\"row\">\r\n            <div class=\"col\" style=\"margin-left:5px;margin-top:15px;\">\r\n                <div *ngIf=\"searchResults.filteredItems.length > 0\">\r\n                    <span>Show </span>\r\n                    <select class=\"form-control no-form\" aria-label=\"entries per page\" [(ngModel)]=\"searchResults.pageSizeString\" (change)=\"searchResults.onPageSizeChanged()\">\r\n                        <option [value]=\"10\">{{searchResults.filteredItems.length < 10 ? \"All\" : \"10\"}}</option>\r\n                        <option [value]=\"20\" *ngIf=\"searchResults.filteredItems.length > 10\">{{searchResults.filteredItems.length < 20 ? \"All\" : \"20\"}}</option>\r\n                        <option [value]=\"50\" *ngIf=\"searchResults.filteredItems.length > 20\">{{searchResults.filteredItems.length < 50 ? \"All\" : \"50\"}}</option>\r\n                        <option [value]=\"100\" *ngIf=\"searchResults.filteredItems.length > 50\">{{searchResults.filteredItems.length < 100 ? \"All\" : \"100\"}}</option>\r\n                    </select>\r\n                    <span> entries</span>\r\n                </div>\r\n            </div>\r\n            <div class=\"col-stretch\">\r\n                <div style=\"display:inline-block\">\r\n                    <div class=\"btn-group\">\r\n                        <input name=\"search\" type=\"search\" placeholder=\"Search within results\" class=\"form-control\" [(ngModel)]=\"searchResults.searchKeyword\" (input)=\"searchResults.onSearch($event)\" />\r\n                    </div>\r\n                </div>\r\n                <div style=\"display:inline-block\">\r\n                    <div class=\"btn-group\">\r\n                        <button class=\"btn btn-default btn-sm\" title=\"Export to PDF\" aria-label=\"Export to PDF file\"\r\n                                (click)=\"onExportClick('pdf')\" [disabled]=\"searchResults.filteredItems.length <= 0\">\r\n                            <span class=\"fa icon pdf\"></span>PDF\r\n                        </button>\r\n                        <button *ngIf=\"isDownloadSupported\"\r\n                                class=\"btn btn-default btn-sm\" title=\"Export to CSV\" aria-label=\"Export to CSV file\"\r\n                                (click)=\"onExportClick('csv')\" [disabled]=\"searchResults.filteredItems.length <= 0\">\r\n                            <span class=\"fa icon csv\"></span>CSV\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div *ngIf=\"searchResults.filteredItems.length < 1\">No Results found</div>\r\n        <div class=\"row\" *ngIf=\"searchResults.filteredItems.length > 0\">\r\n            <div class=\"table-responsive\">\r\n                <table class=\"data-grid\" role=\"list\">\r\n                    <thead>\r\n                        <tr>\r\n                            <th *ngFor=\"let column of columns\"\r\n                                class=\"activatable\"\r\n                                [style.min-width]=\"column.minWidth + 'px'\"\r\n                                [style.width]=\"column.widthPercentage + '%'\"\r\n                                [style.text-align]=\"column.cellAlignment\"\r\n                                [class.sort-ascending]=\"isSorting(column.name, 1)\"\r\n                                [class.sort-descending]=\"isSorting(column.name, 2)\"\r\n                                (click)=\"sortBy(column.name)\">\r\n                                {{column.title}}\r\n                            </th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody>\r\n                        <tr *ngFor=\"let row of searchResults.page\" [class.activatable]=\"isClickable()\" (click)=\"onRowClick(row)\" role=\"listitem\">\r\n                            <td *ngFor=\"let column of columns\" [style.text-align]=\"column.cellAlignment\">\r\n                                <div *ngFor=\"let value of getCellValues(column, row)\">\r\n                                    <a href=\"javascript:void(0)\" style=\"text-decoration:underline solid\" *ngIf=\"column.makeHyperlink\">{{value}}</a>\r\n                                    <span *ngIf=\"!column.makeHyperlink\">{{value}}</span>\r\n                                </div>\r\n                            </td>\r\n                        </tr>\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        </div>\r\n        <div class=\"row paging\" *ngIf=\"searchResults.hasPages\">\r\n            <div>\r\n                <pagination firstText=\"<span class='wide'>First</span><span class='narrow fa fa-step-backward'></span>\"\r\n                            lastText=\"<span class='wide'>Last</span><span class='narrow fa fa-step-forward'></span>\"\r\n                            previousText=\"<span class='wide'>Previous</span><span class='narrow fa fa-backward'></span>\"\r\n                            nextText=\"<span class='wide'>Next</span><span class='narrow fa fa-forward'></span>\"\r\n                            [maxSize]=\"7\" [rotate]=\"true\" [totalItems]=\"searchResults.filteredItems.length\" [(ngModel)]=\"searchResults.pageIndex\"\r\n                            [itemsPerPage]=\"searchResults.pageSize\" [boundaryLinks]=\"true\" (pageChanged)=\"searchResults.onPageChanged($event)\"></pagination>\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","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n    production: false,\r\n    apiUrl: ''\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './routes/app.module';\r\nimport { environment } from './environments/environment';\r\nimport { AnalyticsService } from './services/analytics.service';\r\n\r\nif (environment.production) {\r\n  enableProdMode();\r\n}\r\n\r\nvar analytics = new AnalyticsService();\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n    .catch(err => {\r\n        console.log(err);\r\n        analytics.sendException(err);\r\n    });\r\n","import { Injectable } from \"@angular/core\";\r\nimport { CommonUtilities } from \"../utilities/common-utilities\";\r\n\r\n@Injectable()\r\nexport class CriteriaData {\r\n    public contracts: CriteriaStore = new CriteriaStore('contracts');\r\n    public payments: CriteriaStore = new CriteriaStore('payments');\r\n    public purchase: CriteriaStore = new CriteriaStore('purchase');\r\n    public forecast: CriteriaStore = new CriteriaStore('forecast');\r\n    public solicitations: CriteriaStore = new CriteriaStore('solicitations');\r\n}\r\n\r\nexport class CriteriaStore {\r\n    public constructor(private name: string) {\r\n    }\r\n\r\n    public add(criteria: CriteriaCollection): string {\r\n        var hash = CommonUtilities.createNewHash();\r\n        sessionStorage.setItem(`criteria.${this.name}.${hash}`, JSON.stringify(criteria.toArray()));\r\n\r\n        return hash;\r\n    }\r\n\r\n    public get(hash: string): CriteriaCollection {\r\n        const criteria = sessionStorage.getItem(`criteria.${this.name}.${hash}`);\r\n        return CriteriaCollection.fromArray(JSON.parse(criteria));\r\n    }\r\n}\r\n\r\nexport class CriteriaCollection {\r\n    private items: Criteria[] = [];\r\n\r\n    public get<T>(name: string): T[] {\r\n        var values: T[] = [];\r\n\r\n        this.items.forEach(criteria => {\r\n            if (criteria.name === name) {\r\n                values.push(criteria.value);\r\n            }\r\n        });\r\n\r\n        return values;\r\n    }\r\n\r\n    public put<T>(name: string, value: T): void {\r\n        var id = this.items.length > 0 ? this.items[this.items.length - 1].id + 1 : 0;\r\n        this.items.push({ id: id, name: name, value: value });\r\n    }\r\n\r\n    public replaceOrPut<T>(name: string, value: T): void {\r\n        var id = this.items.length > 0 ? this.items[this.items.length - 1].id + 1 : 0;\r\n        var current = this.items.find(function (item: Criteria, index: number): boolean {\r\n            return item.name === name;\r\n        });\r\n\r\n        if (current) {\r\n            current.value = value;\r\n        }\r\n        else {\r\n            this.items.push({ id: id, name: name, value: value });\r\n        }\r\n    }\r\n\r\n    public clear(): void {\r\n        this.items.splice(0, this.items.length);\r\n    }\r\n\r\n    public toArray(): Criteria[] {\r\n        return JSON.parse(JSON.stringify(this.items));\r\n    }\r\n\r\n    public static fromArray(criteria: Criteria[]): CriteriaCollection {\r\n        var collection = new CriteriaCollection();\r\n        collection.items = JSON.parse(JSON.stringify(criteria)) || [];\r\n        return collection;\r\n    }\r\n\r\n    public count(predicate?: (criteria: Criteria) => boolean): number {\r\n        return predicate ? this.items.filter(predicate).length : this.items.length;\r\n    }\r\n}\r\n\r\nexport class Criteria {\r\n    public id: number;\r\n    public name: string;\r\n    public value: any;\r\n}\r\n","import { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport class NavigationGuard<T extends IOnBeforeNavigatingAway> implements CanDeactivate<T> {\r\n    canDeactivate(component: T, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {\r\n        return component.onNavigatingAway(nextState.url);\r\n    }\r\n}\r\n\r\nexport interface IOnBeforeNavigatingAway {\r\n    onNavigatingAway(toUrl: string): Observable<boolean> | Promise<boolean> | boolean;\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { CommonUtilities } from \"../utilities/common-utilities\";\r\n\r\n@Injectable()\r\nexport class ResultsData {\r\n    public contracts: HashedRecord = {};\r\n\r\n    public pushContracts(item: any): string {\r\n        var hash = CommonUtilities.createNewHash();\r\n        this.contracts[hash] = { item: item };\r\n        return hash;\r\n    }\r\n}\r\n\r\nexport declare type HashedRecord = {\r\n    [hash: string]: Record;\r\n}\r\n\r\nexport class Record {\r\n    public item: any;\r\n}","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class StateStore {\r\n    [id: string]: PageState;\r\n\r\n    public getState(module: string, page: string, hash?: string): PageState {\r\n        var id = module + '.' + page + (hash ? '.' + hash : '');\r\n        if (!this[id]) {\r\n            this[id] = {};\r\n        }\r\n\r\n        return this[id];\r\n    }\r\n};\r\n\r\nexport class PageState {\r\n    [name: string]: any;\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ILoadable, SearchResults } from 'src/Client/components/results-grid/component';\r\nimport { AgencyService, AgencyStatus } from 'src/Client/services/agency.service';\r\n\r\n@Component({\r\n    selector: 'app-independent',\r\n    templateUrl: './component.html',\r\n    styleUrls: ['./component.css']\r\n})\r\nexport class IndependentAgenciesComponent implements OnInit, ILoadable {\r\n    public formData: AgenciesFormData;\r\n    public results: SearchResults<any>;\r\n    public isLoading: boolean;\r\n\r\n    constructor(private agencyService: AgencyService) {\r\n        this.formData = new AgenciesFormData();\r\n        this.results = new SearchResults<any>(this, { pageSize: 6 });\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.search();\r\n\r\n        this.adjustWidth();\r\n    }\r\n\r\n    saveState() {\r\n    }\r\n\r\n    onFilterChanged() {\r\n        this.search();\r\n    }\r\n\r\n    search(): any {\r\n        var data = this.agencyService.getAllIndependentAgencies(this.formData.keywords, this.formData.getStatuses());\r\n\r\n        if (data) {\r\n            this.isLoading = true;\r\n            var __this__ = this;\r\n            data.subscribe(function (item: any[]) {\r\n                __this__.results.setResults(item, null, null);\r\n            }, function (error: Error) {\r\n                __this__.results.setError(error.message);\r\n                __this__.isLoading = false;\r\n            }, function () {\r\n                __this__.isLoading = false;\r\n            });\r\n        }\r\n    }\r\n\r\n    // Only required for IE and Edge, does nothing in Chrome and Firefox\r\n    private adjustWidth() {\r\n        var label = document.getElementsByName('ppra')[0].parentElement as HTMLLabelElement;\r\n\r\n        var sizer = label as HTMLElement;\r\n        while (sizer && !sizer.classList.contains('row')) {\r\n            sizer = sizer.parentElement;\r\n        }\r\n\r\n        var limit = label as HTMLElement;\r\n        while (limit && !limit.classList.contains('sub-form')) {\r\n            limit = limit.parentElement;\r\n        }\r\n\r\n        if (sizer && limit) {\r\n            while (label.offsetHeight > 45 && sizer.offsetWidth < limit.offsetWidth) {\r\n                sizer.style.width = `${sizer.offsetWidth + (label.offsetHeight < 55 ? 1 : 25)}px`;\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\nclass AgenciesFormData {\r\n    public keywords: string = '';\r\n    public ppra: boolean = true;\r\n    public exempt: boolean = true;\r\n    public limited: boolean = true;\r\n\r\n    getStatuses(): AgencyStatus[] {\r\n        var statuses: AgencyStatus[] = [];\r\n\r\n        if (this.ppra) {\r\n            statuses.push(AgencyStatus.PPRA);\r\n        }\r\n\r\n        if (this.exempt) {\r\n            statuses.push(AgencyStatus.Exempt);\r\n        }\r\n\r\n        if (this.limited) {\r\n            statuses.push(AgencyStatus.Limited);\r\n        }\r\n\r\n        return statuses;\r\n    }\r\n}\r\n","<h1>Non OCP Agencies</h1>\r\n<form>\r\n    <div class=\"form-group\">\r\n        <div class=\"row\">\r\n            <div class=\"col\">\r\n                <input name=\"search\" class=\"form-control\" [(ngModel)]=\"formData.keywords\" />\r\n            </div>\r\n            <div class=\"non-col\">\r\n                <button class=\"btn btn-primary\" (click)=\"search()\">Search Agencies</button>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"sub-form\">\r\n        <div class=\"form-group\">\r\n            <div class=\"row\">\r\n                <div class=\"col\"><h2 class=\"center\">Showing agencies that are</h2></div>\r\n            </div>\r\n            <div class=\"row\">\r\n                <div class=\"col\">\r\n                    <div><label><input name=\"ppra\" type=\"checkbox\" [(ngModel)]=\"formData.ppra\" (change)=\"onFilterChanged()\" /> Subject to the Procurement Practices Reform Act of 2010 (PPRA) and Independent from the CPO's Authority</label></div>\r\n                    <div><label><input name=\"exempt\" type=\"checkbox\" [(ngModel)]=\"formData.exempt\" (change)=\"onFilterChanged()\" /> Exempt from the PPRA and CPO's Authority</label></div>\r\n                    <div><label><input name=\"limited\" type=\"checkbox\" [(ngModel)]=\"formData.limited\" (change)=\"onFilterChanged()\" /> Limited Applicability of the PPRA and Exemption from the CPO's Authority</label></div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</form>\r\n<div class=\"row results\" *ngIf=\"results.items\">\r\n    <div class=\"col\" *ngIf=\"results.items.length > 0\">\r\n        <div class=\"row\" *ngFor=\"let result of results.page\">\r\n            <div class=\"col\"><a href=\"{{result.siteLink}}\" target=\"_blank\">{{result.displayName}} <span class=\"fa fa-external-link\"></span></a></div>\r\n            <div class=\"col\" *ngIf=\"result.status === 1\">Subject to the PPRA of 2010 and Independent from the CPO's Authority</div>\r\n            <div class=\"col\" *ngIf=\"result.status === 2\">Exempt from the PPRA and CPO's Authority</div>\r\n            <div class=\"col\" *ngIf=\"result.status === 4\">Limited Applicability of the PPRA and Exemption from the CPO's Authority</div>\r\n        </div>\r\n    </div>\r\n    <div class=\"col text-center\" *ngIf=\"results.items.length <= 0\">No agencies found</div>\r\n</div>\r\n<div class=\"row paging\" *ngIf=\"results.hasPages\">\r\n    <div>\r\n        <pagination firstText=\"<span class='wide'>First</span><span class='narrow fa fa-step-backward'></span>\"\r\n                    lastText=\"<span class='wide'>Last</span><span class='narrow fa fa-step-forward'></span>\"\r\n                    previousText=\"<span class='wide'>Previous</span><span class='narrow fa fa-backward'></span>\"\r\n                    nextText=\"<span class='wide'>Next</span><span class='narrow fa fa-forward'></span>\"\r\n                    [maxSize]=\"7\" [rotate]=\"true\" [totalItems]=\"results.filteredItems.length\" [(ngModel)]=\"results.pageIndex\"\r\n                    [itemsPerPage]=\"results.pageSize\" [boundaryLinks]=\"true\" (pageChanged)=\"results.onPageChanged($event)\"></pagination>\r\n    </div>\r\n</div>\r\n<div *ngIf=\"isLoading\" class=\"loader-overlay text-center\"></div>\r\n","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-root',\r\n    templateUrl: './app.component.html',\r\n    styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent extends NavigatorComponent {\r\n    public navMenuCollapsed: boolean;\r\n    public isOcp = location.pathname === '/contactocp';\r\n\r\n    constructor(router: Router, analytics: AnalyticsService) {\r\n        super(router, analytics);\r\n\r\n        this.navMenuCollapsed = (window.innerWidth < 992);\r\n    }\r\n\r\n    isActive(area: string) {\r\n        if (area === 'home') {\r\n            return this.router.url === '/' || this.router.url === '/policy' || this.router.url === '/contactus' || this.router.url === '/disclaimer' || this.router.url === '/termsofuse' || this.router.url === '/faq';\r\n        }\r\n        else {\r\n            return this.router.url.startsWith('/' + area);\r\n        }\r\n    }\r\n}\r\n","<div class=\"container header\">\r\n    <header>\r\n        <div class=\"holder text-left\">\r\n            <a href=\"//ocp.dc.gov/\" title=\"OCP home page\" aria-label=\"OCP home page\" *ngIf=\"!isOcp\"><img src=\"assets/OCPLogo.png\" alt=\"OCP Logo\" /></a>\r\n            <a href=\"//ocp.dc.gov/service/procurement-center-excellence\" title=\"PCOE home page\" aria-label=\"OCP home page\" *ngIf=\"isOcp\"><img src=\"assets/PCOELogo.jpg\" alt=\"PCOE Logo\" /></a>\r\n        </div>\r\n        <div class=\"holder text-center\">\r\n            <span class=\"heading\" *ngIf=\"!isOcp\">Contracts and Procurement Transparency Portal</span>\r\n            <span class=\"heading\" *ngIf=\"isOcp\">PASS Customer Assistance Request Form</span>\r\n        </div>\r\n        <div class=\"holder text-right\">\r\n            <a href=\"//dc.gov/\" title=\"DC.gov home page\" aria-label=\"DC.gov home page\"><img class=\"\" src=\"assets/dcgov_logo.jpg\" alt=\"DC Gov Logo\" /></a>\r\n        </div>\r\n    </header>\r\n    <div class=\"row\">\r\n        <div class=\"col d-none d-sm-none d-md-none d-lg-block\"></div>\r\n        <div>\r\n            <nav class=\"navbar navbar-expand-lg navbar-light\">\r\n                <button class=\"navbar-toggler collapsed text-left\" type=\"button\" data-target=\"#navbarSupportedContent\"\r\n                        *ngIf=\"!isOcp\" (click)=\"navMenuCollapsed = !navMenuCollapsed\"\r\n                        aria-controls=\"navbarSupportedContent\" [attr.aria-expanded]=\"!navMenuCollapsed\" aria-label=\"Toggle navigation\">\r\n                    <span class=\"navbar-toggler-icon\"></span>\r\n                </button>\r\n                <div class=\"collapse navbar-collapse\" id=\"navbarSupportedContent\" [collapse]=\"navMenuCollapsed\">\r\n                    <ul class=\"navbar-nav\" *ngIf=\"!isOcp\">\r\n                        <li class=\"nav-item\" [class.active]=\"isActive('home')\" (click)=\"navMenuCollapsed = !navMenuCollapsed\">\r\n                            <a routerLink=\"\" class=\"nav-link\">Home</a>\r\n                        </li>\r\n                        <li class=\"nav-item\" [class.active]=\"isActive('forecast')\" (click)=\"navMenuCollapsed = !navMenuCollapsed\">\r\n                            <a routerLink=\"forecast/search\" class=\"nav-link\">Forecast</a>\r\n                        </li>\r\n                        <li class=\"nav-item\" [class.active]=\"isActive('solicitations')\" (click)=\"navMenuCollapsed = !navMenuCollapsed\">\r\n                            <a routerLink=\"solicitations/search\" class=\"nav-link\">Solicitations</a>\r\n                        </li>\r\n                        <li class=\"nav-item\" [class.active]=\"isActive('contracts')\" (click)=\"navMenuCollapsed = !navMenuCollapsed\">\r\n                            <a routerLink=\"contracts/search\" class=\"nav-link\">Contracts</a>\r\n                        </li>\r\n                        <li class=\"nav-item\" [class.active]=\"isActive('purchase')\" (click)=\"navMenuCollapsed = !navMenuCollapsed\">\r\n                            <a routerLink=\"purchase/search\" class=\"nav-link\">Purchase Orders</a>\r\n                        </li>\r\n                        <li class=\"nav-item\" [class.active]=\"isActive('payments')\" (click)=\"navMenuCollapsed = !navMenuCollapsed\">\r\n                            <a routerLink=\"payments/search\" class=\"nav-link\">Payments</a>\r\n                        </li>\r\n                        <li class=\"nav-item\" [class.active]=\"isActive('agencies')\" (click)=\"navMenuCollapsed = !navMenuCollapsed\">\r\n                            <a routerLink=\"agencies\" class=\"nav-link\">Independent Agencies</a>\r\n                        </li>\r\n                        <li class=\"nav-item\" [class.active]=\"isActive('laws')\" (click)=\"navMenuCollapsed = !navMenuCollapsed\">\r\n                            <a href=\"//ocp.dc.gov/page/laws-regulations1\" target=\"_blank\" class=\"nav-link\">Laws &amp; Regulations</a>\r\n                        </li>\r\n                    </ul>\r\n                </div>\r\n            </nav>\r\n        </div>\r\n        <div class=\"col\"></div>\r\n    </div>\r\n</div>\r\n<div class=\"container content\" role=\"main\">\r\n    <div class=\"router\">\r\n        <router-outlet (activate)=\"onRouterOutletActivate($event)\"></router-outlet>\r\n    </div>\r\n</div>\r\n<div class=\"container\" *ngIf=\"!isOcp\">\r\n    <footer>\r\n        <div class=\"row bg-primary\">\r\n            <div class=\"col\">\r\n            </div>\r\n            <div>\r\n                <ul>\r\n                    <!--<li><a routerLink=\"policy\" class=\"footlinks\">Policy</a></li>-->\r\n                    <li><a routerLink=\"contactus\" class=\"footlinks\">Contact Us</a></li>\r\n                    <li><a href=\"/faq\" class=\"footlinks\">FAQs</a></li>\r\n                    <li><a routerLink=\"termsofuse\" class=\"footlinks\">Terms of Use</a></li>\r\n                    <li><a routerLink=\"disclaimer\" class=\"footlinks\">Disclaimer</a></li>\r\n                </ul>\r\n            </div>\r\n            <div class=\"col\">\r\n            </div>\r\n        </div>\r\n    </footer>\r\n</div>\r\n","import { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CollapseModule, ModalModule, PaginationModule } from 'ngx-bootstrap';\r\nimport { ComponentsModule } from '../components/module';\r\nimport { CriteriaData } from '../providers/criteria-data';\r\nimport { NavigationGuard } from '../providers/navigation-gaurds';\r\nimport { ResultsData } from '../providers/results-data';\r\nimport { StateStore } from '../providers/state-store';\r\nimport { IndependentAgenciesComponent } from './agencies/component';\r\nimport { AppComponent } from './app.component';\r\nimport { NotFoundComponent } from './error/not-found/component';\r\nimport { DisclaimerComponent } from './home/disclaimer/component';\r\nimport { LandingComponent } from './home/landing/component';\r\nimport { PolicyComponent } from './home/policy/component';\r\nimport { TermsOfUseComponent } from './home/terms-of-use/component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        AppComponent,\r\n        LandingComponent,\r\n        NotFoundComponent,\r\n        PolicyComponent,\r\n        DisclaimerComponent,\r\n        TermsOfUseComponent,\r\n        IndependentAgenciesComponent\r\n    ],\r\n    imports: [\r\n        BrowserModule,\r\n        BrowserAnimationsModule,\r\n        HttpClientModule,\r\n        ComponentsModule,\r\n        RouterModule.forRoot([\r\n            {\r\n                path: '',\r\n                component: LandingComponent\r\n            },\r\n            {\r\n                path: 'contracts',\r\n                loadChildren: () => import('./contracts/module').then(m => m.ContractsModule)\r\n            },\r\n            {\r\n                path: 'payments',\r\n                loadChildren: () => import('./payments/module').then(m => m.PaymentsModule)\r\n            },\r\n            {\r\n                path: 'purchase',\r\n                loadChildren: () => import('./purchase/module').then(m => m.PurchaseModule)\r\n            },\r\n            {\r\n                path: 'forecast',\r\n                loadChildren: () => import('./forecast/module').then(m => m.ForecastModule)\r\n            },\r\n            {\r\n                path: 'solicitations',\r\n                loadChildren: () => import('./solicitations/module').then(m => m.SolicitationsModule)\r\n            },\r\n            {\r\n                path: 'agencies',\r\n                component: IndependentAgenciesComponent\r\n            },\r\n            {\r\n                path: 'policy',\r\n                component: PolicyComponent\r\n            },\r\n            {\r\n                path: 'contactus',\r\n                loadChildren: () => import('./home/contact-us/module').then(m => m.ContactUsModule)\r\n            },\r\n            {\r\n                path: 'contactocp',\r\n                data: { 'for': 'ocp' },\r\n                loadChildren: () => import('./home/contact-us/module').then(m => m.ContactUsModule)\r\n            },\r\n            {\r\n                path: 'disclaimer',\r\n                component: DisclaimerComponent\r\n            },\r\n            {\r\n                path: 'termsofuse',\r\n                component: TermsOfUseComponent\r\n            },\r\n            {\r\n                path: '**',\r\n                component: NotFoundComponent\r\n            }]),\r\n        PaginationModule.forRoot(),\r\n        FormsModule,\r\n        ModalModule.forRoot(),\r\n        CollapseModule.forRoot()\r\n    ],\r\n    providers: [\r\n        StateStore,\r\n        CriteriaData,\r\n        ResultsData,\r\n        NavigationGuard],\r\n    bootstrap: [AppComponent]\r\n})\r\n\r\nexport class AppModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-not-found',\r\n  templateUrl: './component.html',\r\n  styleUrls: ['./component.css']\r\n})\r\nexport class NotFoundComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n","<div>\r\n  The page you are looking for could not be found or is work in progress. Please verify the link/try again later.\r\n</div>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-disclaimer',\r\n  templateUrl: './component.html',\r\n  styleUrls: ['./component.css']\r\n})\r\nexport class DisclaimerComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n","<h6>LEGAL DISCLAIMER:</h6>\r\n<p>\r\n    The information contained on this website is for general information purposes only. The Office of Contracting and Procurement (OCP)\r\n    assumes no responsibility for errors or omissions in the contents on this website.  OCP reserves the right to make additions, deletions,\r\n    or modification to the contents on the website at any time without prior notice. OCP does not warrant that the website is free of viruses\r\n    or other harmful components.  This website may contain links to external websites that are not provided or maintained by OCP. Please note\r\n    that OCP does not guarantee the accuracy, relevance, timeliness, or completeness of any information on these external websites.\r\n</p>\r\n<h6>Freedom of Information Act</h6>\r\n<p>\r\n    If you cannot find the information you are looking for here or elsewhere on DC.gov, you must submit a FOIA request online via the DC\r\n    government Public FOIA Portal. Before submitting a request, please visit foia.dc.gov for more information about the requirements. FOIA\r\n    requests to the DC Office of Contracting and Procurement (OCP) must be made via the DC government Public FOIA Portal. The OCP FOIA\r\n    officer has 15 business days to respond. Documents may be viewed at OCP or copies can be made (certain exemptions may apply). There is\r\n    a research fee plus a $.25 per page copy fee for FOIA requests.\r\n</p>\r\n<h6>FOIA Officer</h6>\r\n<p>\r\n    The FOIA Officer is the principal contact point for advice and policy guidance on matters pertaining to the administration of the FOIA\r\n    process. All requests are handled professionally and expeditiously.\r\n</p>\r\n<p>\r\n    Jeremiah Regan<br />\r\n    441 4th Street NW<br />\r\n    Washington, DC 20001<br />\r\n    <a href=\"mailto:jeremiah.regan@dc.gov\">jeremiah.regan@dc.gov</a><br />\r\n    Phone: <a href=\"tel:+12027270252\">(202) 727-0252</a><br />\r\n</p>\r\n<h6>Office of Disability Rights</h6>\r\n<p>If you need reasonable accommodations during the solicitation process, or if you require any documents in an alternate form; please contact the Procurement Center of Excellence - Customer Contact Center at <a href=\"tel:+12027244477\">(202) 724-4477</a> or via email at <a href=\"mailto:ocp.helpdesk@dc.gov\">ocp.helpdesk@dc.gov</a>.</p>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'app-landing',\r\n    templateUrl: './component.html',\r\n    styleUrls: ['./component.css']\r\n})\r\nexport class LandingComponent implements OnInit {\r\n    constructor() {\r\n    }\r\n\r\n    ngOnInit() {\r\n    }\r\n}\r\n","<div class=\"statement center\">\r\n    <h1>Access All of DC Government's Business Opportunities Today</h1>\r\n    <p>Welcome to the Contracts and Procurement Transparency Portal. The Contracts and Procurement Transparency Portal was created by the Office of Contracting and Procurement (OCP), under the leadership of Mayor Muriel Bowser, as a public clearinghouse for all information related to the District Government’s contracting and procurement efforts.</p>\r\n</div>\r\n<div class=\"statement center\">\r\n    <h1>What would you like to search today?</h1>\r\n</div>\r\n<div class=\"tile-columns\">\r\n    <a routerLink=\"forecast/search\" class=\"tile\"\r\n       title=\"Future District of Columbia procurement opportunities that anticipate solicitation to industry and suppliers.\"\r\n       style=\"background-image:url('assets/forecast.png')\">\r\n        <div class=\"tile-content\">\r\n            <div>Forecast</div>\r\n        </div>\r\n    </a>\r\n    <a routerLink=\"solicitations/search\" class=\"tile\"\r\n       title=\"Current District of Columbia procurement opportunities that have been announced to industry and suppliers.\"\r\n       style=\"background-image:url('assets/solicitations.png')\">\r\n        <div class=\"tile-content\">\r\n            <div>Solicitations</div>\r\n        </div>\r\n    </a>\r\n    <a routerLink=\"contracts/search\" class=\"tile\"\r\n       title=\"Database of all legally binding agreements between the District of Columbia and its suppliers outlining specific terms and conditions, obligations, or responsibilities.\"\r\n       style=\"background-image:url('assets/contracts.png')\">\r\n        <div class=\"tile-content\">\r\n            <div>Contracts</div>\r\n        </div>\r\n    </a>\r\n    <a routerLink=\"purchase/search\" class=\"tile\"\r\n       title=\"Documentation of executed purchase orders between the District of Columbia and a vendor identifying term, quantities, and agreed prices for products or services.\"\r\n       style=\"background-image:url('assets/purchase.png')\">\r\n        <div class=\"tile-content\">\r\n            <div>Purchase Orders</div>\r\n        </div>\r\n    </a>\r\n    <a routerLink=\"payments/search\" class=\"tile\"\r\n       title=\"Payments distributed by the District of Columbia Government to prime vendors with purchase orders.\"\r\n       style=\"background-image:url('assets/payments.png')\">\r\n        <div class=\"tile-content\">\r\n            <div>Payments</div>\r\n        </div>\r\n    </a>\r\n    <a routerLink=\"agencies\" class=\"tile\"\r\n       title=\"District of Columbia government agencies and quasi-government agencies that have contracting and procurement authority, independent of the Chief Procurement Officer of the District.\"\r\n       style=\"background-image:url('assets/agencies.png')\">\r\n        <div class=\"tile-content\">\r\n            <div>Independent Agencies</div>\r\n        </div>\r\n    </a>\r\n</div>\r\n<div class=\"additional-links\">\r\n    <a href=\"https://app.smartsheet.com/b/publish?EQBCT=0ea1a2b1cb014ff3ada12550ef0989a8\">COVID-19 Expenditure and Contract Files by month</a>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-policy',\r\n  templateUrl: './component.html',\r\n  styleUrls: ['./component.css']\r\n})\r\nexport class PolicyComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n","<p>\r\n  Policy details coming soon...\r\n</p>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'app-terms-of-use',\r\n    templateUrl: './component.html',\r\n    styleUrls: ['./component.css']\r\n})\r\nexport class TermsOfUseComponent implements OnInit {\r\n\r\n    constructor() {\r\n    }\r\n\r\n    ngOnInit() {\r\n    }\r\n\r\n}\r\n","<div>\r\n    <h5>Terms and Conditions of Use</h5>\r\n    <p>Your access to and use of the OCP Transparency Website (\"OCP Transparency Website\") website (the \"Site\") is subject to the following terms and conditions, as well as all applicable laws. Your access to the Site is in consideration for your agreement to these Terms and Conditions of Use, whether or not you are a registered user. By accessing, browsing, and using the Site, you accept, without limitation or qualification, these Terms and Conditions of Use.</p>\r\n    <h6>Modification of the Agreement</h6>\r\n    <p>OCP Transparency Website maintains the right to modify these Terms and Conditions of Use and may do so by posting notice of such modifications on this page. Any modification is effective immediately upon posting, unless otherwise stated. Your continued use of the Site following the posting of any modification signifies your acceptance of such modification. You should periodically visit this page to review the current Terms and Conditions of Use.</p>\r\n    <h6>Conduct</h6>\r\n    <p>You agree to access and use the Site only for lawful purposes. You are solely responsible for the knowledge of and adherence to any and all laws, statutes, rules and regulations pertaining to your use of the Site. By accessing the Site, you agree that you will not:</p>\r\n    <p>1. Use the Site to commit a criminal offense or to encourage others to engage in any conduct which would constitute a criminal offense or give rise to civil liability; 2. Post or transmit any discriminatory, libelous, harassing, defamatory, obscene, pornographic, or otherwise unlawful content; 3. Use the Site to impersonate other parties or entities; 4. Use the Site to upload any content that contains a software virus, \"Trojan Horse\" or any other computer code, files, or programs that may alter, damage, or interrupt the functionality of the Site or the hardware or software of any other person who accesses the Site; 5. Upload, post, email, or otherwise transmit any materials that you do not have a right to transmit under any law or under a contractual relationship; 6. Alter, damage, or delete any content posted on the site; 7. Disrupt the normal flow of communication in any way; 8. Claim a relationship with or represent any business, association, or other organization with which you are not authorized to claim such a relationship or represent; 9. Post or transmit any unsolicited advertising, promotional materials, or other forms of solicitation; 10. Post any material that infringes upon or violates the intellectual property rights of another; or 11. Collect or store personal information about others.</p>\r\n    <h6>Registration</h6>\r\n    <p>Certain portions of the Site are limited to registered users and/or allow a user to request support or services online by entering personal information. You agree that any information provided to us in these areas will be complete and accurate, that you will not register under the name of, nor attempt to enter the Site under the name of, another person, and that you will not adopt a user name that OCP Transparency Website, in its sole discretion, deems offensive.</p>\r\n    <p>You must be at least 18 years old to become a registered user or to request support or services online. If you are not at least 18, you will be removed from the registered area(s) and/or denied support or services.</p>\r\n    <h6>Termination of Use</h6>\r\n    <p>OCP Transparency Website may, in its sole discretion, terminate or suspend your access to and use of this Site without notice and for any reason, including for violation of these Terms and Conditions of Use or for other conduct which OCP Transparency Website, in its sole discretion, believes is unlawful or harmful to others. In the event of termination, you will no longer be authorized to access the Site, and OCP Transparency Website will use any means possible to enforce this termination.</p>\r\n    <h6>Other Site Links</h6>\r\n    <p>Some links on the Site lead to websites that are not operated by OCP Transparency Website. The OCP Transparency Website does not control these websites nor do we review or control their content. OCP Transparency Website provides these links to users for convenience. These links are not an endorsement of products, services, or information, and do not imply an association between OCP Transparency Website and the operators of the linked website. When you select a link to an outside website, you are subject to the terms and conditions of the owner/sponsors of that outside website.</p>\r\n    <h6>Policy on Spamming</h6>\r\n    <p>You specifically agree that you will not utilize email addresses obtained by using the Site to transmit the same or substantially similar unsolicited message to 10 or more recipients in a single day, or 20 or more emails in a single week (consecutive 7-day period), unless doing so is necessary for legitimate business purposes. OCP Transparency Website, in its sole discretion, will identify violations of the limitations on email usage set forth in these Terms and Conditions of Use. Violations may result in your removal from registered areas, denial of support or services, or other consequences.</p>\r\n    <h6>Content</h6>\r\n    <p>OCP Transparency Website reserves the right to monitor any content that you provide but shall not be obligated to do so. Although OCP Transparency Website cannot monitor all postings on the Site, we reserve the right (but assume no obligation) to delete, move, or edit any postings that violate these terms and conditions. United States and foreign copyright laws and international conventions protect the contents of the Site. You agree to abide by all copyright notices posted on the Site.</p>\r\n    <h6>Indemnity</h6>\r\n    <p>You agree to defend, indemnify, and hold harmless OCP Transparency Website and all of its employees and agents from any and all liabilities incurred in connection with any claim arising from any breach by you of these Terms and Conditions of Use, including reasonable attorneys' fees and costs. You agree to cooperate fully in the defense of any such claim. OCP Transparency Website reserves the right to assume, at its own expense, the exclusive defense and control of any matter otherwise subject to indemnification by you. You agree not to settle any matter without the written consent of OCP Transparency Website.</p>\r\n    <h6>Disclaimer of Warranty</h6>\r\n    <p>You expressly understand and agree that your use of the Site, or any material available through this Site, is at your own risk. Neither OCP Transparency Website nor its employees warrant that the Site will be uninterrupted, problem-free, free of omissions, or error-free; nor do they make any warranty as to the results that may be obtained from the use of the Site. The content and function of the Site are provided to you \"as is,\" without warranties of any kind, either express or implied, including, but not limited to, warranties of title, merchantability, fitness for a particular purpose or use, or currency.</p>\r\n    <h6>Limitation of Liability</h6>\r\n    <p>In no event will OCP Transparency Website or its employees be liable for any incidental, indirect, special, punitive, exemplary, or consequential damages, arising out of your use of or inability to use the Site, including without limitation, loss of revenue or anticipated profits, loss of goodwill, loss of business, loss of data, computer failure or malfunction, or any other damages.</p>\r\n</div>","import { NavigationStart, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { ICustomDimensionProvider } from '../common/custom-dimension-provider';\r\nimport { INavigationDetails, NavigationTrigger } from '../common/navigation-details';\r\nimport { AnalyticsService } from '../services/analytics.service';\r\n\r\nexport abstract class NavigatorComponent {\r\n    private currentNavigationTrigger: NavigationTrigger;\r\n\r\n    protected constructor(protected router: Router, private analytics: AnalyticsService) {\r\n        var __this__ = this;\r\n        router.events.pipe(filter(evt => evt instanceof NavigationStart)).subscribe({\r\n            next: function (evt: NavigationStart) {\r\n                __this__.currentNavigationTrigger = evt.navigationTrigger === 'imperative'\r\n                                                                             ? NavigationTrigger.Imperative\r\n                                                                             : evt.navigationTrigger === 'popstate'\r\n                                                                                                        ? NavigationTrigger.PopState\r\n                                                                                                        : NavigationTrigger.Unknown;\r\n            }\r\n        });\r\n    }\r\n\r\n    onRouterOutletActivate(component: any) {\r\n        var data: any[];\r\n\r\n        if ((<ICustomDimensionProvider>component).getDimensionData) {\r\n            data = [(<ICustomDimensionProvider>component).getDimensionData(1)];\r\n        }\r\n        else {\r\n            data = [null];\r\n        }\r\n\r\n        this.analytics.sendPageView(this.router.url, data);\r\n\r\n        if ((<INavigationDetails>component).setNavigationDetails) {\r\n            component.setNavigationDetails(this.currentNavigationTrigger);\r\n        }\r\n    }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\nimport { BaseService } from './base-service';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class AgencyService extends BaseService {\r\n    constructor(httpClient: HttpClient) {\r\n        super(httpClient, 'agencies');\r\n    }\r\n\r\n    public getAllIndependentAgencies(keywords: string, statuses: AgencyStatus[]): Observable<any[]> {\r\n        var status = 0;\r\n        statuses.forEach(function (st) { status += st; });\r\n        return this.getItem(`independent?keywords=${encodeURIComponent(keywords)}&status=${status}`, new ReplaySubject<any>());\r\n    }\r\n}\r\n\r\nexport enum AgencyStatus {\r\n    None = 0,\r\n    PPRA = 1,\r\n    Exempt = 2,\r\n    Limited = 4\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\nimport { filter } from \"rxjs/operators\";\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class AnalyticsService {\r\n    private ga: AnalyticsReport = (<any>window).ga;\r\n\r\n    public initializeRouter(router: Router) {\r\n        router.events.pipe(filter(evt => evt instanceof NavigationEnd)).subscribe({\r\n            next: function (evt: NavigationEnd) {\r\n                this.sendPageView(evt.urlAfterRedirects);\r\n            }.bind(this)\r\n        });\r\n    }\r\n\r\n    public sendPageView(page: string, data: any[]) {\r\n        this.ga('set', 'page', page.split('?')[0]);\r\n        if (!data) {\r\n            data = [null];\r\n        }\r\n\r\n        for (var i = 0; i < data.length; i++) {\r\n            const datum = data[i];\r\n            if (datum) {\r\n                this.ga('set', 'dimension' + (i + 1), JSON.stringify(datum));\r\n            }\r\n            else {\r\n                this.ga('set', 'dimension' + (i + 1), null);\r\n            }\r\n        }\r\n\r\n        this.ga('send', 'pageview');\r\n    }\r\n\r\n    public sendEvent(category: string, action: string, label?: string, value?: number): any {\r\n        this.ga('send', 'event', { eventCategory: category, eventLabel: label, eventAction: action, eventValue: value });\r\n    }\r\n\r\n    public sendException(err: any): void {\r\n        this.ga('send', 'exception', JSON.stringify(err));\r\n    }\r\n}\r\n\r\ndeclare type AreaName = 'Forecast' | 'Solicitations' | 'Contracts' | 'Purchase Orders' | 'Payments';\r\ndeclare type Event = { eventCategory: string, eventAction: string, eventLabel?: string, eventValue?: number };\r\ndeclare type CustomVar = { slot: 1 | 2 | 3 | 4 | 5, name: string, eventValue: string };\r\ndeclare type AnalyticsReport = (method: string, type: string, argument?: string | Event | CustomVar) => void;\r\ndeclare type Variable = { name: string, value: any };\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, ReplaySubject } from \"rxjs\";\r\nimport { Criteria } from \"../providers/criteria-data\";\r\nimport { SortOrder } from \"../common/enums\";\r\n\r\nexport class BaseService {\r\n    private baseApi: string;\r\n\r\n    protected constructor(private httpClient: HttpClient, apiPart: string) {\r\n        this.baseApi = '/api/' + apiPart + '/';\r\n    }\r\n\r\n    protected getItem<T>(api: string, subject: ReplaySubject<T>, errorMessageForNull?: string): Observable<T> {\r\n        return this.handleResponse(this.httpClient.get<T>(this.baseApi + api), subject, errorMessageForNull);\r\n    }\r\n\r\n    protected getItems<T>(api: string, subject: ReplaySubject<T>): Observable<T> {\r\n        var request = this.httpClient.get<T[]>(this.baseApi + api);\r\n        return this.handleResponse<any>(request, subject, null, function (data) {\r\n            data.forEach(function (item) {\r\n                subject.next(item);\r\n            });\r\n        });\r\n    }\r\n\r\n    protected postCriteria<T>(api: string, criteria: ApiCriteria, subject: ReplaySubject<T>): Observable<T> {\r\n        return this.post(api, criteria, subject);\r\n    }\r\n\r\n    protected post<T>(api: string, body: any, subject: ReplaySubject<T>): Observable<T> {\r\n        return this.handleResponse(this.httpClient.post<T>(this.baseApi + api, body), subject);\r\n    }\r\n\r\n    private handleResponse<T>(request: Observable<T>, subject: ReplaySubject<T>, errorMessageForNull?: string, next?: (T) => void) {\r\n        request.subscribe(function (data: T) {\r\n            if (data) {\r\n                if (next) {\r\n                    next(data);\r\n                }\r\n                else {\r\n                    subject.next(data);\r\n                }\r\n            }\r\n            else if (errorMessageForNull) {\r\n                subject.error(new ServiceError(errorMessageForNull));\r\n            }\r\n        }, function (error: HttpErrorResponse) {\r\n            subject.error(new ServiceError(error.message));\r\n        }, function () {\r\n            subject.complete();\r\n        });\r\n\r\n        return subject;\r\n    }\r\n}\r\n\r\nexport declare type ApiCriteria = { 'FilterBy': Criteria[]; 'OrderBy': { 'name': string; 'order': SortOrder; }[]; };\r\n\r\nexport class ServiceError {\r\n    constructor(public message: string) {\r\n    }\r\n}\r\n","import { CellConfig, jsPDF } from \"jspdf\";\r\n\r\nexport declare type ValueExtractor = (value: any) => any;\r\nexport declare type ExportColumnDefinition = { property: string | ValueExtractor, title: string, widthPercentage: number };\r\nexport declare type HeaderDefinition = { name: string, title: string, widthPercentage: number };\r\n\r\nexport class CommonUtilities {\r\n    public static getAllFiscalYears(): string[] {\r\n        var years: string[] = [];\r\n\r\n        var currentFiscalYear = CommonUtilities.getCurrentFiscalYear() + 1;\r\n        for (var i = 2013; i <= currentFiscalYear; i++) {\r\n            years.push('FY' + i);\r\n        }\r\n\r\n        return years;\r\n    }\r\n\r\n    public static getFiscalYears(start: number, end: number): string[] {\r\n        var years: string[] = [];\r\n\r\n        var currentFiscalYear = CommonUtilities.getCurrentFiscalYear();\r\n        var startFiscalYear = currentFiscalYear - start + 1;\r\n        for (var i = startFiscalYear; i <= currentFiscalYear + end; i++) {\r\n            years.push('FY' + i);\r\n        }\r\n\r\n        return years;\r\n    }\r\n\r\n    public static getCurrentFiscalYear() {\r\n        return CommonUtilities.getFiscalYearEndDate(0).getFullYear();\r\n    }\r\n\r\n    public static getFiscalYearStartDate(year: number): any {\r\n        return new Date(year - 1, 9, 1);\r\n    }\r\n\r\n    public static getFiscalYearEndDate(addYears: number): Date {\r\n        var now = new Date(Date.now());\r\n        var year = now.getFullYear();\r\n        if (now.getMonth() > 8) {\r\n            year++;\r\n        }\r\n\r\n        return new Date(year + addYears, 8, 30, 23, 59, 59, 999);\r\n    }\r\n\r\n    public static getOffsetDate(days: number): Date {\r\n        var date = new Date();\r\n        date.setDate(date.getDate() + days);\r\n\r\n        return date;\r\n    }\r\n\r\n    public static currencyToNumber(value: string): number {\r\n        if (value && value.substr(0, 1) === '$') {\r\n            value = value.substr(1);\r\n        }\r\n\r\n        var parsed = parseInt(value);\r\n        if (isNaN(parsed)) {\r\n            parsed = null;\r\n        }\r\n\r\n        return parsed;\r\n    }\r\n\r\n    public static createNewHash(): string {\r\n        const characters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];\r\n        const length = 16;\r\n\r\n        var hash = '';\r\n        for (var i = 0; i < length; i++) {\r\n            var rndIndex = Math.floor(Math.random() * (characters.length - 1));\r\n            hash += characters[rndIndex];\r\n        }\r\n\r\n        return hash;\r\n    }\r\n\r\n    public static prepareForExport(data: any[], cols: ExportColumnDefinition[]): { headers: HeaderDefinition[], data: { [key: string]: string }[] } {\r\n        var resultData = [];\r\n\r\n        const headers: HeaderDefinition[] = [];\r\n        cols.forEach(function (col, index) {\r\n            let name = col.property;\r\n            if (typeof name !== 'string') {\r\n                debugger;\r\n                name = index.toString();\r\n            }\r\n\r\n            headers.push({ name: name, title: col.title, widthPercentage: col.widthPercentage });\r\n        });\r\n\r\n        data.forEach(function (row) {\r\n            var resultRow = {};\r\n            cols.forEach(function (col, index) {\r\n                var propName = typeof col.property === 'string' ? col.property : '';\r\n                var extractor = typeof col.property !== 'string' ? col.property : null;\r\n\r\n                var cell = propName ? row[propName] : extractor(row);\r\n\r\n                if (cell instanceof Date) {\r\n                    cell = cell.toLocaleString();\r\n                };\r\n\r\n                cell = cell ? cell.toString() : '';\r\n\r\n                resultRow[propName || index.toString()] = cell;\r\n            });\r\n\r\n            resultData.push(resultRow);\r\n        });\r\n\r\n        return { headers: headers, data: resultData };\r\n    }\r\n\r\n    public static exportToCsv(fileName: string, data: { headers: HeaderDefinition[], data: { [key: string]: string }[] }): void {\r\n        let csvFile = '';\r\n        const processRow = function (row: { [key: string]: string } | HeaderDefinition[]) {\r\n            let finalVal = '';\r\n\r\n            let i = 0;\r\n            for (const key in row) {\r\n                const cellValue = row[key];\r\n                const cellString = typeof cellValue === 'string' ? cellValue : (cellValue as HeaderDefinition).title;\r\n                const innerValue = cellString || '';\r\n\r\n                let result = innerValue.replace(/\"/g, '\"\"');\r\n\r\n                if (result.search(/(\"|,|\\n)/g) >= 0) {\r\n                    result = '\"' + result + '\"';\r\n                }\r\n\r\n                finalVal += (i > 0 ? ',' : '') + result;\r\n                i++;\r\n            }\r\n\r\n            csvFile += finalVal + '\\n';\r\n        };\r\n\r\n        processRow(data.headers);\r\n\r\n        for (let i = 0; i < data.data.length; i++) {\r\n            processRow(data.data[i]);\r\n        }\r\n\r\n        var blob = new Blob([csvFile], { type: 'text/csv;charset=utf-8;' });\r\n        if (navigator.msSaveBlob) { // IE 10+\r\n            navigator.msSaveBlob(blob, fileName);\r\n        }\r\n        else {\r\n            var link = document.createElement(\"a\");\r\n            if (link.download !== undefined) { // feature detection\r\n                // Browsers that support HTML5 download attribute\r\n                var url = URL.createObjectURL(blob);\r\n                link.setAttribute(\"href\", url);\r\n                link.setAttribute(\"download\", fileName);\r\n                link.style.visibility = 'hidden';\r\n                document.body.appendChild(link);\r\n                link.click();\r\n                document.body.removeChild(link);\r\n            }\r\n        }\r\n    }\r\n\r\n    public static exportToPdf(fileName: string, data: { headers: HeaderDefinition[], data: { [key: string]: string }[] }): void {\r\n        const pageWidth = 370;\r\n        const headers: CellConfig[] = [];\r\n        data.headers.forEach(function (item, index) {\r\n            headers.push({\r\n                name: item.name,\r\n                prompt: item.title,\r\n                width: item.widthPercentage * pageWidth / 100,\r\n                align: 'left',\r\n                padding: 4,\r\n            });\r\n        });\r\n\r\n        const margin: any = { left: 10, top: 10, right: 10, bottom: 10 };\r\n        const doc = new jsPDF('landscape', null, 'a4', true);\r\n        doc.table(10, 10, data.data, headers, {\r\n            autoSize: false,\r\n            printHeaders: true,\r\n            fontSize: 8,\r\n            headerBackgroundColor: '#345c8a',\r\n            headerTextColor: '#fff',\r\n            margins: margin,\r\n        });\r\n        doc.save(fileName);\r\n    }\r\n\r\n    public static getFileType(name: string): string {\r\n        const typeMap = { 'txt': 0xf0f6, 'pdf': 0xf1c1, 'doc': 0xf1c3, 'docx': 0xf1c3, 'xls': 0xf1c3, 'xlsx': 0xf1c3, 'ppt': 0xf1c4, 'jpg': 0xf1c5, 'tif': 0xf1c5, 'png': 0xf1c5, 'zip': 0xf1c6, 'wav': 0xf1c7, 'mp3': 0xf1c7, 'mov': 0xf1c8, 'mp4': 0xf1c8, 'avi': 0xf1c8, 'html': 0xf1c9, 'xml': 0xf1c9 };\r\n        var index = name.lastIndexOf('.');\r\n        return name && index >= 0 ? name.substr(index + 1) : 'unknown';\r\n    }\r\n}\r\n"],"names":[],"sourceRoot":"webpack:///"}