{"version":3,"sources":["webpack:///src/app/format-dssdescription.pipe.ts","webpack:///src/app/radio-group/radio-group.component.ts","webpack:///src/app/radio-group/radio-group.component.html","webpack:///src/app/search/search-result/tool/tool.component.ts","webpack:///src/app/search/search-result/tool/tool.component.html","webpack:///src/environments/environment.ts","webpack:///src/app/submit/submit.component.html","webpack:///src/app/submit/submit.component.ts","webpack:///src/app/search/dropdown/dropdown.component.ts","webpack:///src/app/search/dropdown/dropdown.component.html","webpack:///src/app/search/checkbox/checkbox.component.ts","webpack:///src/app/search/checkbox/checkbox.component.html","webpack:///src/app/link.pipe.ts","webpack:///src/app/search/report/report.component.ts","webpack:///src/app/search/report/report.component.html","webpack:///src/app/search/search-result/tool/item-list/item-list.component.html","webpack:///src/app/search/search-result/tool/item-list/item-list.component.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/search/search-result/tool/pest-disease-list/pest-disease-list.component.html","webpack:///src/app/search/search-result/tool/pest-disease-list/pest-disease-list.component.ts","webpack:///src/app/info/info.component.ts","webpack:///src/app/info/info.component.html","webpack:///src/app/modal/modal.component.ts","webpack:///src/app/search/search-result/comparison/comparison.component.ts","webpack:///src/app/search/search-result/comparison/comparison.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/search/advanced-search/progress/progress.component.ts","webpack:///src/app/search/advanced-search/progress/progress.component.html","webpack:///src/app/loading/loading.component.html","webpack:///src/app/loading/loading.component.ts","webpack:///src/app/header/header.component.ts","webpack:///src/app/header/header.component.html","webpack:///src/app/footer/footer.component.ts","webpack:///src/app/footer/footer.component.html","webpack:///src/app/nonempty.pipe.ts","webpack:///src/app/width.pipe.ts","webpack:///src/app/search/search-result/search-result.component.ts","webpack:///src/app/search/search-result/search-result.component.html","webpack:///src/app/gtm.service.ts","webpack:///src/app/search/advanced-search/node-input/node-input.component.ts","webpack:///src/app/search/advanced-search/node-input/node-input.component.html","webpack:///src/app/search/analyze/analyze.component.ts","webpack:///src/app/search/analyze/analyze.component.html","webpack:///src/app/search/search.component.html","webpack:///src/app/search/search.component.ts","webpack:///src/app/app-routing.module.ts","webpack:///src/app/search/advanced-search/advanced-search.component.ts","webpack:///src/app/search/advanced-search/advanced-search.component.html","webpack:///src/app/api.service.ts","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object","webpack:///src/app/search/quick-search/quick-search.component.ts","webpack:///src/app/search/quick-search/quick-search.component.html"],"names":["FormatDSSDescriptionPipe","sanitizer","value","formatted","res","match","Array","isArray","item","startsWith","replace","bypassSecurityTrustHtml","RadioGroupComponent","selectedChange","id","emit","ToolComponent","reportClick","moreOpen","urlmodalShow","ipmmodalShow","e","self","setTimeout","window","open","price","val","collection","name","type","undefined","potential","filter","i","type_id","length","toggleMoreOpen","toggleComparison","onIPMModalClose","openLink","environment","production","SubmitComponent","api","router","gtm","submitted","loading","firstname","lastname","email","comment","dssName","link","owner","errorFields","roleItems","push","event","pageName","scroll","top","left","missing","mandatoryFields","field","error","missingMandatoryFields","isValidEmail","submitTool","role2txt","role","subscribe","roleId","find","r","navigate","close","DropdownComponent","selectedItemsChange","tabindex","filtered","_search","unfocusing","_all","updated","Date","getTime","_updated","checkSettled","a","toLowerCase","indexOf","selectedItems","safeUnfocus","bind","includes","splice","closeList","preventDefault","item_category","data","CheckboxComponent","ngModelChange","onChange","ngModel","String","toggle","LinkPipe","ReportComponent","done","item_name","tool","submitReport","tool_id","ItemListComponent","AppComponent","ccService","title","popupOpenSubscription","popupOpen$","popupCloseSubscription","popupClose$","initializeSubscription","initialize$","statusChangeSubscription","statusChange$","status","revokeChoiceSubscription","revokeChoice$","noCookieLawSubscription","noCookieLaw$","unsubscribe","PestDiseaseListComponent","_values","types","values","list","items","Object","InfoComponent","ModalComponent","showChange","style","width","ComparisonComponent","toolsChange","backClicked","markDifferences","markSimilarities","_tools","alltools","selected","tools","t","back","prop","parts","split","first","shift","getProp","join","idx","collectionProp","toggleMarkDifferences","toggleMarkSimilarities","cookieConfig","cookie","domain","position","theme","palette","popup","background","text","button","layout","layouts","elements","messagelink","content","message","privacyPolicyLink","privacyPolicyHref","tosLink","tosHref","AppModule","forRoot","ProgressComponent","currentChange","height","strokeWidth","LoadingComponent","HeaderComponent","FooterComponent","getSync","sync","lastSyncDate","performedAt","NonemptyPipe","WidthPipe","font","canvas","document","createElement","context","getContext","metrics","measureText","suffix","diff","strip","Math","round","stripped","substring","SearchResultComponent","filterChange","reportToolChange","sort","direction","filter_num","forComparison","comparison","_result","results","keys","rootKey","sections","sectionKey","subsections","subsectionKey","itemKey","num","subitemKey","root","section","subsection","checked","active","subitem","performSort","getCrops","crops","arableCrops","c","arable","map","otherCrops","getDiseases","pests","diseases","p","insects","toggleDirection","comp","b","assumed_development_country","added","intermediate","sorted","reverse","updateFilterNum","reload","path","result","GtmService","gtmService","tag","hasConsented","pushTag","NodeInputComponent","change","AnalyzeComponent","SearchComponent","advanced","browse","countriesSelected","cropsSelected","pestsSelected","languagesSelected","advancedSearchBy","url","search","getTools","advancedFilter","reset","routes","component","AppRoutingModule","relativeLinkResolution","AdvancedSearchComponent","advancedSearchByChange","nameChange","onSearch","onClear","currentIdx","getFilter","forRemoval","ApiService","http","mailformat","get","countries","languages","post","pipe","geographic_focus","geographic_focus_neu","geographic_focus_ceu","geographic_focus_seu","f","toCamelCase","inStr","words","ret","word","charAt","toUpperCase","slice","report","put","bootstrapModule","err","console","webpackEmptyAsyncContext","req","Promise","resolve","then","Error","code","module","exports","QuickSearchComponent","onBrowse","getCountries","country_id","pest_disease_id","getLanguages","language_id"],"mappings":"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","file":"main-es5.js","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'formatDSSDescription'\n})\nexport class FormatDSSDescriptionPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(value: string): SafeHtml {\n let formatted = value;\n\n if (value) {\n let res = value.match(/[A-Z][A-Z. ]*:/g);\n if (res && Array.isArray(res)) {\n for (let item of res) {\n if (formatted.startsWith(item)) {\n formatted = formatted.replace(item, \"\" + item + \"\")\n } else {\n formatted = formatted.replace(item, \"

\" + item + \"\")\n } \n }\n }\n }\n return this.sanitizer.bypassSecurityTrustHtml(formatted);\n \n }\n}\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss']\n})\nexport class RadioGroupComponent implements OnInit {\n @Input() items;\n @Input() selected;\n @Output() selectedChange = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n select(id) {\n this.selectedChange.emit(id);\n }\n}\n","
\n
\n {{item.name}}\n
\n
","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-tool',\n templateUrl: './tool.component.html',\n styleUrls: ['./tool.component.scss']\n})\nexport class ToolComponent implements OnInit {\n @Input() tool;\n @Output() selectedChange = new EventEmitter();\n @Output() reportClick = new EventEmitter();\n @Input() arableCrops;\n @Input() otherCrops;\n @Input() diseases;\n @Input() insects;\n\n public moreOpen = false;\n public urlmodalShow = false;\n public ipmmodalShow = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n openModal() {\n this.urlmodalShow = true;\n }\n\n onModalClose(e) {\n let self = this;\n setTimeout(() => {\n self.urlmodalShow = e;\n });\n }\n\n onIPMModalClose(e) {\n let self = this;\n setTimeout(() => {\n self.ipmmodalShow = e;\n });\n }\n\n openLink() {\n window.open(\"https://www.platform.ipmdecisions.net/\");\n }\n\n price2string(price) {\n switch(price) {\n case 'F':\n return 'Free';\n case 'L':\n return 'Limited';\n case 'N':\n return 'Not free';\n default:\n return '';\n }\n }\n\n toggleMoreOpen() {\n this.moreOpen = !this.moreOpen;\n }\n\n yesOrNo(val) {\n return (val ? 'Yes' : 'No');\n }\n\n autoManual(val) {\n if (val === 'A') {\n return 'Automatic';\n } else if (val === 'M') {\n return 'Manual';\n } else if (val === 'N') {\n return 'No';\n }\n\n return '';\n }\n\n freeNonfree(val) {\n if (val === 'F') {\n return 'Free';\n } else if (val == 'N') {\n return 'Not free';\n } else if (val == 'L') {\n return 'Limited';\n }\n\n return '';\n }\n\n onlineOffline(val) {\n if (val === 'ONL') {\n return 'Online';\n } else if (val === 'OFL') {\n return 'Offline';\n }\n return '';\n }\n\n nationalInternational(val) {\n if (val === 'N') {\n return 'National';\n } else if (val === 'I') {\n return 'International';\n }\n return '';\n }\n\n shortLong(val) {\n if (val === 'S') {\n return 'Short-term';\n } else if (val ==='L') {\n return 'Long-term'\n } else if (val === 'B') {\n return 'Both;'\n }\n\n return '';\n }\n\n plantOrWater(val) {\n if (val === 'PP') {\n return 'Plant protection';\n } else if (val === 'WP') {\n return 'Water pollution';\n }\n return '';\n }\n\n smallMediumLarge(val) {\n if (val === 'S') {\n return 'Small';\n } else if (val === 'M') {\n return 'Medium';\n } else if (val === 'L') {\n return 'Large';\n }\n return '';\n }\n\n toggleComparison() {\n this.selectedChange.emit();\n }\n\n includes(collection, name, type = undefined) {\n let potential;\n if (type) {\n potential = collection.filter(i => i.name === name && i.type_id === type);\n } else {\n potential = collection.filter(i => i.name === name);\n }\n\n return potential.length === 0 ? 'No' : 'Yes';\n }\n\n report() {\n this.reportClick.emit();\n }\n}\n","
\n
\n

{{tool.name}}

\n
\n \n \n \n
\n \n
\n

Basic information
  • UPDATE INFORMATION

\n

Tool

\n \n \n

Geographic focus

\n \n\n

Challenge

\n

Definition

\n \n

Constraints

\n \n\n

Problem

\n

Plant protection

\n

Arable crops

\n \n

Diseases

\n \n

Insects

\n \n

Function

\n \n\n

Analysis

\n

Implemenation

\n \n

Language

\n \n \n

Price

\n \n

Data required

\n

Weather

\n \n

Field data

\n \n\n

Outcomes

\n

Output

\n \n

Target

\n \n \n
\n
","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","
\n
\n
\n\n

Add an existing support system

\n

for integrated pest management

\n

Describe the decision support system

\n
\n
Name
\n
Surname
\n
Email
\n
Role \n \n
\n\n
Name of DSS
\n
Link to web page
\n
Owner of DSS
\n \n
Comment
\n
{{error}}
\n
\n
\n \n Confirm\n
\n\n
\n
\n

Thank you!

\n
\n Your contact info for the inclusion of a new DSS in our platform has been successfully reported.\n We will get back to you as soon as possible.\n
\n
\n Return to homepage\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ApiService } from '../api.service';\nimport { GtmService } from '../gtm.service';\n\n@Component({\n selector: 'app-submit',\n templateUrl: './submit.component.html',\n styleUrls: ['./submit.component.scss']\n})\nexport class SubmitComponent implements OnInit {\n public submitted: boolean = false;\n public loading = false;\n\n public firstname = \"\";\n public lastname = \"\";\n public email = \"\";\n public role;\n\n public comment = \"\";\n public dssName = \"\";\n public link = \"\";\n public owner = \"\";\n public error;\n\n public roleItems;\n public errorFields = [];\n\n constructor(private api: ApiService, private router: Router, private gtm: GtmService) {\n this.roleItems = this.api.roleItems;\n }\n\n ngOnInit(): void {\n this.gtm.push({\n event: 'page',\n pageName: '/submit'\n });\n window.scroll({ \n top: 0, \n left: 0\n });\n }\n\n missingMandatoryFields() {\n let missing = false;\n\n let mandatoryFields = ['firstname', 'lastname', 'email', 'role', 'dssName', 'owner'];\n\n for (let field of mandatoryFields) {\n if (this[field] === undefined || this[field] === null || this[field] === \"\") {\n this.errorFields.push(field);\n missing = true;\n }\n }\n return missing;\n }\n\n submit() {\n this.error = undefined;\n this.errorFields = [];\n\n if (this.missingMandatoryFields()) {\n this.error = \"Please complete all mandatory fields\";\n return;\n }\n\n if (!this.api.isValidEmail(this.email)) {\n this.error = \"Invalid Email address\";\n this.errorFields.push('email');\n return;\n }\n \n\n this.gtm.push({\n event: 'submit-submit',\n });\n\n this.loading = true;\n this.api.submitTool(this.firstname, this.lastname, this.email, this.role2txt(this.role), this.comment, this.dssName, this.link, this.owner).subscribe(() => {\n this.submitted = true;\n this.loading = false;\n }, (e) => {\n this.submitted = false;\n this.loading = false;\n this.error = \"An error occurred. Please try again later.\";\n });\n }\n\n role2txt(roleId) {\n let role = this.roleItems.find(r => r.id===roleId);\n\n if (role) {\n return role.name;\n } else {\n return \"\";\n }\n }\n\n close() {\n this.router.navigate([\"/\"]);\n }\n}\n","import { Component, Input, Output, EventEmitter, OnInit, HostBinding, HostListener } from '@angular/core';\nimport { GtmService } from 'src/app/gtm.service';\n\n@Component({\n selector: 'app-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss']\n})\nexport class DropdownComponent implements OnInit {\n\n @Input() public set all(val) {\n this._all = val;\n this.filtered = this._all;\n }\n public get all() {\n return this._all;\n }\n @Input() selectedItems;\n @Input() placeholder;\n @Output() selectedItemsChange = new EventEmitter();\n\n @Input() name;\n\n @HostBinding('tabindex') tabindex = 0;\n\n private _all;\n public filtered = [];\n\n private _updated: number;\n private _search: string = \"\";\n public get search() {\n return this._search;\n }\n public set search(val) {\n this._search = val;\n let updated = new Date().getTime();\n this._updated = updated;\n\n setTimeout(() => this.checkSettled(val, updated), 1000);\n\n if (this._search === \"\") {\n this.filtered = this._all;\n } else {\n this.filtered = this._all.filter(a => a.value.toLowerCase().indexOf(this._search) === 0);\n }\n }\n\n public open: boolean = false;\n public unfocusing: boolean = false;\n\n constructor(private gtm: GtmService) { }\n\n @HostListener('focusin')\n focusInHandler() {\n this.unfocusing = false;\n if (this.selectedItems.length == 0) {\n this.open = true;\n }\n }\n\n @HostListener('focusout')\n focusOutHandler() {\n this.unfocusing = true;\n setTimeout(this.safeUnfocus.bind(this), 100);\n }\n\n ngOnInit(): void {\n }\n\n openList() {\n this.open = true;\n }\n\n closeList() {\n this.open = false;\n this._search = \"\";\n }\n\n removeItem(item) {\n if (this.selectedItems.includes(item)) {\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n }\n this.selectedItemsChange.emit(this.selectedItems);\n }\n\n safeUnfocus() {\n if (this.unfocusing == true) {\n this.closeList();\n }\n }\n\n toggle(item) {\n if (this.selectedItems.includes(item)) {\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n } else {\n this.selectedItems.push(item);\n }\n this.selectedItemsChange.emit(this.selectedItems);\n }\n\n toggleAll(e) {\n if (this.selectedItems.length === 0) {\n // don't do anything\n e.preventDefault();\n } else {\n this.selectedItems.splice(0, this.selectedItems.length);\n this.selectedItemsChange.emit(this.selectedItems);\n }\n }\n\n public checkSettled(val, updated) {\n if (this._search === val && this._updated === updated) {\n this.gtm.push({\n event: 'quick_search_dropdown',\n item_category: this.name,\n data: this._search\n });\n }\n }\n}\n","
\n
\n
\n
{{item.value}}
\n
\n
\n
\n
\n
\n
    0\">\n
  • \n
  • \n \n
  • \n
\n
    \n
  • \n
\n
\n
\n \n
\n
\n
\n
","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss']\n})\nexport class CheckboxComponent implements OnInit {\n @Input() ngModel;\n @Output() ngModelChange = new EventEmitter();\n @Output() onChange = new EventEmitter();\n @Input() label;\n @Input() info;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n toggle() {\n this.ngModelChange.emit(!this.ngModel);\n this.onChange.emit();\n }\n\n isString(item) {\n return (typeof item === 'string' || item instanceof String);\n }\n\n isArray(item) {\n return Array.isArray(item);\n }\n}\n","
\n\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'link'\n})\nexport class LinkPipe implements PipeTransform {\n\n transform(value: string): string {\n if (value.startsWith('http')) {\n return value;\n } else {\n return 'https://' + value;\n }\n }\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ApiService } from 'src/app/api.service';\nimport { GtmService } from 'src/app/gtm.service';\n\n@Component({\n selector: 'app-report',\n templateUrl: './report.component.html',\n styleUrls: ['./report.component.scss']\n})\nexport class ReportComponent implements OnInit {\n @Input() tool;\n @Output() done = new EventEmitter();\n\n public submitted: boolean = false;\n public loading = false;\n\n public comment = \"\";\n public firstname = \"\";\n public lastname = \"\";\n public email = \"\";\n public role;\n public error;\n\n public roleItems;\n public errorFields = [];\n\n constructor(private api: ApiService, private router: Router, private gtm: GtmService) {\n this.roleItems = this.api.roleItems;\n }\n\n ngOnInit(): void {\n this.gtm.push({\n event: 'page',\n pageName: '/report',\n item_name: this.tool.name\n });\n window.scroll({ \n top: 0, \n left: 0\n });\n }\n\n missingMandatoryFields() {\n let missing = false;\n\n let mandatoryFields = ['comment', 'firstname', 'lastname', 'email', 'role'];\n\n for (let field of mandatoryFields) {\n if (this[field] === undefined || this[field] === null || this[field] === \"\") {\n this.errorFields.push(field);\n missing = true;\n }\n }\n return missing;\n }\n\n submit() {\n this.error = undefined;\n this.errorFields = [];\n\n if (this.missingMandatoryFields()) {\n this.error = \"Please complete all mandatory fields\";\n return;\n }\n\n if (!this.api.isValidEmail(this.email)) {\n this.error = \"Invalid Email address\";\n this.errorFields.push('email');\n return;\n }\n \n this.gtm.push({\n event: 'report-submit',\n item_name: this.tool.name\n });\n\n this.loading = true;\n this.api.submitReport(this.tool.tool_id, this.firstname, this.lastname, this.email, this.role2txt(this.role), this.comment).subscribe(() => {\n this.submitted = true;\n this.loading = false;\n }, (e) => {\n this.submitted = false;\n this.loading = false;\n this.error = \"An error occurred. Please try again later.\";\n });\n }\n\n role2txt(roleId) {\n let role = this.roleItems.find(r => r.id===roleId);\n\n if (role) {\n return role.name;\n } else {\n return \"\";\n }\n }\n\n close() {\n this.done.emit();\n }\n}\n","
\n
\n
\n

Update information for:

\n

{{tool.name}}

\n

Let us know how to improve the data

\n
\n
Comment
\n
\n\n

Input your contact info

\n\n
\n
Name
\n
Surname
\n
Email
\n
Role \n \n
\n
{{error}}
\n
\n\n
\n \n Confirm\n
\n
\n
\n

Thank you!

\n
\n The observed mistake has been successfully reported.\n We will get back to you as soon as possible.\n
\n
\n Return to homepage\n
\n
\n
","
\n {{item.name}}{{(i==items.length-1) ? '' : ', '}}\n
","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-item-list',\n templateUrl: './item-list.component.html',\n styleUrls: ['./item-list.component.scss']\n})\nexport class ItemListComponent implements OnInit {\n @Input() items;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n}\n","import { Component } from '@angular/core';\nimport { NgcCookieConsentService } from 'ngx-cookieconsent';\nimport { Subscription } from 'rxjs';\nimport { GtmService } from './gtm.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'frontend';\n private popupOpenSubscription: Subscription;\n private popupCloseSubscription: Subscription;\n private initializeSubscription: Subscription;\n private statusChangeSubscription: Subscription;\n private revokeChoiceSubscription: Subscription;\n private noCookieLawSubscription: Subscription;\n\n constructor(private ccService: NgcCookieConsentService, private gtm: GtmService) {}\n\n ngOnInit() {\n // mark load\n this.gtm.push({\n event: 'page',\n pageName: '/'\n });\n\n // subscribe to cookieconsent observables to react to main events\n this.popupOpenSubscription = this.ccService.popupOpen$.subscribe(\n () => {\n // you can use this.ccService.getConfig() to do stuff...\n });\n\n this.popupCloseSubscription = this.ccService.popupClose$.subscribe(\n () => {\n // you can use this.ccService.getConfig() to do stuff...\n });\n\n this.initializeSubscription = this.ccService.initialize$.subscribe(\n (event) => {\n // you can use this.ccService.getConfig() to do stuff...\n });\n\n this.statusChangeSubscription = this.ccService.statusChange$.subscribe(\n (event) => {\n // you can use this.ccService.getConfig() to do stuff...\n if (event.status === 'allow') {\n this.gtm.push({\n event: 'cookie-consent'\n });\n }\n });\n\n this.revokeChoiceSubscription = this.ccService.revokeChoice$.subscribe(\n () => {\n // you can use this.ccService.getConfig() to do stuff...\n });\n\n this.noCookieLawSubscription = this.ccService.noCookieLaw$.subscribe(\n (event) => {\n // you can use this.ccService.getConfig() to do stuff...\n });\n }\n\n ngOnDestroy() {\n // unsubscribe to cookieconsent observables to prevent memory leaks\n this.popupOpenSubscription.unsubscribe();\n this.popupCloseSubscription.unsubscribe();\n this.initializeSubscription.unsubscribe();\n this.statusChangeSubscription.unsubscribe();\n this.revokeChoiceSubscription.unsubscribe();\n this.noCookieLawSubscription.unsubscribe();\n }\n}\n","\n\n
\n \n
\n\n","
\n {{type.name}}:\n {{item.name}} ({{item.latin_name}}){{(i==type.items.length-1) ? '' : ', '}}\n
","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-pest-disease-list',\n templateUrl: './pest-disease-list.component.html',\n styleUrls: ['./pest-disease-list.component.scss']\n})\nexport class PestDiseaseListComponent implements OnInit {\n private _values = [];\n\n private types = [\n null, \"Diseases\", \"Insects\", \"Weeds\"\n ];\n\n @Input() public set pest_diseases(values) {\n let list:any = {};\n for (let item of values) {\n if (!list[item.type_id]) {\n list[item.type_id] = {\n type_id: item.type_id,\n name: this.types[item.type_id],\n items: []\n }\n }\n list[item.type_id].items.push(item);\n }\n\n this._values = Object.values(list);\n }\n\n public get pest_diseases() {\n return this._values;\n }\n \n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-info',\n templateUrl: './info.component.html',\n styleUrls: ['./info.component.scss']\n})\nexport class InfoComponent implements OnInit {\n @Input() content;\n @Input() inline;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n}\n","
\n
{{content}}
","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-modal',\n template: `\n
\n
\n
\n \n
\n
\n
\n
\n `,\nstyleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent implements OnInit {\n @Input() show;\n @Input() width;\n @Output() showChange = new EventEmitter();\n\n public style:any = {}\n \n constructor() { }\n\n ngOnInit() {\n if (this.width) {\n this.style['width'] = this.width + 'px';\n }\n }\n\n close() {\n this.showChange.emit(false);\n }\n}","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-comparison',\n templateUrl: './comparison.component.html',\n styleUrls: ['./comparison.component.scss']\n})\nexport class ComparisonComponent implements OnInit {\n private _tools;\n public alltools;\n \n @Input() public set tools(val) {\n this._tools = val;\n this.alltools = [...val];\n\n while(this.alltools.length < 4) {\n this.alltools.push({});\n }\n };\n public get tools() {\n return this._tools;\n }\n @Output() toolsChange = new EventEmitter();\n\n @Output() backClicked = new EventEmitter();\n\n @Input() arableCrops;\n @Input() otherCrops;\n @Input() diseases;\n @Input() insects;\n\n public markDifferences = false;\n public markSimilarities = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n back() {\n this.toolsChange.emit(this._tools);\n this.backClicked.emit();\n }\n\n remove(tool) {\n tool.selected = false;\n this.tools = this.tools.filter(t => t.tool_id != tool.tool_id);\n if (this.tools.length === 0) {\n this.back();\n }\n }\n\n yesOrNo(val) {\n if (val === true) {\n return 'Yes';\n } else if(val === false) {\n return 'No';\n } else {\n return ' ';\n }\n }\n\n autoManual(val) {\n if (val === 'A') {\n return 'Automatic';\n } else if (val === 'M') {\n return 'Manual';\n } else if (val === 'N') {\n return 'No';\n }\n\n return ' ';\n }\n\n freeNonfree(val) {\n if (val === 'F') {\n return 'Free';\n } else if (val == 'N') {\n return 'Not free';\n } else if (val == 'L') {\n return 'Limited';\n }\n\n return ' ';\n }\n\n onlineOffline(val) {\n if (val === 'ONL') {\n return 'Online';\n } else if (val === 'OFL') {\n return 'Offline';\n }\n return ' ';\n }\n\n nationalInternational(val) {\n if (val === 'N') {\n return 'National';\n } else if (val === 'I') {\n return 'International';\n }\n return ' ';\n }\n\n shortLong(val) {\n if (val === 'S') {\n return 'Short-term';\n } else if (val ==='L') {\n return 'Long-term'\n } else if (val === 'B') {\n return 'Both;'\n }\n\n return ' ';\n }\n\n plantOrWater(val) {\n if (val === 'PP') {\n return 'Plant protection';\n } else if (val === 'WP') {\n return 'Water pollution';\n }\n return ' ';\n }\n\n smallMediumLarge(val) {\n if (val === 'S') {\n return 'Small';\n } else if (val === 'M') {\n return 'Medium';\n } else if (val === 'L') {\n return 'Large';\n }\n return ' ';\n }\n\n includes(collection, name, type = undefined) {\n let potential;\n if (type) {\n potential = collection.filter(i => i.name === name && i.type_id === type);\n } else {\n potential = collection.filter(i => i.name === name);\n }\n\n return potential.length === 0 ? 'No' : 'Yes';\n }\n\n toggleMarkDifferences() {\n this.markDifferences = !this.markDifferences;\n if (this.markDifferences && this.markSimilarities) {\n this.markSimilarities = false;\n }\n }\n\n toggleMarkSimilarities() {\n this.markSimilarities = !this.markSimilarities;\n if (this.markDifferences && this.markSimilarities) {\n this.markDifferences = false;\n }\n }\n\n getProp(tool, prop) {\n let parts = prop.split(\"|\");\n\n if (parts.length == 1) {\n return tool[prop];\n } else {\n let first = parts.shift();\n if (tool[first]) {\n return this.getProp(tool[first], parts.join(\"|\")); \n } else {\n return undefined;\n }\n }\n }\n\n mark(prop) {\n if (this.markDifferences) {\n let val = this.getProp(this.tools[0], prop);\n for (let i=0; i\n
\n
\n
\n DIFFERENCES\n SIMILARITIES\n

DSS

\n
\n
\n
\n
Add DSS to comparison
\n
\n {{tool.name | width:200:'23px \"Segoe UI SemiBold\"'}}\n
\n
\n
\n

Basic information

\n
\n
\n
\n

Tool

\n
\n
\n
\n
Consecutive number
\n
{{tool.idx | nonempty}}
\n
\n
\n
Name of DSS
\n
{{tool.name | width:224:'14px \"Segoe UI Regular\"'}}
\n
\n
\n
Link to web page
\n
{{(tool.links && tool.links.length>0 ? tool.links[0].url : '') | width:224:'14px \"Segoe UI Regular\"'}}
\n
\n
\n
Owner of DSS
\n
{{tool.owner | width:224:'14px \"Segoe UI Regular\"'}}
\n
\n
\n
Country of development
\n
{{((tool.development_country ? tool.development_country.name : '') + (tool.development_country_assumed ? '*' : '')) | width:224:'14px \"Segoe UI Regular\"'}}
\n
\n\n
\n
Country - tested
\n
{{tool.tested_countries | width:224:'14px \"Segoe UI Regular\"'}}
\n
\n
\n

Geographic focus

\n
\n
\n
\n
Northern Europe
\n
{{yesOrNo(tool.geographic_focus_neu)}}
\n
\n
\n
Central Europe
\n
{{yesOrNo(tool.geographic_focus_ceu)}}
\n
\n
\n
Southern Europe
\n
{{yesOrNo(tool.geographic_focus_seu)}}
\n
\n \n
\n

Challenge

\n
\n
\n
\n

Definition

\n
\n
\n
\n
Water pollution / Plant protection
\n
{{plantOrWater(tool.definition)}}
\n
\n
\n

Constraints

\n
\n
\n
\n
Space
\n
{{nationalInternational(tool.space_constraints)}}
\n
\n
\n
Time
\n
{{shortLong(tool.time_constraints)}}
\n
\n \n
\n

Problem

\n
\n
\n
\n

Plant protection

\n
\n
\n
\n

Arable crops

\n
\n
\n
\n
{{crop}}
\n
{{(tool.crops ? includes(tool.crops, crop) : '') | nonempty}}
\n
\n
\n

\n
\n
\n
\n
{{crop}}
\n
{{(tool.crops ? includes(tool.crops, crop): '') | nonempty}}
\n
\n
\n

Diseases

\n
\n
\n
\n
{{disease}}
\n
{{(tool.pest_diseases ? includes(tool.pest_diseases, disease, 1): '') | nonempty}}
\n
\n
\n

Insects

\n
\n
\n
\n
{{insect}}
\n
{{(tool.pest_diseases ? includes(tool.pest_diseases, insect, 2) : '') | nonempty}}
\n
\n
\n
Weeds
\n
{{(tool.pest_diseases ? includes(tool.pest_diseases, \"Weeds\") : '') | nonempty}}
\n
\n
\n

Function

\n
\n
\n
\n
Monitoring
\n
{{yesOrNo(tool.function_monitoring)}}
\n
\n
\n
Forecasting
\n
{{yesOrNo(tool.function_forecasting)}}
\n
\n
\n
Planning
\n
{{yesOrNo(tool.function_planning)}}
\n
\n\n
\n

Analysis

\n
\n
\n
\n

Implemenation

\n
\n
\n
\n

Language

\n
\n
\n
\n
Available languages
\n
{{idx > 0 ? ', ' : ''}}{{lang.name}} 
\n
\n
\n
National
\n
{{yesOrNo(tool.national_language)}}
\n
\n
\n
Available in English
\n
{{yesOrNo(tool.available_in_english)}}
\n
\n
\n

\n
\n
\n
\n
Login required
\n
{{yesOrNo(tool.login_required)}}
\n
\n
\n
Access to references
\n
{{yesOrNo(tool.access_to_references)}}
\n
\n
\n

Price

\n
\n
\n
\n
Free
\n
{{freeNonfree(tool.price)}}
\n
\n
\n

Data required

\n
\n
\n
\n

Weather

\n
\n
\n
\n
Weather
\n
{{yesOrNo(tool.weather)}}
\n
\n
\n
Obtaining weather data
\n
{{autoManual(tool.weather_data)}}
\n
\n
\n

Field data

\n
\n
\n
\n
Field observations
\n
{{yesOrNo(tool.field_observations)}}
\n
\n
\n
Date of sowing
\n
{{yesOrNo(tool.field_sowing_date)}}
\n
\n
\n
Pre crop
\n
{{yesOrNo(tool.field_pre_crop)}}
\n
\n
\n
Crop variety
\n
{{yesOrNo(tool.field_crop_variety)}}
\n
\n
\n
Other data
\n
{{yesOrNo(tool.field_other)}}
\n
\n
\n

Outcomes

\n
\n
\n
\n

Output

\n
\n
\n
\n
Map
\n
{{yesOrNo(tool.output_map)}}
\n
\n
\n
Text
\n
{{yesOrNo(tool.output_text)}}
\n
\n
\n
Numerical/categorical
\n
{{yesOrNo(tool.output_numerical)}}
\n
\n
\n

Target

\n
\n
\n
\n
Farmers
\n
{{yesOrNo(tool.audience_farmers)}}
\n
\n
\n
Advisors
\n
{{yesOrNo(tool.audience_advisors)}}
\n
\n
\n
Researchers
\n
{{yesOrNo(tool.audience_researchers)}}
\n
\n
\n

\n
\n
\n
\n
Scale
\n
{{smallMediumLarge(tool.scale)}}
\n
\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgcCookieConsentModule, NgcCookieConsentConfig } from 'ngx-cookieconsent';\nimport { GoogleTagManagerModule } from 'angular-google-tag-manager';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AppComponent } from './app.component';\nimport { SearchComponent } from './search/search.component';\nimport { SearchResultComponent } from './search/search-result/search-result.component';\nimport { AnalyzeComponent } from './search/analyze/analyze.component';\nimport { SubmitComponent } from './submit/submit.component';\nimport { ReportComponent } from './search/report/report.component';\nimport { FooterComponent } from './footer/footer.component';\nimport { HeaderComponent } from './header/header.component';\nimport { DropdownComponent } from './search/dropdown/dropdown.component';\nimport { ToolComponent } from './search/search-result/tool/tool.component';\nimport { ModalComponent } from './modal/modal.component';\nimport { PestDiseaseListComponent } from './search/search-result/tool/pest-disease-list/pest-disease-list.component';\nimport { QuickSearchComponent } from './search/quick-search/quick-search.component';\nimport { AdvancedSearchComponent } from './search/advanced-search/advanced-search.component';\nimport { ItemListComponent } from './search/search-result/tool/item-list/item-list.component';\nimport { ProgressComponent } from './search/advanced-search/progress/progress.component';\nimport { NodeInputComponent } from './search/advanced-search/node-input/node-input.component';\nimport { CheckboxComponent } from './search/checkbox/checkbox.component';\nimport { ComparisonComponent } from './search/search-result/comparison/comparison.component';\nimport { WidthPipe } from './width.pipe';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\nimport { InfoComponent } from './info/info.component';\nimport { LoadingComponent } from './loading/loading.component';\nimport { LinkPipe } from './link.pipe';\nimport { NonemptyPipe } from './nonempty.pipe';\nimport { FormatDSSDescriptionPipe } from './format-dssdescription.pipe';\n\nconst cookieConfig: NgcCookieConsentConfig = {\n cookie: {\n domain: 'ipmadviser.ijs.si' // or 'your.domain.com' // it is mandatory to set a domain, for cookies to work properly (see https://goo.gl/S2Hy2A)\n },\n position: \"bottom\",\n theme: \"edgeless\",\n palette: {\n popup: {\n background: \"#707070\",\n text: \"#ffffff\"\n },\n button: {\n background: \"#E4E4E4\",\n text: \"#707070\"\n }\n },\n type: \"opt-in\",\n layout: 'my-custom-layout',\n layouts: {\n \"my-custom-layout\": '{{messagelink}}{{compliance}}'\n },\n elements:{\n messagelink: `\n {{message}} \n {{privacyPolicyLink}} and our \n {{tosLink}}\n \n `,\n },\n content:{\n message: 'Our website uses cookies to optimize your user experience. For more information please see our ',\n \n privacyPolicyLink: 'Privacy Policy',\n privacyPolicyHref: '/assets/IPMAdviser_Privacy_Policy.pdf',\n \n tosLink: 'Terms and Conditions',\n tosHref: '/assets/IPMAdviser_Terms_Conditions.pdf',\n }\n};\n\n@NgModule({\n declarations: [\n AppComponent,\n SearchComponent,\n SearchResultComponent,\n AnalyzeComponent,\n SubmitComponent,\n ReportComponent,\n FooterComponent,\n HeaderComponent,\n DropdownComponent,\n ToolComponent,\n ModalComponent,\n ItemListComponent,\n PestDiseaseListComponent,\n QuickSearchComponent,\n AdvancedSearchComponent,\n ProgressComponent,\n NodeInputComponent,\n CheckboxComponent,\n ComparisonComponent,\n WidthPipe,\n RadioGroupComponent,\n InfoComponent,\n LoadingComponent,\n LinkPipe,\n NonemptyPipe,\n FormatDSSDescriptionPipe\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n FormsModule,\n HttpClientModule,\n NgcCookieConsentModule.forRoot(cookieConfig),\n GoogleTagManagerModule.forRoot({\n id: \"GTM-MSJHVDB\"\n })\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-progress',\n templateUrl: './progress.component.html',\n styleUrls: ['./progress.component.scss']\n})\nexport class ProgressComponent implements OnInit {\n\n @Input() nodes;\n @Input() current: number;\n @Output() currentChange = new EventEmitter();\n\n public width = 140;\n public height = 72;\n public strokeWidth = 3;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n select(idx) {\n this.currentChange.emit(idx);\n }\n}\n","","
\n
\n
","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss']\n})\nexport class LoadingComponent implements OnInit {\n @Input() display;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","","import { Component, OnInit } from '@angular/core';\nimport { ApiService } from '../api.service';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n\n constructor(private api: ApiService) { }\n\n public lastSyncDate: any;\n\n ngOnInit(): void {\n this.api.getSync().subscribe((sync:any) => {\n this.lastSyncDate = sync.performedAt;\n });\n }\n\n}\n","
\n
\n
    \n
  • \n
  • \n
  • \n
\n
\n
\n
\n
\n
    \n
  • Quick search
  • \n
  • Advanced search
  • \n
  • Browse the catalogue
  • \n
  • Add new DSS
  • \n
\n
\n
\n
\n
\n \n
\n
\n\nIPM Adviser V1.0. last updated {{lastSyncDate | date: 'dd.MM.yyyy'}}\nUI Design by Peter Novak","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'nonempty'\n})\nexport class NonemptyPipe implements PipeTransform {\n\n transform(value: string): string {\n if (value) {\n return value;\n } else {\n return \" \";\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'width'\n})\nexport class WidthPipe implements PipeTransform {\n\n transform(value: string, length: number, font: string): string {\n\n if (value === undefined || value === null || value === \"\") {\n return \" \";\n }\n\n let canvas = document.createElement(\"canvas\");\n let context = canvas.getContext(\"2d\");\n context.font = font;\n\n let metrics = context.measureText(value);\n \n if (metrics.width <= length) {\n return value;\n } else {\n const suffix = \"...\";\n let diff = (metrics.width - length);\n let strip = Math.round(value.length * diff / metrics.width);\n\n let stripped = value.substring(0, value.length - strip - 1);\n\n while (stripped.length > 0) {\n let metrics = context.measureText(stripped + suffix);\n if (metrics.width <= length) {\n return stripped + suffix;\n }\n stripped = stripped.substring(0, stripped.length - 2);\n }\n\n return stripped;\n }\n }\n}\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { ApiService } from 'src/app/api.service';\nimport { GtmService } from 'src/app/gtm.service';\n\n@Component({\n selector: 'app-search-result',\n templateUrl: './search-result.component.html',\n styleUrls: ['./search-result.component.scss']\n})\nexport class SearchResultComponent implements OnInit {\n @Input() public set result(value) {\n if (this._result && this._result.filter) {\n \n this._result.results = value.results;\n\n for (let rootKey of Object.keys(this._result.filter)) {\n for (let sectionKey of Object.keys(this._result.filter[rootKey].sections)) {\n for (let subsectionKey of Object.keys(this._result.filter[rootKey].sections[sectionKey].subsections)) {\n for (let itemKey of Object.keys(this._result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items)) {\n if (value.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey] && value.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].num) {\n this._result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].num = value.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].num;\n } else {\n this._result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].num = 0;\n }\n if (this._result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items) {\n for (let subitemKey of Object.keys(this._result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items)) {\n if (value.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items &&\n value.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey] && \n value.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].num) {\n this._result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].num = value.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].num;\n } else {\n this._result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].num = 0;\n }\n }\n }\n }\n }\n }\n }\n } else {\n for (let root of value.filter) {\n for (let section of root.sections) {\n for (let subsection of section.subsections) {\n for (let item of subsection.items) {\n if (item.checked) {\n section.active = true;\n } else {\n item.checked = false;\n }\n if (!item.num) {\n item.num = 0;\n }\n if (item.items) {\n for (let subitem of item.items) {\n if (subitem.checked) {\n section.active = true;\n } else {\n subitem.checked = false;\n }\n if (!subitem.num) {\n subitem.num = 0;\n }\n }\n }\n }\n }\n }\n }\n this._result = value;\n }\n \n this.performSort();\n }\n public get result() {\n return this._result;\n }\n private _result;\n\n @Output() filterChange = new EventEmitter();\n \n @Input() reportTool;\n @Output() reportToolChange = new EventEmitter();\n\n public sorted;\n public sort = \"name\";\n public direction = \"asc\";\n\n public filter_num = 0;\n public forComparison = [];\n public comparison = false;\n\n public arableCrops;\n public otherCrops;\n public diseases;\n public insects;\n\n constructor(private api: ApiService, private gtm: GtmService) { }\n\n ngOnInit(): void {\n this.api.getCrops().subscribe((crops:any) => {\n this.arableCrops = crops.filter(c => c.arable).map(c => c.name);\n this.otherCrops = crops.filter(c => !c.arable).map(c => c.name);\n });\n this.api.getDiseases().subscribe((pests:any) => {\n this.diseases = pests.filter(p => p.type_id == 1).map(p => p.name);\n this.insects = pests.filter(p => p.type_id == 2).map(p => p.name);\n });\n }\n\n setSort(sort) {\n if (this.sort === sort) {\n this.toggleDirection();\n } else {\n this.sort = sort;\n this.performSort();\n }\n }\n\n toggleDirection() {\n if (this.direction === 'asc') {\n this.direction = 'desc';\n } else {\n this.direction = 'asc';\n }\n this.performSort();\n }\n\n performSort() {\n let comp;\n if (this.sort === \"name\") {\n comp = (a, b) => (a.name > b.name) ? 1 : ((b.name > a.name) ? -1 : 0);\n } else if (this.sort === \"country\") {\n comp = (a, b) => (a.assumed_development_country.name > b.assumed_development_country.name) ? 1 : ((b.assumed_development_country.name > a.assumed_development_country.name) ? -1 : 0);\n } else if (this.sort === \"date\") {\n comp = (a, b) => (new Date(a.added) > new Date(b.added)) ? 1 : ((new Date(b.added) > new Date(a.added)) ? -1 : 0);\n } else if (this.sort === \"price\") {\n // F = free, L = limited free version, N = nonfree\n comp = (a, b) => (a.price > b.price) ? 1 : ((b.price > a.price) ? -1 : 0);\n }\n\n let intermediate = this._result.results.sort(comp);\n\n if (this.direction === \"desc\") {\n this.sorted = intermediate.reverse();\n } else {\n this.sorted = intermediate;\n }\n }\n\n toggleOpen(section) {\n section.open = !section.open;\n }\n\n checkActive(section) {\n let active = false;\n\n for (let subsection of section.subsections) {\n for (let item of subsection.items) {\n if (item.checked) {\n active = true;\n }\n\n if (item.items) {\n for (let subitem of item.items) {\n if (subitem.checked) {\n active = true;\n }\n }\n }\n }\n }\n section.active = active;\n this.updateFilterNum();\n this.reload();\n }\n\n submitFilterChange(root, section, subsection, item, subitem = null) {\n let value;\n\n let path = root.title + \"/\" + section.title;\n\n if (subsection && subsection.title) {\n path += \"/\" + subsection.title;\n }\n\n if (item) {\n path += \"/\" + item.title;\n if (subitem) {\n path += \"/\" + subitem.title;\n value = subitem.checked;\n } else {\n value = item.checked;\n }\n }\n \n this.gtm.push({\n event: 'filter-click',\n item_category: path,\n data: value ? \"on\": \"off\"\n });\n }\n\n updateFilterNum() {\n let num = 0;\n for (let root of this._result.filter) {\n for (let section of root.sections) {\n if (section.active) {\n num++;\n }\n }\n }\n this.filter_num = num;\n }\n\n reload() {\n this.filterChange.emit(this.result.filter);\n }\n\n clearFilters() {\n for (let root of this.result.filter) {\n for (let section of root.sections) {\n section.active = false;\n section.open = false;\n for (let subsection of section.subsections) {\n for (let item of subsection.items) {\n item.checked = false;\n \n if (item.items) {\n for (let subitem of item.items) {\n subitem.checked = false;\n }\n }\n }\n }\n }\n }\n this.updateFilterNum();\n this.reload();\n }\n\n toggleSelect(tool) {\n tool.selected = !tool.selected;\n if (tool.selected) {\n this.forComparison.push(tool);\n } else {\n this.forComparison = this.forComparison.filter(t => t.tool_id !== tool.tool_id);\n }\n }\n\n viewComparison() {\n this.comparison = true;\n window.scroll(0,400);\n }\n\n clearComparison() {\n for (let tool of this.forComparison) {\n tool.selected = false;\n }\n this.forComparison = [];\n }\n\n report(tool) {\n this.reportToolChange.emit(tool);\n }\n}\n","\n
\n

FILTER 0\">{{filter_num}}
x

\n
    \n
  • \n

    {{root.title}}

    \n
      \n
    • \n

      {{section.title}}

      \n
      \n
      \n

      {{subsection.title}}

      \n
      \n \n
      \n \n
      \n
      \n
      \n
      \n
    • \n
    \n
  • \n
\n
\n
\n
    \n
  • SORT
  • \n
  • Name
  • \n
  • Country
  • \n
  • Price
  • \n
  • Date
  • \n
  • {{sorted.length}}
  • \n
\n
    \n
  • \n \n
  • \n
\n
\n
1\">\n Clear selection\n Go to comparison of {{forComparison.length}} selected DSS\n =5\" class=\"button\">Maximum for comparison is 4. Please unselect.\n
\n
\n","import { Injectable } from '@angular/core';\nimport { NgcCookieConsentService } from 'ngx-cookieconsent';\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GtmService {\n\n constructor(private ccService: NgcCookieConsentService, private gtmService: GoogleTagManagerService) { }\n\n push(tag: any) {\n if (this.ccService.hasConsented()) {\n this.gtmService.pushTag(tag);\n }\n }\n}","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-node-input',\n templateUrl: './node-input.component.html',\n styleUrls: ['./node-input.component.scss']\n})\nexport class NodeInputComponent implements OnInit {\n @Input() items;\n @Input() cols;\n @Output() change = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n reportChange() {\n this.change.emit();\n }\n}\n","
\n
\n

{{section.title}}

\n
\n
\n

{{subsection.title}}

\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-analyze',\n templateUrl: './analyze.component.html',\n styleUrls: ['./analyze.component.scss']\n})\nexport class AnalyzeComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

analyze works!

\n","\n

IMPROVE YOUR PEST MANAGEMENT

\n

Find the right decision support system for you!

\n\n
\n
\n \n \n \n
\n \n \n
\n\n \n\n
\n
    \n
  • \n

    Knowledge-based

    \n Search over 70 indexed decision support systems\n
  • \n
  • \n

    Trustworthy

    \n Data gathered and maintained by a public research institute\n
  • \n
  • \n

    User-friendly

    \n Navigate thorough data with an easy-to-use interface\n
  • \n
  • \n

    Open

    \n Constantly improving data and adding new decision support systems\n
  • \n
\n\n

About IPM Adviser

\n
\n
\n

The \"IPM Adviser\" is a web-based tool that allows searching through a catalogue of systematically described decision support systems (DSS) using broad set of criteria. Its main puspose is to provide users with access to unbiased information on available DSS in the field of Integrated Pest Management in Europe, to enable their comparison and to help them select the most approprite DSS for their specific needs. In addition, it allows researchers and developers of DSS to identify gaps in the tools developed and to devlop new DSS in a more targeted way.

\n
\n\n

Connected with IPM Decisions Platform

\n
\n
\n
The IPM Decisions Platform is a one-stop shop for decision support in integrated pest management (IPM). It is a web-based framework that provides farmers, advisors, researchers and DSS developers with access to a wide range of decision support systems and weather data from across Europe through a single user interface. The platform allows you to:\n
    \n
  1. use DSS,
  2. \n
  3. compare the results of the available DSS,
  4. \n
  5. adapt the parameters within the decision support systems to use them in a wider range of countries and
  6. \n
  7. develop novel DSS by combining different DSS or parts of DSS (models and tools).
  8. \n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ApiService } from '../api.service';\nimport { GtmService } from '../gtm.service';\n\n@Component({\n selector: 'app-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss']\n})\nexport class SearchComponent implements OnInit {\n\n public advanced: boolean = false;\n public browse: boolean = false;\n public countriesSelected = [];\n public cropsSelected = [];\n public pestsSelected = [];\n public languagesSelected = [];\n \n public advancedSearchBy = \"criteria\";\n public name = \"\";\n\n public result;\n public advancedFilter;\n\n public filter = null;\n\n public reportTool;\n \n constructor(private api: ApiService, private router: Router, private gtm: GtmService) { }\n\n ngOnInit(): void {\n if (this.router.url === '/browse') {\n this.gtm.push({\n event: 'page',\n pageName: '/browse'\n });\n this.browse = true;\n this.search(this.filter);\n } else if (this.router.url === '/advanced') {\n this.gtm.push({\n event: 'page',\n pageName: '/advanced'\n });\n this.advanced = true;\n }\n window.scroll({ \n top: 0, \n left: 0\n });\n }\n\n search(filter: any) {\n if (this.advanced) {\n if (this.advancedSearchBy === 'name') {\n this.gtm.push({\n event: 'search',\n item_category: 'advanced',\n item_name: 'name-or-id'\n });\n this.api.getTools(this.name, null, null, null, null, null, filter).subscribe((result) => {\n this.result = result;\n });\n } else {\n this.gtm.push({\n event: 'search',\n item_category: 'advanced',\n item_name: 'criteria'\n });\n this.api.getTools(null, null, null, null, null, this.advancedFilter, filter).subscribe((result) => {\n this.result = result;\n\n for (let rootKey of Object.keys(result.filter)) {\n for (let sectionKey of Object.keys(result.filter[rootKey].sections)) {\n for (let subsectionKey of Object.keys(result.filter[rootKey].sections[sectionKey].subsections)) {\n for (let itemKey of Object.keys(result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items)) {\n result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].checked = \n this.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].checked;\n if (result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].checked) {\n result.filter[rootKey].sections[sectionKey].open = true;\n }\n if (!result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].num) {\n result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].num = 0;\n }\n if (result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items) {\n for (let subitemKey of Object.keys(result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items)) {\n result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].checked = \n this.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].checked;\n if (result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].checked) {\n result.filter[rootKey].sections[sectionKey].open = true;\n }\n if (!result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].num) {\n result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].num = 0;\n }\n }\n }\n }\n }\n }\n }\n });\n }\n } else {\n let forComparison = [];\n if (this.result && this.result.results) {\n forComparison = this.result.results.filter(r => r.selected).map(r => r.tool_id);\n }\n\n if (this.browse) {\n this.gtm.push({\n event: 'search',\n item_category: 'quick',\n item_name: 'browse'\n });\n this.api.getTools(null, null, this.cropsSelected, null, null, null, filter).subscribe((result) => {\n this.result = result;\n for (let tool of this.result.results) {\n if (forComparison.includes(tool.tool_id)) {\n tool.selected = true;\n }\n }\n });\n } else {\n this.gtm.push({\n event: 'search',\n item_category: 'quick',\n item_name: 'criteria'\n });\n this.api.getTools(null, this.countriesSelected, this.cropsSelected, this.pestsSelected, this.languagesSelected, null, filter).subscribe((result) => {\n this.result = result;\n for (let tool of this.result.results) {\n if (forComparison.includes(tool.tool_id)) {\n tool.selected = true;\n }\n }\n });\n }\n }\n }\n\n setAdvanced(advanced) {\n this.advanced = advanced;\n this.reset();\n }\n\n setAdvancedSearchBy(value) {\n this.advancedSearchBy = value;\n }\n\n filterChange(filter) {\n this.filter = filter;\n this.search(filter);\n }\n\n reset() {\n this.countriesSelected = [];\n this.cropsSelected = [];\n this.pestsSelected = [];\n this.languagesSelected = [];\n \n this.advancedSearchBy = \"criteria\";\n this.advancedFilter = undefined;\n this.name = \"\";\n this.result = undefined;\n }\n\n advancedSearch(filter) {\n if (filter) {\n this.advancedFilter = filter;\n this.filter = filter;\n\n this.search(this.filter);\n } else {\n this.search(this.filter);\n }\n }\n\n add() {\n this.router.navigate(['submit']); \n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { SearchComponent } from './search/search.component';\nimport { SubmitComponent } from './submit/submit.component';\n\n\nconst routes: Routes = [\n {path: '', component: SearchComponent},\n {path: 'advanced', component: SearchComponent},\n {path: 'browse', component: SearchComponent},\n {path: 'submit', component: SubmitComponent}\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { GtmService } from '../../gtm.service';\nimport { ApiService } from 'src/app/api.service';\n\n@Component({\n selector: 'app-advanced-search',\n templateUrl: './advanced-search.component.html',\n styleUrls: ['./advanced-search.component.scss']\n})\nexport class AdvancedSearchComponent implements OnInit {\n\n @Input() advancedSearchBy;\n @Output() advancedSearchByChange = new EventEmitter();\n\n @Input() name;\n @Output() nameChange = new EventEmitter();\n\n @Input() input;\n\n @Output() onSearch = new EventEmitter();\n @Output() onClear = new EventEmitter();\n \n public items;\n public currentIdx = 0;\n private filter;\n\n constructor(private api: ApiService, private gtm: GtmService) { }\n \n ngOnInit(): void {\n let items = [];\n\n this.api.getFilter().subscribe((filter) => {\n this.filter = filter;\n for (let root of filter) {\n if (root.title === 'Problem' || root.title === 'Analysis' || root.title === 'Outcomes') {\n for (let section of root.sections) {\n for (let subsection of section.subsections) {\n for (let item of subsection.items) {\n item.checked = false;\n if (!item.num) {\n item.num = 0;\n }\n if (item.items) {\n for (let subitem of item.items) {\n subitem.checked = false;\n if (!subitem.num) {\n subitem.num = 0;\n }\n }\n }\n }\n }\n }\n items.push(root);\n }\n }\n this.items = items;\n });\n }\n\n setAdvancedSearchBy(value) {\n this.advancedSearchBy = value;\n this.advancedSearchByChange.emit(value);\n }\n\n onNameChange() {\n this.nameChange.emit(this.name);\n }\n\n prev(e) {\n e.preventDefault();\n this.currentIdx--;\n }\n\n next(e) {\n e.preventDefault();\n\n if (this.currentIdx < 2) {\n this.currentIdx++;\n } else {\n this.onSearch.emit(this.filter);\n }\n }\n\n update() {\n setTimeout(() => { \n this.api.getTools(null, null, null, null, null, this.filter, null).subscribe((result) => {\n let items = [];\n \n for (let rootKey of Object.keys(this.filter)) {\n for (let sectionKey of Object.keys(this.filter[rootKey].sections)) {\n for (let subsectionKey of Object.keys(this.filter[rootKey].sections[sectionKey].subsections)) {\n for (let itemKey of Object.keys(this.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items)) {\n if (result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey] && result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].num) {\n this.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].num = result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].num;\n } else {\n this.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].num = 0;\n }\n if (this.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items) {\n for (let subitemKey of Object.keys(this.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items)) {\n if (result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items && result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey] && result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].num) {\n this.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].num = \n result.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].num;\n } else {\n this.filter[rootKey].sections[sectionKey].subsections[subsectionKey].items[itemKey].items[subitemKey].num = 0;\n }\n }\n }\n }\n }\n }\n }\n for (let root of this.filter) {\n if (root.title === 'Problem' || root.title === 'Analysis' || root.title === 'Outcomes') {\n for (let section of root.sections) {\n for (let subsection of section.subsections) {\n for (let item of subsection.items) {\n if (!item.num) {\n item.num = 0;\n }\n if (item.items) {\n for (let subitem of item.items) {\n if (!subitem.num) {\n subitem.num = 0;\n }\n }\n }\n }\n }\n }\n items.push(root);\n }\n }\n this.items = items;\n });\n });\n }\n\n search() {\n this.gtm.push({\n event: 'advanced-search-by-name-or-id',\n data: this.name\n });\n this.onSearch.emit();\n }\n\n clearFilters(section) {\n for (let root of this.items) {\n if (root.title !== section) {\n continue;\n }\n for (let section of root.sections) {\n if (section.checked) {\n section.checked = false;\n }\n for (let subsection of section.subsections) {\n if (subsection.checked) {\n subsection.checked = false;\n }\n for (let item of subsection.items) {\n if (item.checked) {\n item.checked = false;\n }\n if (item.items) {\n for (let subitem of item.items) {\n if (subitem.checked) {\n subitem.checked = false;\n }\n }\n }\n }\n }\n }\n }\n }\n\n filterNum(section) {\n let num = 0;\n \n for (let root of this.items) {\n if (root.title !== section) {\n continue;\n }\n for (let section of root.sections) {\n if (section.checked) {\n num++;\n }\n for (let subsection of section.subsections) {\n if (subsection.checked) {\n num++;\n }\n for (let item of subsection.items) {\n if (item.checked) {\n num++;\n }\n if (item.items) {\n for (let subitem of item.items) {\n if (subitem.checked) {\n num++;\n }\n }\n }\n }\n }\n }\n }\n return num;\n }\n\n listFilters(section) {\n let items = [];\n for (let root of this.items) {\n if (root.title !== section) {\n continue;\n }\n for (let section of root.sections) {\n if (section.checked) {\n items.push(section);\n }\n for (let subsection of section.subsections) {\n if (subsection.checked) {\n items.push(subsection);\n }\n for (let item of subsection.items) {\n if (item.checked) {\n items.push(item);\n }\n if (item.items) {\n for (let subitem of item.items) {\n if (subitem.checked) {\n items.push(subitem);\n }\n }\n }\n }\n }\n }\n return items;\n }\n }\n\n removeItem(section, forRemoval) {\n for (let root of this.items) {\n if (root.title !== section) {\n continue;\n }\n for (let section of root.sections) {\n if (section.checked && section.title == forRemoval.title) {\n section.checked = false;\n }\n for (let subsection of section.subsections) {\n if (subsection.checked && subsection.title == forRemoval.title) {\n subsection.checked = false;\n }\n for (let item of subsection.items) {\n if (item.checked && item.title == forRemoval.title) {\n item.checked = false;\n }\n if (item.items) {\n for (let subitem of item.items) {\n if (subitem.checked && subitem.title == forRemoval.title) {\n subitem.checked = false;\n }\n }\n }\n }\n }\n }\n }\n }\n\n clear() {\n this.onClear.emit();\n this.currentIdx = 0;\n this.items = [];\n }\n}\n","
\n
\n
    \n
  • Search by criteria
  • \n
  • Search by name or id
  • \n
\n
\n
\n DSS Name or Id\n \n
\n
\n Search\n
\n
\n
\n
\n \n
\n

What problem are you solving?

0\" (click)=\"clearFilters('Problem')\">CLEAR CHOICES ({{filterNum('Problem')}})
\n\n \n
\n
\n

What implementation would you like to use?

0\" (click)=\"clearFilters('Analysis')\">CLEAR CHOICES ({{filterNum('Analysis')}})
\n\n \n
\n
\n

What output do you prefer?

0\" (click)=\"clearFilters('Outcomes')\">CLEAR CHOICES ({{filterNum('Outcomes')}})
\n\n \n
\n
\n \n
\n
\n\n
\n
\n
\n
\n DSS Name or Id\n \n
\n
\n Search\n
\n
\n
\n \n
\n
","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n\n public roleItems = [\n {\"id\": 1, \"name\": \"Owner / Developer\"},\n {\"id\": 2, \"name\": \"User: Farmer\"},\n {\"id\": 3, \"name\": \"User: Adviser\"},\n {\"id\": 4, \"name\": \"User: Researcher\"},\n {\"id\": 5, \"name\": \"Other\"}\n ];\n\n constructor(private http: HttpClient) { }\n\n isValidEmail(email) {\n const mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n return email.match(mailformat) !== null;\n }\n\n getCountries() {\n return this.http.get(\"/api/countries\");\n }\n\n getCrops() {\n return this.http.get(\"/api/crops\");\n }\n\n getDiseases() {\n return this.http.get(\"/api/pest-diseases\");\n }\n\n getPests() {\n return this.http.get(\"/api/pests\");\n }\n\n getLanguages() {\n return this.http.get(\"/api/languages\");\n }\n\n getTools(name, countries, crops, pests, languages, advancedFilter, filter) {\n return this.http.post(\"/api/tools\", {\n name,\n countries,\n crops,\n pests,\n languages,\n advancedFilter,\n filter\n }).pipe(\n map((res:any) => {\n res.results = res.results.map(t => {\n t.geographic_focus = [];\n if (t.geographic_focus_neu) {\n t.geographic_focus.push(\"Northern Europe\");\n }\n if (t.geographic_focus_ceu) {\n t.geographic_focus.push(\"Central Europe\");\n }\n if (t.geographic_focus_seu) {\n t.geographic_focus.push(\"Southern Europe\");\n }\n return t;\n });\n\n res.filter = res.filter.map(f => {\n f.class = this.toCamelCase(f.title);\n for (let section of f.sections) {\n section.class = this.toCamelCase(section.title);\n for (let subsection of section.subsections) {\n subsection.class = this.toCamelCase(subsection.title);\n }\n }\n return f;\n });\n \n return res;\n })\n );\n }\n\n toCamelCase(inStr) {\n let words = inStr.split(\" \");\n let ret = words.shift().toLowerCase();\n\n for (let word of words) {\n ret += word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n }\n\n return ret;\n }\n\n getFilter() {\n return this.http.get(\"/api/tools/filter\").pipe(\n map((filter:any) => filter.map(f => {\n f.class = this.toCamelCase(f.title);\n for (let section of f.sections) {\n section.class = this.toCamelCase(section.title);\n for (let subsection of section.subsections) {\n subsection.class = this.toCamelCase(subsection.title);\n }\n }\n return f;\n }))\n );\n }\n\n submitTool(firstname, lastname, email, role, comment, dssName, link, owner) {\n let tool = {firstname, lastname, email, role, comment, dssName, link, owner}\n return this.http.post(\"/api/tools/new\", tool);\n }\n\n submitReport(id, firstname, lastname, email, role, comment) {\n let report = {firstname, lastname, email, role, comment}\n return this.http.put(\"/api/tools/\" + id, report);\n }\n\n getSync() {\n return this.http.get(\"/api/sync/latest\");\n }\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { ApiService } from '../../api.service';\n\n@Component({\n selector: 'app-quick-search',\n templateUrl: './quick-search.component.html',\n styleUrls: ['./quick-search.component.scss']\n})\nexport class QuickSearchComponent implements OnInit {\n @Input() showBrowse;\n @Input() selectedCountries;\n @Input() selectedCrops;\n @Input() selectedPests;\n @Input() selectedLanguages;\n @Output() onSearch = new EventEmitter();\n @Output() onBrowse = new EventEmitter();\n\n public countries;\n public crops;\n public pests;\n public languages;\n\n constructor(private api: ApiService) { }\n\n ngOnInit(): void {\n this.api.getCountries().subscribe((countries:any) => {\n this.countries = countries.map(c=>({\"id\":c.country_id, \"value\":c.name}));\n });\n this.api.getCrops().subscribe((crops:any) => {\n this.crops = crops.map(c=>({\"id\":c.pest_disease_id, \"value\":c.name}));\n });\n this.api.getDiseases().subscribe((pests:any) => {\n this.pests = pests.map(c=>({\"id\":c.pest_disease_id, \"value\":c.name}));\n });\n this.api.getLanguages().subscribe((languages:any) => {\n this.languages = languages.map(c=>({\"id\":c.language_id, \"value\":c.name}));\n });\n }\n\n search() {\n this.onSearch.emit();\n }\n\n browse() {\n this.onBrowse.emit();\n }\n}\n","
\n
\n
    \n
  • \n Country \n \n
  • \n
  • \n Crop \n \n
  • \n
  • \n Pest \n \n
  • \n
  • \n Language \n \n
  • \n
  • \n Search\n
  • \n
\n
\n \n
\n
\n
"]}