import {properties} from "../../../../environments/environment"; import {OpenaireEntities} from "./searchFields"; export class SearchFieldsBase { //main Entities //RESULTS //Used for datasets and publications and software and orp //In case Datasets or Software should display different fields, use seperate tables for fields public RESULT_STATIC_FIELDS = ["resultbestaccessright", "type"]; // "resultacceptanceyear", public RESULT_RANGE_FIELDS = [ ["resultacceptanceyear", "resultacceptanceyear"] ]; // Remove Collected From Filter "collectedfrom","collectedfrom" public RESULT_REFINE_FIELDS = [ "instancetypename", "foslabel", "relfunder", "relfundinglevel0_id", "relfundinglevel1_id", "relfundinglevel2_id", "relproject", "sdg", "country", "resultlanguagename", "resulthostingdatasource", "community"]; RESULT_FIELDS_ORDERED = [ {type: "static", title: "", values: ["resultbestaccessright", "type"]}, {type: "refine", title: "", values: ["instancetypename"]}, {type: "range", title: "", values: ["resultacceptanceyear", "resultacceptanceyear"]}, {type: "refine", title: "", values: [ "foslabel", "relfunder", "relfundinglevel0_id", "relfundinglevel1_id", "relfundinglevel2_id", "relproject", "sdg", "country", "resultlanguagename", "resulthostingdatasource", "community" ]} ]; public RESULT_ADVANCED_FIELDS: string[] = ["q", "resulttitle", "resultauthor", "authorid", "resultdescription", "resultsubject", "eoscifguidelines", "resultpublisher", "resultbestaccessright", "community","conceptname", "collectedfromdatasourceid", "resulthostingdatasourceid", "resultdateofacceptance", "relfunder", "relfundinglevel0_id", "relfundinglevel1_id", "relfundinglevel2_id", "resultlanguagename", "relorganizationid", "pid", "relprojectid", "instancetypename", "fos", "sdg"]; public RESULT_FIELDS: { [key: string]: FieldDetails } = { ["q"]: {name: "Any field", type: "keyword", param: "q", operator: "op", equalityOperator: "=", filterType: null}, ["resulttitle"]: { name: "Title", type: "keyword", param: "title", operator: "tt", equalityOperator: "=", filterType: null }, ["resultauthor"]: { name: "Author", type: "keyword", param: "author", operator: "at", equalityOperator: "=", filterType: null }, ["authorid"]: { name: "Author ORCID", type: "keyword", param: "orcid", operator: "oc", equalityOperator: " exact ", filterType: null }, ["resultsubject"]: { name: "Subject", type: "keyword", param: "subject", operator: "sb", equalityOperator: "=", filterType: null }, ["eoscifguidelines"]: { name: "EOSC Subject", type: "refine", param: "eoscSubj", operator: "es", equalityOperator: " exact ", filterType: null }, ["resultdescription"]: { name: "Abstract", type: "keyword", param: "description", operator: "ds", equalityOperator: "=", filterType: null }, ["resultpublisher"]: { name: "Publisher", type: "keyword", param: "publisher", operator: "pb", equalityOperator: "=", filterType: null }, ["pid"]: { name: "PID", type: "keyword", param: "pid", operator: "pd", equalityOperator: " exact ", filterType: null }, ["resulthostingdatasourceid"]: { name: "Hosting " + OpenaireEntities.DATASOURCE, type: "entity", param: "hostedBy", operator: "hs", equalityOperator: " exact ", filterType: null }, ["resulthostingdatasource"]: { name: "Source", type: "refine", param: "hostedBy", operator: "hs", equalityOperator: " exact ", filterType: "checkbox" }, ["instancetypename"]: { name: "Document Type", type: "vocabulary", param: "type", operator: "tp", equalityOperator: " exact ", filterType: "checkbox" }, ["resultlanguagename"]: { name: "Language", type: "vocabulary", param: "lang", operator: "ln", equalityOperator: " exact ", filterType: "checkbox" }, ["community"]: { name: OpenaireEntities.COMMUNITY, type: "refine", param: "community", operator: "cm", equalityOperator: " exact ", filterType: "checkbox" }, ["conceptname"]: { name: "Subcommunity", type: "keyword", param: "conceptname", operator: "sc", equalityOperator: " exact ", filterType: "checkbox" }, ["relproject"]: { name: "Project", type: "refine", param: "project", operator: "po", equalityOperator: " exact ", filterType: "checkbox" }, ["relprojectid"]: { name: OpenaireEntities.PROJECT, type: "entity", param: "project", operator: "po", equalityOperator: " exact ", filterType: null }, ["relfunder"]: { name: "Funder", type: "refine", param: "funder", operator: "fn", equalityOperator: " exact ", filterType: "checkbox" }, ["relfundinglevel0_id"]: { name: "Funding Stream", type: "refine", param: "funderlv0", operator: "fn0", equalityOperator: " exact ", filterType: "checkbox" }, ["relfundinglevel1_id"]: { name: "Funding Substream level 1", type: "refine", param: "funderlv1", operator: "fn1", equalityOperator: " exact ", filterType: "checkbox" }, ["relfundinglevel2_id"]: { name: "Funding Substream level 2", type: "refine", param: "funderlv2", operator: "fn0", equalityOperator: " exact ", filterType: "checkbox" }, ["resultacceptanceyear"]: { name: "Publication Date", type: "keyword", param: "year", operator: "ya", equalityOperator: " = ", filterType: null }, ["resultdateofacceptance"]: { name: "Publication Date", type: "date", param: "date", operator: "dt", equalityOperator: " within ", filterType: null }, ["resultacceptanceyear-range-resultacceptanceyear"]: { name: "Year range", type: "keyword", param: "year", operator: "ya", equalityOperator: " within ", filterType: "range" }, ["resultbestaccessright"]: { name: "Access", type: "static", param: "access", operator: "ac", equalityOperator: " exact ", filterType: "checkbox" }, ["collectedfrom"]: { name: "Collected From", type: "refine", param: "datasource", operator: "cl", equalityOperator: " exact ", filterType: "checkbox" }, ["relorganizationid"]: { name: "Organization", type: "entity", param: "organization", operator: "og", equalityOperator: " exact ", filterType: null }, ["collectedfromdatasourceid"]: { name: "Collected from " + OpenaireEntities.DATASOURCE, type: "entity", param: "collectedFrom", operator: "cl", equalityOperator: " exact ", filterType: null }, ["resulttypeid"]: { name: "Type", type: "refine", param: "types", operator: "tp", equalityOperator: " exact ", filterType: "radio" }, ["country"]: { name: "Country", type: "refine", param: "country", operator: "cu", equalityOperator: " exact ", filterType: "checkbox" }, ["sdg"]: { name: "SDG [Beta]", type: "vocabulary", param: "sdg", operator: "sg", equalityOperator: " exact ", filterType: "checkbox" }, ["fos"]: { name: "Field of Science", type: "vocabulary", param: "fos", operator: "fs", equalityOperator: " exact ", filterType: "checkbox" }, ["foslabel"]: { name: "Field of Science", type: "vocabulary", param: "foslabel", operator: "fl", equalityOperator: " exact ", filterType: "checkbox" }, ["type"]: { name: "Type", type: "static", param: "type", operator: "tp", equalityOperator: " = ", filterType: "checkbox" }, ["peerreviewed"]: { name: "Peer reviewed", type: "triplet", param: "peerreviewed", operator: "pv", equalityOperator: " = ", filterType: "triplet" }, ["isgreen"]: { name: "Green", type: "triplet", param: "isgreen", operator: "ig", equalityOperator: " = ", filterType: "triplet" }, ["openaccesscolor"]: { name: "Publisher Access", type: "refine", param: "openaccesscolor", operator: "oc", equalityOperator: " exact ", filterType: "radio" }, ["isindiamondjournal"]: { name: "In a Diamond OA journal", type: "triplet", param: "isindiamondjournal", operator: "dj", equalityOperator: " = ", filterType: "triplet" }, ["publiclyfunded"]: { name: "Publicly funded", type: "triplet", param: "publiclyfunded", operator: "pf", equalityOperator: " = ", filterType: "triplet" }, ["haslicense"]: { name: "License", type: "triplet", param: "haslicense", operator: "hl", equalityOperator: " = ", filterType: "triplet" } }; public RESULT_STATIC_FIELD_VALUES: { [key: string]: {"name": string, "id": string, "count": string}[] } = { ["resultbestaccessright"]: [ { name: "Open Access", id: "Open Access", count: "0" }, { name: "Closed Access", id: "Closed Access", count: "0" }, { name: "Restricted", id: "Restricted", count: "0" }, { name: "Open Source", id: "Open Source", count: "0" }, { name: "Embargo", id: "Embargo", count: "0" } ], ["type"]: [ { name: OpenaireEntities.PUBLICATIONS, id: "publications", count: "0" }, { name: OpenaireEntities.DATASETS, id: "datasets", count: "0" }, { name: OpenaireEntities.SOFTWARE, id: "software", count: "0" }, { name: OpenaireEntities.OTHER, id: "other", count: "0" } ], ["isgreen"]: [ { name: "All", id: "", count: "0" }, { name: "Yes", id: "true", count: "0" }, { name: "No", id: "false", count: "0" } ], ["isindiamondjournal"]: [ { name: "All", id: "", count: "0" }, { name: "Yes", id: "true", count: "0" }, { name: "No", id: "false", count: "0" } ], ["peerreviewed"]: [ { name: "All", id: "", count: "0" }, { name: "Yes", id: "true", count: "0" }, { name: "No", id: "false", count: "0" } ], ["publiclyfunded"]: [ { name: "All", id: "", count: "0" }, { name: "Yes", id: "true", count: "0" }, { name: "No", id: "false", count: "0" } ], ["haslicense"]: [ { name: "All", id: "", count: "0" }, { name: "Yes", id: "true", count: "0" }, { name: "No", id: "false", count: "0" } ] }; //PROJECT public PROJECT_RANGE_FIELDS = [ ["projectendyear", "projectstartyear"] ]; public PROJECT_REFINE_FIELDS: string[] = ["funder", "fundinglevel0_id", "fundinglevel1_id", "fundinglevel2_id", "projectoamandatepublications", "projectstartyear", "projectendyear"]; public PROJECT_FIELDS_ORDERED = [ {type: "refine", title: "", values: ["funder", "fundinglevel0_id", "fundinglevel1_id", "fundinglevel2_id"]}, {type: "range", title: "", values: ["projectstartyear", "projectendyear"]}, {type: "refine", title: "", values: ["projectoamandatepublications"]} ]; public PROJECT_ADVANCED_FIELDS: string[] = ["q", "projectacronym", "projecttitle", "projectkeywords", "funder", "fundinglevel0_id", "fundinglevel1_id", "fundinglevel2_id", "projectstartdate", "projectenddate", "projectcode_nt", "relorganizationid", "collectedfromdatasourceid"]; public PROJECT_FIELDS: { [key: string]: FieldDetails } = { ["q"]: {name: "Any field", type: "keyword", param: "q", operator: "op", equalityOperator: "=", filterType: null}, ["projectacronym"]: { name: "Acronym", type: "keyword", param: "acronym", operator: "ar", equalityOperator: "=", filterType: null }, ["projecttitle"]: { name: "Title", type: "keyword", param: "title", operator: "tt", equalityOperator: "=", filterType: null }, ["projectkeywords"]: { name: "Keyword", type: "keyword", param: "keywords", operator: "ky", equalityOperator: "=", filterType: null }, ["funder"]: { name: "Funder", type: "refine", param: "funder", operator: "fn", equalityOperator: " exact ", filterType: "checkbox" }, ["fundinglevel0_id"]: { name: "Funding Stream", type: "refine", param: "funderlv0", operator: "fn0", equalityOperator: " exact ", filterType: "checkbox" }, ["fundinglevel1_id"]: { name: "Funding Substream level 1", type: "refine", param: "funderlv1", operator: "fn1", equalityOperator: " exact ", filterType: "checkbox" }, ["fundinglevel2_id"]: { name: "Funding Substream level 2", type: "refine", param: "funderlv2", operator: "fn2", equalityOperator: " exact ", filterType: "checkbox" }, ["projectstartyear"]: { name: "Start Year", type: "year", param: "startyear", operator: "sy", equalityOperator: " <= ", filterType: "checkbox" }, ["projectendyear"]: { name: "End Year", type: "year", param: "endyear", operator: "ey", equalityOperator: " >= ", filterType: "checkbox" }, ["projectendyear-range-projectstartyear"]: { name: "Active within", type: "year", param: "year", operator: "ya", equalityOperator: " = ", filterType: "range" }, ["projectstartdate"]: { name: "Start Date", type: "date", param: "startdate", operator: "sd", equalityOperator: " within ", filterType: null }, ["projectenddate"]: { name: "End Date", type: "date", param: "enddate", operator: "ed", equalityOperator: " within ", filterType: null }, // ["projectecsc39"]: { // name: "Special Clause 39", // type: "boolean", // param: "sc39", // operator: "sc", // equalityOperator: " exact ", // filterType: "radio" // }, ["projectoamandatepublications"]: { name: "OA " + OpenaireEntities.PUBLICATIONS + " Mandate", type: "boolean", param: "oapubl", operator: "oap", equalityOperator: " exact ", filterType: "radio" }, ["projectoamandatedata"]: { name: "OA " + OpenaireEntities.DATASETS + " Mandate", type: "boolean", param: "oadata", operator: "oad", equalityOperator: " exact ", filterType: "radio" }, ["projectcode_nt"]: { name: "Project Code", type: "keyword", param: "code", operator: "cd", equalityOperator: " exact ", filterType: null }, ["relorganizationid"]: { name: "Organization", type: "entity", param: "organization", operator: "og", equalityOperator: " exact ", filterType: null }, ["collectedfromdatasourceid"]: { name: "Collected from " + OpenaireEntities.DATASOURCE, type: "entity", param: "collectedFrom", operator: "cl", equalityOperator: " exact ", filterType: null } }; //DATAPROVIDERS public DATASOURCE_STATIC_FIELDS = ["eosctype"]; // add Collected From Filter "collectedfromname" public DATASOURCE_REFINE_FIELDS: string[] = ["eoscdatasourcetype", "datasourceodlanguages", "datasourceodcontenttypes", "datasourcecompatibilityname", "country", "collectedfromname", "datasourcethematic", "datasourcejurisdiction"]; public DATASOURCE_ADVANCED_FIELDS: string[] = ["q", "datasourceofficialname", "datasourceenglishname", "datasourceodsubjects", "datasourcetypename", "datasourceodlanguages", "datasourceodcontenttypes", "datasourcecompatibilityname", "relorganizationid", "collectedfromdatasourceid", "pid"]; public DATASOURCE_FIELDS: { [key: string]: FieldDetails } = { ["q"]: {name: "Any field", type: "keyword", param: "q", operator: "op", equalityOperator: "=", filterType: null}, ["datasourceofficialname"]: { name: "English name", type: "keyword", param: "officialname", operator: "of", equalityOperator: "=", filterType: null }, ["datasourceenglishname"]: { name: "Title", type: "keyword", param: "engname", operator: "eg", equalityOperator: "=", filterType: null }, ["datasourceodsubjects"]: { name: "Subject", type: "keyword", param: "subjects", operator: "sb", equalityOperator: "=", filterType: null }, ["datasourcetypeuiid"]: { name: "Type", type: "refine", param: "type", operator: "tp", equalityOperator: " exact ", filterType: null }, ["datasourcetypeuiname"]: { name: "Type", type: "refine", param: "type", operator: "tp", equalityOperator: " exact ", filterType: "radio" }, ["eoscdatasourcetype"]: { name: "Type", type: "refine", param: "type", operator: "tp", equalityOperator: " exact ", filterType: "radio" }, ["datasourcetypename"]: { name: "Type", type: "vocabulary", param: "type", operator: "tp", equalityOperator: " exact ", filterType: "radio" }, ["datasourceodlanguages"]: { name: "Language", type: "vocabulary", param: "lang", operator: "ln", equalityOperator: " exact ", filterType: "checkbox" }, ["datasourceodcontenttypes"]: { name: "Content", type: "refine", param: "content", operator: "cn", equalityOperator: " exact ", filterType: "checkbox" }, ["datasourcecompatibilityid"]: { name: "Compatibility Level", type: "refine", param: "compatibility", operator: "cm", equalityOperator: " exact ", filterType: null }, ["datasourcecompatibilityname"]: { name: "Compatibility Level", type: "vocabulary", param: "compatibility", operator: "cm", equalityOperator: " exact ", filterType: "checkbox" }, ["relorganizationid"]: { name: "Organization", type: "entity", param: "organization", operator: "og", equalityOperator: " exact ", filterType: null }, ["collectedfromname"]: { name: "Collected from", type: "entity", param: "collectedFrom", operator: "cl", equalityOperator: " exact ", filterType: "checkbox" }, ["collectedfromdatasourceid"]: { name: "Collected from " + OpenaireEntities.DATASOURCE, type: "entity", param: "collectedFrom", operator: "cl", equalityOperator: " exact ", filterType: null }, ["country"]: { name: "Country", type: "vocabulary", param: "country", operator: "cu", equalityOperator: " exact ", filterType: "checkbox" }, ["datasourcethematic"]: { name: "Thematic", type: "boolean", param: "thematic", operator: "th", equalityOperator: " exact ", filterType: "radio" }, ["datasourcejurisdiction"]: { name: "Jurisdiction", type: "vocabulary", param: "jurisdiction", operator: "ju", equalityOperator: " exact ", filterType: "checkbox" }, ["pid"]: {name: "PID", type: "keyword", param: "pid", operator: "pd", equalityOperator: " exact ", filterType: null}, ["eosctype"]: { name: "EOSC Type", type: "static", param: "type", operator: "tp", equalityOperator: " = ", filterType: "checkbox" } }; public DATASOURCE_STATIC_FIELD_VALUES: { [key: string]: {"name": string, "id": string, "count": string}[] } = { ["eosctype"]: [ { name: OpenaireEntities.DATASOURCES, id: "Data Source", count: "0" }, { name: "Other "+OpenaireEntities.SERVICES, id: "Service", count: "0" }, ] } public DEPOSIT_DATASOURCE_KEYWORD_FIELDS: { "name": string, "equalityOperator": string } [] = [ {"name": "relorganizationname", "equalityOperator": "="}, {"name": "relorganizationshortname", "equalityOperator": "="}, {"name": "datasourceofficialname", "equalityOperator": "="}, {"name": "datasourceenglishname", "equalityOperator": "="}, {"name": "eoscdatasourcetype", "equalityOperator": " exact "}, {"name": "country", "equalityOperator": " exact "}, {"name": "datasourcesubject", "equalityOperator": " all "} ]; public DEPOSIT_DATASOURCE_REFINE_FIELDS: string[] = ["datasourcetypename", "country", "datasourceodsubjects", "datasourceodcontenttypes", "datasourcecompatibilityname", "datasourcethematic", "datasourcejurisdiction"]; public DEPOSIT_DATASOURCE_FIELDS: { [key: string]: FieldDetails } = { ["datasourcetypeuiname"]: { name: "Repository type", type: "refine", param: "type", operator: "tp", equalityOperator: " exact ", filterType: "radio" }, ["eoscdatasourcetype"]: { name: "Repository type", type: "refine", param: "type", operator: "tp", equalityOperator: " exact ", filterType: "radio" }, ["country"]: { name: "Countries", type: "vocabulary", param: "country", operator: "cu", equalityOperator: " exact ", filterType: "checkbox" }, ["datasourceodsubjects"]: { name: "Subjects", type: "keyword", param: "subjects", operator: "sb", equalityOperator: "=", filterType: "checkbox" }, ["datasourceodcontenttypes"]: { name: "Content type", type: "refine", param: "content", operator: "cn", equalityOperator: " exact ", filterType: "checkbox" }, ["datasourcecompatibilityname"]: { name: "Compatibility Level", type: "vocabulary", param: "compatibility", operator: "cm", equalityOperator: " exact ", filterType: "checkbox" }, }; // public COMPATIBLE_DATAPROVIDER_FIELDS: string[] = ["datasourcetypename", "datasourcecompatibilityname"]; public COMPATIBLE_DATAPROVIDER_FIELDS: string[] = ["datasourcetypename", "datasourceodlanguages", "datasourceodcontenttypes", "datasourcecompatibilityname", "country", "collectedfromname", "datasourcethematic", "datasourcejurisdiction"]; // public ENTITY_REGISTRIES_FIELDS: string[] = ["datasourcetypename", "datasourcecompatibilityname"]; public ENTITY_REGISTRIES_FIELDS: string[] = ["datasourcetypename", "datasourceodlanguages", "datasourceodcontenttypes", "datasourcecompatibilityname", "country", "collectedfromname", "datasourcethematic", "datasourcejurisdiction"]; // public JOURNAL_FIELDS: string[] = ["datasourcetypename", "datasourcecompatibilityname"]; public JOURNAL_FIELDS: string[] = ["datasourcetypename", "datasourceodlanguages", "datasourceodcontenttypes", "datasourcecompatibilityname", "country", "collectedfromname", "datasourcethematic", "datasourcejurisdiction"]; //ORGANIZATION public ORGANIZATION_REFINE_FIELDS: string[] = ["countrynojurisdiction"] public ORGANIZATION_ADVANCED_FIELDS: string[] = ["q", "organizationlegalname", "organizationlegalshortname", "countrynojurisdiction", "pid"]; public ORGANIZATION_FIELDS: { [key: string]: FieldDetails } = { ["q"]: {name: "Any field", type: "keyword", param: "q", operator: "op", equalityOperator: "=", filterType: null}, ["organizationlegalname"]: { name: "Legal Name", type: "keyword", param: "name", operator: "nm", equalityOperator: "=", filterType: null }, ["organizationlegalshortname"]: { name: "Legal Short Name", type: "keyword", param: "shortname", operator: "so", equalityOperator: "=", filterType: null }, ["countrynojurisdiction"]: { name: "Country", type: "vocabulary", param: "country", operator: "cu", equalityOperator: " exact ", filterType: "checkbox" }, ["pid"]: {name: "PID", type: "keyword", param: "pid", operator: "pd", equalityOperator: " exact ", filterType: null} }; // public ORGANIZATION_INDEX:string[] = ["organizationcountryname"]//,"organizationeclegalbody"]; // public ADVANCED_SEARCH_ORGANIZATION_PARAM:string[] = ["q","contenttype","compatibility","country","type"]; // public ORGANIZATION_INDEX_PARAM_MAP:{ [key:string]:string } = {["organizationlegalname"]:"contenttype", ["organizationlegalshortname"]:"type", // ["organizationcountryname"]:"country"};//,["organizationeclegalbody"]:"type"}; // public ORGANIZATION_FIELDS_MAP: { [key:string]:{ name:string, operator:string, type:string, indexField:string , operator: "op", equalityOperator:string}} ={ // ["q"]:{name:"Any field",operator:"op", type:"keyword", indexField:null, operator: "op", equalityOperator: "="}, // ["contenttype"]:{name:"Legal Name",operator:"cn", type:"keyword" , indexField:"organizationlegalname", operator: "op", equalityOperator: "="}, // ["compatibility"]:{name:"Legal Short Name",operator:"cm", type:"keyword", indexField:"organizationlegalshortname", operator: "op", equalityOperator: "="}, // ["country"]:{name:"Country",operator:"cu", type:"vocabulary", indexField:"organizationcountryname", operator: "op", equalityOperator: " exact "}, // ["type"]:{name:"Type",operator:"tp", type:"refine", indexField:"organizationeclegalbody", operator: "op", equalityOperator: " exact "}, // // }; //add project field depending on funder public HIDDEN_FIELDS: string[] = ["fundinglevel0_id", "fundinglevel1_id", "fundinglevel2_id", "relfundinglevel0_id", "relfundinglevel1_id", "relfundinglevel2_id", "relproject", "instancetypename", "isgreen", "openaccesscolor", "isindiamondjournal", "peerreviewed" ]; public DEPENDENT_FIELDS: { [key: string]: string } = { ["relproject"]: "relfunder", ["fundinglevel0_id"]: "funder", ["fundinglevel1_id"]: "fundinglevel0_id", ["fundinglevel2_id"]: "fundinglevel1_id", ["relfundinglevel0_id"]: "relfunder", ["relfundinglevel1_id"]: "relfundinglevel0_id", ["relfundinglevel2_id"]: "relfundinglevel1_id", ["instancetypename"]: "type", // ["isgreen"]: "type" }; public DEPENDENT_FIELDS_AND_VALUES: { [key: string]: { field: string, values: string[] } } = { ["isgreen"]: { field: "type", values: ["publications"] }, ["openaccesscolor"]: { field: "type", values: ["publications"] }, ["isindiamondjournal"]: { field: "type", values: ["publications"] }, ["peerreviewed"]: { field: "type", values: ["publications"] }, }; public ADVANCED_SEARCH_OPERATORS: string[] = ["and", "or"]; public COMMUNITIES_SEARCH_FIELDS: string[] = ["type", "access", "role"]; public STAKEHOLDER_SEARCH_FIELDS: string[] = ["type", "access", "role"]; constructor() { } getResultAdvancedFields() { // if(properties.environment == "production") { // this.RESULT_ADVANCED_FIELDS = this.RESULT_ADVANCED_FIELDS.filter((value, index, array) => { // return value != "eoscifguidelines"; // }) // } return this.RESULT_ADVANCED_FIELDS; } getField(fieldId: string, fieldType: string): any { if (fieldType == "publication" || fieldType == "dataset" || fieldType == "software" || fieldType == "other" || fieldType == "result") { return this.RESULT_FIELDS[fieldId]; } else if (fieldType == "project") { return this.PROJECT_FIELDS[fieldId]; } else if (fieldType == "organization") { return this.ORGANIZATION_FIELDS[fieldId]; } else if (fieldType == "datasource" || fieldType == "dataprovider") { return this.DATASOURCE_FIELDS[fieldId]; } else if (fieldType == "service") { return this.DATASOURCE_FIELDS[fieldId]; } else { return null; } } getFieldName(fieldId: string, fieldType: string): string { let field = this.getField(fieldId, fieldType); return field ? field.name : "UNDEFINED"; } sortFieldsByName(fieldIds: string[], fieldIdsMap: { [key: string]: FieldDetails }) { fieldIds.sort((a: string, b: string) => { if (a == "q") { return -1; } else if (b == "q") { return 1; } let nameA: string = fieldIdsMap[a].name; let nameB: string = fieldIdsMap[b].name; return nameA.localeCompare(nameB); }) } getFieldFilterType(fieldId: string, fieldType: string, usedBy: string = "search"): string { let field = this.getField(fieldId, fieldType); return field ? field.filterType : "checkbox"; } getFieldParam(fieldId: string, fieldType: string): string { let field = this.getField(fieldId, fieldType); return field ? field.param : "UNDEFINED"; } /* AND Funder: relfunder, relfundinglevel0_id, relfundinglevel1_id, relfundinglevel2_id Project: relproject Community: community OR Type: instancetypename, datasourcetypeuiname Language: resultlanguagename, datasourceodlanguages Compatibility Level: datasourcecompatibilityname Country: country Content: datasourceodcontenttypes Datasource: resulthostingdatasource Collected From: collectedfrom BULLETS Access Mode: resultbestaccessright Special Clause 39: projectecsc39 Versioning: RANGE Publication date: resultacceptanceyear Project life: projectstartyear, projectendyear ? WHAT ABOUT ?: Subjects: Supported Identifiers: */ getFieldOperator(fieldId: string): string { if (fieldId == "relfunder" || fieldId == "relfundinglevel0_id" || fieldId == "relfundinglevel1_id" || fieldId == "relfundinglevel2_id" || fieldId == "relproject" || fieldId == "community" || fieldId == "projectendyear-range-projectstartyear") { return "and"; } else if (fieldId == "instancetypename" || fieldId == "eoscdatasourcetype" || fieldId == "resultlanguagename" || fieldId == "datasourceodlanguages" || fieldId == "datasourcecompatibilityname" || fieldId == "country" || fieldId == "countrynojurisdiction" || fieldId == "datasourceodcontenttypes" || fieldId == "resulthostingdatasource" || fieldId == "collectedfrom") { return "or"; } return "or"; } getFosParameter() { return this.RESULT_REFINE_FIELDS.includes("foslabel") ? "foslabel" : "fos"; } } export class FieldDetails { name: string; type: string; param: string; equalityOperator: string; operator: string; filterType: string = "checkbox"; }