From 53b14eee2198202921b48e991d5705eb678763e8 Mon Sep 17 00:00:00 2001 From: david zynda Date: Tue, 23 Apr 2024 09:53:13 +0200 Subject: [PATCH 1/3] WiP: Battery passport v5 --- dpp-frontend/src/assets/batteryv5.json | 865 +++++++ .../styles/components/passport/sections.scss | 214 +- .../src/components/general/TabsComponent.vue | 254 +- .../src/components/passport/BatteryCards.vue | 524 +++-- .../src/components/passport/ElementChart.vue | 126 +- .../passport/sections/Characteristics.vue | 292 +-- .../passport/sections/Conformity.vue | 74 + .../components/passport/sections/Handling.vue | 339 +-- .../passport/sections/Identification.vue | 337 ++- .../passport/sections/Materials.vue | 242 ++ .../components/passport/sections/Metadata.vue | 241 +- .../passport/sections/Operation.vue | 236 +- .../passport/sections/Performance.vue | 674 ++++++ .../components/passport/sections/Safety.vue | 139 ++ .../passport/sections/Sustainability.vue | 560 +++-- .../src/config/templates/batteryGraph.json | 90 +- dpp-frontend/src/translations/de.json | 927 ++++---- dpp-frontend/src/translations/en.json | 927 ++++---- dpp-frontend/src/utils/passportUtil.js | 208 +- dpp-frontend/src/views/PassportView.vue | 2040 +++++++++-------- 20 files changed, 5894 insertions(+), 3415 deletions(-) create mode 100644 dpp-frontend/src/assets/batteryv5.json create mode 100644 dpp-frontend/src/components/passport/sections/Conformity.vue create mode 100644 dpp-frontend/src/components/passport/sections/Materials.vue create mode 100644 dpp-frontend/src/components/passport/sections/Performance.vue create mode 100644 dpp-frontend/src/components/passport/sections/Safety.vue diff --git a/dpp-frontend/src/assets/batteryv5.json b/dpp-frontend/src/assets/batteryv5.json new file mode 100644 index 000000000..50a02af36 --- /dev/null +++ b/dpp-frontend/src/assets/batteryv5.json @@ -0,0 +1,865 @@ +{ + "metadata": { + "contract": { + "@id": "9b3c0977-6b14-4201-bd76-55f681a92872", + "@type": "dcat:Dataset", + "odrl:hasPolicy": { + "@id": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", + "@type": "odrl:Set", + "odrl:permission": [], + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" + }, + "dcat:distribution": [ + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "HttpProxy" + }, + "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" + }, + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "AmazonS3" + }, + "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" + } + ], + "edc:description": "Battery Passport test data", + "edc:id": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" + }, + "negotiation": { + "init": { + "request": { + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "@type": "NegotiationInitiateRequestDto", + "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", + "protocol": "dataspace-protocol-http", + "connectorId": "BPNL00000000CBA5", + "offer": { + "offerId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", + "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", + "policy": { + "@type": "odrl:Set", + "odrl:permission": [], + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" + } + } + }, + "response": { + "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", + "@type": "edc:IdResponseDto", + "edc:createdAt": 1688393629505, + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + }, + "get": { + "response": { + "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", + "@type": "edc:ContractNegotiationDto", + "edc:type": "CONSUMER", + "edc:protocol": "dataspace-protocol-http", + "edc:state": "FINALIZED", + "edc:counterPartyAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", + "edc:callbackAddresses": [], + "edc:contractAgreementId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + } + }, + "transfer": { + "init": { + "request": { + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/" + }, + "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", + "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", + "contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", + "dataDestination": { + "properties": { + "type": "HttpProxy" + } + }, + "managedResources": false, + "privateProperties": { + "receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18" + }, + "protocol": "dataspace-protocol-http", + "transferType": { + "contentType": "application/octet-stream", + "isFinite": true + } + }, + "response": { + "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", + "@type": "edc:IdResponseDto", + "edc:createdAt": 1688393631831, + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + }, + "get": { + "response": { + "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", + "@type": "edc:TransferProcessDto", + "edc:state": "COMPLETED", + "edc:stateTimestamp": 1688393633142, + "edc:type": "CONSUMER", + "edc:callbackAddresses": [], + "edc:dataDestination": { + "edc:type": "HttpProxy" + }, + "edc:dataRequest": { + "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", + "@type": "edc:DataRequestDto", + "edc:assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", + "edc:contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390" + }, + "edc:receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } + } + } + } + }, + "semanticId": "urn:bamm:io.catenax.battery.battery_pass:5.0.0#BatteryPass", + "aspect": { + "characteristics": { + "physicalDimension": { + "length": { + "value": 20.0, + "unit": "unit:millimetre" + }, + "width": { + "value": 20.0, + "unit": "unit:millimetre" + }, + "weight": { + "value": 20.0, + "unit": "unit:gram" + }, + "height": { + "value": 20.0, + "unit": "unit:millimetre" + } + }, + "warranty": { + "lifeValue": 36, + "lifeUnit": "unit:day" + } + }, + "metadata": { + "backupReference": "https://dummy.link", + "registrationIdentifier": "https://dummy.link/ID8283746239078", + "economicOperatorId": "BPNL0123456789ZZ", + "passportIdentifier": "urn:uuid:550e8400-e29b-41d4-a716-446655440000", + "predecessor": "urn:uuid:00000000-0000-0000-0000-000000000000", + "issueDate": "2000-01-01", + "version": "1.0.0", + "status": "draft", + "expirationDate": "2000-01-01" + }, + "identification": { + "chemistry": "NCM", + "idDmc": "34567890", + "identification": { + "batch": [ + { + "value": "BID12345678", + "key": "batchId" + } + ], + "codes": [ + { + "value": "8703 24 10 00", + "description": "GBT", + "key": "TARIC" + }, + { + "value": "8703 24 10 00", + "key": "TARIC" + } + ], + "type": { + "manufacturerPartId": "123-0.740-3434-A", + "nameAtManufacturer": "Mirror left" + }, + "classification": [ + { + "classificationStandard": "GIN 20510-21513", + "classificationID": "1004712", + "classificationDescription": "Generic standard for classification of parts in the automotive industry." + } + ], + "serial": [ + { + "value": "SN12345678", + "key": "partInstanceId" + } + ], + "dataCarrier": { + "carrierType": "QR", + "carrierLayout": "upper-left side" + } + }, + "category": "SLI" + }, + "performance": { + "rated": { + "roundTripEfficiency": { + "depthOfDischarge": 90.5, + "temperature": 20.0, + "50PercentLife": 89.0, + "initial": 96.0 + }, + "selfDischargingRate": 0.25, + "performanceDocument": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "testReport": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "temperature": { + "lower": -18.0, + "upper": 60.0 + }, + "lifetime": { + "report": [ + { + "contentType": "URL", + "header": "Sustainability Document Material report", + "content": "https://dummy.link" + } + ], + "cycleLifeTesting": { + "temperature": 20.0, + "depthOfDischarge": 90.5, + "appliedDischargeRate": 4.0, + "cycles": 1500, + "appliedChargeRate": 3.0 + }, + "expectedYears": 8 + }, + "power": { + "at20SoC": 35000.0, + "temperature": 20.0, + "value": 40000.0, + "at80SoC": 39000.0 + }, + "resistance": { + "temperature": 20.0, + "cell": 0.025, + "pack": 0.55, + "module": 0.2 + }, + "voltage": { + "temperature": 20.0, + "min": 2.5, + "nominal": 3.7, + "max": 4.2 + }, + "energy": { + "temperature": 20.0, + "value": 0.5 + }, + "capacity": { + "temperature": 20.0, + "value": 4.0, + "thresholdExhaustion": 80.0 + } + }, + "dynamic": { + "selfDischargingRate": 0.25, + "roundTripEfficiency": { + "remaining": { + "value": 50.0, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "fade": { + "value": 150.0, + "time": "2023-12-07T10:39:13.576+01:00" + } + }, + "operatingEnvironment": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "stateOfCharge": { + "value": 50.0, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "performanceDocument": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "fullCycles": { + "value": 1500, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "power": { + "remaining": { + "value": 40000.0, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "fade": { + "value": 50.0, + "time": "2023-12-07T10:39:13.576+01:00" + } + }, + "negativeEvents": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "resistance": { + "increase": { + "cell": { + "value": 50.0, + "time": "2027-12-07T10:39:13.576+01:00" + }, + "pack": { + "value": 50.0, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "module": { + "value": 50.0, + "time": "2023-12-07T10:39:13.576+01:00" + } + }, + "remaining": { + "cell": { + "value": 0.3, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "pack": { + "value": 0.3, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "module": { + "value": 0.3, + "time": "2023-12-07T10:39:13.576+01:00" + } + } + }, + "capacity": { + "fade": { + "value": 50.0, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "throughput": { + "value": 4.0, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "capacity": { + "value": 4.0, + "time": "2023-12-07T10:39:13.576+01:00" + } + }, + "energy": { + "remaining": { + "value": 0.5, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "soce": { + "value": 50.0, + "time": "2023-12-07T10:39:13.576+01:00" + }, + "throughput": { + "value": 0.5, + "time": "2023-12-07T10:39:13.576+01:00" + } + } + } + }, + "sources": [ + { + "header": "Sustainability Document Material XY", + "category": "Product Specifications", + "type": "URL", + "content": "https://dummy.link" + } + ], + "materials": { + "hazardous": { + "cadmium": { + "concentration": 5.3, + "location": "Housing", + "critical": true, + "impactOfSubstances": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "materialUnit": "unit:partPerMillion", + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ] + }, + "other": [ + { + "materialName": { + "name": "phenolphthalein", + "type": "IUPAC" + }, + "critical": true, + "impactOfSubstances": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "concentration": 5.3, + "materialIdentification": [ + { + "type": "CAS", + "id": "201-004-7" + } + ], + "location": "Housing", + "materialUnit": "unit:partPerMillion" + } + ], + "mercury": { + "concentration": 5.3, + "location": "Housing", + "critical": true, + "impactOfSubstances": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "materialUnit": "unit:partPerMillion", + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ] + }, + "lead": { + "recycled": 12.5, + "critical": true, + "impactOfSubstances": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "location": "Housing", + "concentration": 5.3, + "materialUnit": "unit:partPerMillion" + } + }, + "active": { + "nickel": { + "location": "Housing", + "recycled": 15, + "critical": true, + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ] + }, + "lithium": { + "location": "Housing", + "recycled": 12.5, + "critical": true, + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ] + }, + "cobalt": { + "location": "Housing", + "recycled": 12.5, + "critical": true, + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ] + }, + "other": [ + { + "materialName": { + "name": "phenolphthalein", + "type": "IUPAC" + }, + "location": "Housing", + "materialIdentification": [ + { + "type": "CAS", + "id": "201-004-7" + } + ], + "recycled": 12.5, + "critical": true, + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ] + } + ], + "lead": { + "recycled": 12.5, + "critical": true, + "impactOfSubstances": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "location": "Housing", + "concentration": 5.3, + "materialUnit": "unit:partPerMillion" + } + }, + "composition": [ + { + "unit": "unit:partPerMillion", + "recycled": 12.5, + "critical": true, + "renewable": 23.5, + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "name": { + "name": "test43", + "type": "IUPAC" + }, + "concentration": 8, + "location": "Anode", + "id": [ + { + "type": "CAS", + "id": "201-004-7" + } + ] + }, + { + "unit": "unit:partPerMillion", + "recycled": 12.5, + "critical": true, + "renewable": 23.5, + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "name": { + "name": "test43", + "type": "IUPAC" + }, + "concentration": 8, + "location": "Cathode", + "id": [ + { + "type": "CAS", + "id": "201-004-7" + } + ] + }, + { + "unit": "unit:partPerMillion", + "recycled": 12.5, + "critical": true, + "renewable": 23.5, + "documentation": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "name": { + "name": "test43", + "type": "IUPAC" + }, + "concentration": 8, + "location": "housing", + "id": [ + { + "type": "CAS", + "id": "201-004-7" + } + ] + } + ] + }, + "safety": { + "usableExtinguishAgent": [ + { + "fireClass": "A, B", + "document": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "media": "Dry Powder" + } + ], + "safeDischarging": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "meaningOfLabels": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "dismantling": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "removalFromAppliance": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "safetyMeasures": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ] + }, + "handling": { + "spareParts": { + "producer": [ + { + "id": "BPNL0123456789ZZ" + } + ], + "sparePart": [ + { + "manufacturerPartId": "123-0.740-3434-A", + "nameAtManufacturer": "Mirror left" + } + ] + }, + "applicable": true + }, + "conformity": { + "declarationOfConformityId": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "thirdPartyAssurance": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "resultOfTestReport": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "declarationOfConformity": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "dueDiligencePolicy": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ] + }, + "operation": { + "intoServiceDate": "1446-48-65", + "manufacturer": { + "facility": [ + { + "facility": "BPNA1234567890AA" + } + ], + "manufacturingDate": "2000-01-31", + "manufacturer": "BPNLmANsF8W8vj3P" + } + }, + "sustainability": { + "documents": { + "separateCollection": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "sustainabilityReport": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "euTaxonomyDisclosureStatement": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "wastePrevention": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ] + }, + "carbonFootprint": [ + { + "lifecycle": "main product production", + "rulebook": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ], + "unit": "kg CO2 / kWh", + "performanceClass": "A", + "manufacturingPlant": [ + { + "facility": "BPNA1234567890AA" + } + ], + "type": "Climate Change Total", + "value": 12.678, + "declaration": [ + { + "contentType": "URL", + "header": "Sustainability Document Material XY", + "content": "https://dummy.link" + } + ] + } + ], + "status": "original" + } + } +} \ No newline at end of file diff --git a/dpp-frontend/src/assets/styles/components/passport/sections.scss b/dpp-frontend/src/assets/styles/components/passport/sections.scss index 8855e45db..e5b8a323a 100644 --- a/dpp-frontend/src/assets/styles/components/passport/sections.scss +++ b/dpp-frontend/src/assets/styles/components/passport/sections.scss @@ -1,107 +1,107 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.section { - display: flex; - .full-width { - width: 100% !important; - } - - .info-bar { - padding: 10px; - font-weight: 600; - color: #fff; - margin: -16px 36px 18px 36px; - } - - .element-chart-label { - font-size: 14px; - font-weight: 500; - margin: 0 0 6px 8px; - min-height: 20px; - } - - .sub-section-container { - display: flex; - flex-wrap: wrap; - border-bottom: solid 1px #edefe5; - } - - .two-third-width { - width: 66% !important; - } - - .section-content { - width: 100%; - border: solid 1px #b3cb2d; - border-radius: 0 0 4px 4px; - background-color: #fff; - margin-bottom: 50px; - } - - .list-container { - width: 33%; - padding: 0 0 22px 40px; - } - - .list-label { - padding: 22px 0 10px 0; - font-size: 12px; - color: #777777; - } - - ul { - display: flex; - flex-direction: column; - padding: 0; - } - - li { - margin-left: 20px; - font-weight: bold; - } - - .sub-title { - font-weight: bold; - font-size: 20px; - color: #c6cca3; - } - - .container-width-80 { - width: 80%; - } - .container-width-50 { - width: 50%; - } -} -@media (max-width: 960px) { - .section { - flex-direction: column; - .container-width-80 { - width: 100%; - } - .container-width-50 { - width: 100%; - } - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.section { + display: flex; + .full-width { + width: 100% !important; + } + + .info-bar { + padding: 10px; + font-weight: 600; + color: #fff; + margin: -16px 36px 18px 36px; + } + + .element-chart-label { + font-size: 14px; + font-weight: 600; + margin: 0 0 6px 8px; + min-height: 20px; + } + + .sub-section-container { + display: flex; + flex-wrap: wrap; + border-bottom: solid 1px #edefe5; + } + + .two-third-width { + width: 66% !important; + } + + .section-content { + width: 100%; + border: solid 1px #b3cb2d; + border-radius: 0 0 4px 4px; + background-color: #fff; + margin-bottom: 50px; + } + + .list-container { + width: 33%; + padding: 0 0 22px 40px; + } + + .list-label { + padding: 22px 0 10px 0; + font-size: 12px; + color: #777777; + } + + ul { + display: flex; + flex-direction: column; + padding: 0; + } + + li { + margin-left: 20px; + font-weight: bold; + } + + .sub-title { + font-weight: bold; + font-size: 20px; + color: #c6cca3; + } + + .container-width-80 { + width: 80%; + } + .container-width-50 { + width: 50%; + } +} +@media (max-width: 960px) { + .section { + flex-direction: column; + .container-width-80 { + width: 100%; + } + .container-width-50 { + width: 100%; + } + } +} diff --git a/dpp-frontend/src/components/general/TabsComponent.vue b/dpp-frontend/src/components/general/TabsComponent.vue index f40c1ccf1..5ae0e6701 100644 --- a/dpp-frontend/src/components/general/TabsComponent.vue +++ b/dpp-frontend/src/components/general/TabsComponent.vue @@ -1,121 +1,133 @@ - - - - - \ No newline at end of file + + + + + diff --git a/dpp-frontend/src/components/passport/BatteryCards.vue b/dpp-frontend/src/components/passport/BatteryCards.vue index ae65a3376..9dee6f921 100644 --- a/dpp-frontend/src/components/passport/BatteryCards.vue +++ b/dpp-frontend/src/components/passport/BatteryCards.vue @@ -1,267 +1,257 @@ - - - - - - + + + + + + diff --git a/dpp-frontend/src/components/passport/ElementChart.vue b/dpp-frontend/src/components/passport/ElementChart.vue index f57003768..f520770dd 100644 --- a/dpp-frontend/src/components/passport/ElementChart.vue +++ b/dpp-frontend/src/components/passport/ElementChart.vue @@ -1,52 +1,74 @@ - - - - - - + + + + + + diff --git a/dpp-frontend/src/components/passport/sections/Characteristics.vue b/dpp-frontend/src/components/passport/sections/Characteristics.vue index 934ce5cc6..d823932d2 100644 --- a/dpp-frontend/src/components/passport/sections/Characteristics.vue +++ b/dpp-frontend/src/components/passport/sections/Characteristics.vue @@ -1,142 +1,150 @@ - - - - - + + + + + diff --git a/dpp-frontend/src/components/passport/sections/Conformity.vue b/dpp-frontend/src/components/passport/sections/Conformity.vue new file mode 100644 index 000000000..d84c77354 --- /dev/null +++ b/dpp-frontend/src/components/passport/sections/Conformity.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/dpp-frontend/src/components/passport/sections/Handling.vue b/dpp-frontend/src/components/passport/sections/Handling.vue index 7ea5cdcc0..0aa16ace3 100644 --- a/dpp-frontend/src/components/passport/sections/Handling.vue +++ b/dpp-frontend/src/components/passport/sections/Handling.vue @@ -1,155 +1,184 @@ - - - - - + + + + + diff --git a/dpp-frontend/src/components/passport/sections/Identification.vue b/dpp-frontend/src/components/passport/sections/Identification.vue index 641c0fa69..f03e727e1 100644 --- a/dpp-frontend/src/components/passport/sections/Identification.vue +++ b/dpp-frontend/src/components/passport/sections/Identification.vue @@ -1,117 +1,220 @@ - - - - + + + + diff --git a/dpp-frontend/src/components/passport/sections/Materials.vue b/dpp-frontend/src/components/passport/sections/Materials.vue new file mode 100644 index 000000000..332241613 --- /dev/null +++ b/dpp-frontend/src/components/passport/sections/Materials.vue @@ -0,0 +1,242 @@ + + + diff --git a/dpp-frontend/src/components/passport/sections/Metadata.vue b/dpp-frontend/src/components/passport/sections/Metadata.vue index ee470627f..6a6cf9995 100644 --- a/dpp-frontend/src/components/passport/sections/Metadata.vue +++ b/dpp-frontend/src/components/passport/sections/Metadata.vue @@ -1,102 +1,139 @@ - - - - - + + + + + diff --git a/dpp-frontend/src/components/passport/sections/Operation.vue b/dpp-frontend/src/components/passport/sections/Operation.vue index 36fb03ef7..186270e11 100644 --- a/dpp-frontend/src/components/passport/sections/Operation.vue +++ b/dpp-frontend/src/components/passport/sections/Operation.vue @@ -1,101 +1,135 @@ - - - - - + + + + + diff --git a/dpp-frontend/src/components/passport/sections/Performance.vue b/dpp-frontend/src/components/passport/sections/Performance.vue new file mode 100644 index 000000000..4b1541880 --- /dev/null +++ b/dpp-frontend/src/components/passport/sections/Performance.vue @@ -0,0 +1,674 @@ + + + + + diff --git a/dpp-frontend/src/components/passport/sections/Safety.vue b/dpp-frontend/src/components/passport/sections/Safety.vue new file mode 100644 index 000000000..a434b184c --- /dev/null +++ b/dpp-frontend/src/components/passport/sections/Safety.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/dpp-frontend/src/components/passport/sections/Sustainability.vue b/dpp-frontend/src/components/passport/sections/Sustainability.vue index 51c464453..fd8985e8e 100644 --- a/dpp-frontend/src/components/passport/sections/Sustainability.vue +++ b/dpp-frontend/src/components/passport/sections/Sustainability.vue @@ -1,244 +1,316 @@ - - - - - + + + + + diff --git a/dpp-frontend/src/config/templates/batteryGraph.json b/dpp-frontend/src/config/templates/batteryGraph.json index 73a2fb300..3988ac10e 100644 --- a/dpp-frontend/src/config/templates/batteryGraph.json +++ b/dpp-frontend/src/config/templates/batteryGraph.json @@ -1,50 +1,40 @@ -{ - "title": "NCA", - "composition": [ - { - "title": "Composition of Andode", - "composition": [ - { - "label": "SiO2-C", - "value": 50, - "unit": "%" - }, - { - "label": "Styren butadien", - "value": 50, - "unit": "%" - } - ] - }, - { - "title": "Composition of Cathode", - "composition": [ - { - "label": "Lithium", - "value": 20, - "unit": "%" - }, - { - "label": "Nickel", - "value": 20, - "unit": "%" - }, - { - "label": "Cobalt", - "value": 20, - "unit": "%" - }, - { - "label": "Aluminium", - "value": 30, - "unit": "%" - }, - { - "label": "Carbon black", - "value": 10, - "unit": "%" - } - ] - } - ] -} +{ + "title": "NCA", + "composition": [ + { + "title": "Composition of Andode", + "composition": [ + { + "label": "SiO2-C", + "value": 50, + "unit": "%" + }, + { + "label": "Styren butadien", + "value": 50, + "unit": "%" + } + ] + }, + { + "title": "Composition of Cathode", + "composition": [ + { + "label": "Lithium", + "value": 20, + "unit": "%" + }, + { + "label": "Nickel", + "value": 20, + "unit": "%" + }, + { + "label": "Cobalt", + "value": 20, + "unit": "%" + } + ] + } + ] +} \ No newline at end of file diff --git a/dpp-frontend/src/translations/de.json b/dpp-frontend/src/translations/de.json index d92b4fddb..d113a1181 100644 --- a/dpp-frontend/src/translations/de.json +++ b/dpp-frontend/src/translations/de.json @@ -1,430 +1,497 @@ -{ - "header": { - "helpBtn": "Hilfe", - "helpTooltip": "Hier können Sie Hilfe erhalten, wenn Sie mehr über Catena-X wissen müssen", - "signOut": "Abmelden" - }, - "searchView": { - "title": "Catena-X Batteriepass", - "welcomeMessage": "Der Begriff 'Batteriepass' bezieht sich auf ein digitales Dokument, das wesentliche Informationen über eine Batterie enthält, insbesondere im Kontext von Elektrofahrzeugen (EVs). Dieses Dokument umfasst Details über den Hersteller der Batterie, Spezifikationen, Leistungsmerkmale, Gesundheitszustand und Lebenszyklusdaten. Der Zweck eines Batteriepasses besteht darin, eine ordnungsgemäße Wartung, Instandhaltung und Recycling der Batterie zu erleichtern, sowie die Rückverfolgbarkeit und Konformität zu ermöglichen.", - "errorCameraOff": "Ihre Kamera ist ausgeschaltet.", - "errorTypeID": "Schalten Sie sie ein oder geben Sie die ID ein.", - "findOutMore": "Möchten Sie mehr erfahren? Lesen Sie unseren", - "guide": "Einsteiger-Leitfaden", - "cameraError": { - "NotAllowedError": "FEHLER: Sie müssen die Kamera-Zugriffsberechtigung erteilen", - "NotFoundError": "FEHLER: keine Kamera auf diesem Gerät", - "NotSupportedError": "FEHLER: Sichere Umgebung erforderlich (HTTPS, localhost)", - "NotReadableError": "FEHLER: Wird die Kamera bereits verwendet?", - "OverconstrainedError": "FEHLER: installierte Kameras sind nicht geeignet", - "StreamApiNotSupportedError": "FEHLER: Stream-API wird in diesem Browser nicht unterstützt", - "InsecureContextError": "FEHLER: Kamerazugriff ist nur in sicherer Umgebung erlaubt. Verwenden Sie HTTPS oder localhost anstelle von HTTP." - } - }, - "passportView": { - "policyAgreement": { - "title": "Wählen Sie eine Richtlinie aus:", - "contractId": "Vertrags-ID:", - "policy": "Richtlinie", - "type": "Typ", - "decline": "Ablehnen", - "agree": "Zustimmen", - "details": { - "moreDetails": "Weitere Details", - "lessDetails": "Weniger Details" - }, - "declineModal": { - "question": "Sind Sie sicher, dass Sie ablehnen möchten?", - "homepage": "Dies bringt Sie zurück zur Startseite", - "cancel": "Abbrechen", - "confirm": "Ja, Ablehnen" - } - }, - "dpp": "Digitaler Produkt Pass", - "bpp": "Batterie Pass", - "tpp": "Getriebe Pass", - "batteryComponentsNames": { - "generalInformation": "Allgemeine Informationen", - "stateOfBattery": "Zustand der Batterie", - "components": "Komponenten", - "batteryComposition": "Batteriezusammensetzung", - "cellChemistry": "Zellenchemie", - "electrochemicalProperties": "Elektrochemische Eigenschaften", - "documents": "Dokumente", - "exchange": "Austausch" - }, - "dppComponentsNames": { - "typology": "Typologie", - "metadata": "Metadaten", - "characteristics": "Merkmale", - "components": "Komponenten", - "commercial": "Kommerziell", - "identification": "Identifikation", - "sources": "Quellen", - "handling": "Handhabung", - "additionalData": "Zusätzliche Daten", - "sustainability": "Nachhaltigkeit", - "operation": "Betrieb", - "exchange": "Austausch" - }, - "tppComponentsNames": { - "productSpecificParameters": "Produktspezifische Parameter", - "intructions": "Anleitungen", - "sparePartSupplier": "Ersatzteil-Lieferant", - "components": "Komponenten", - "stateOfHealth": "Zustand der Gesundheit", - "identification": "Identifikation", - "generalInformation": "Allgemeine Informationen", - "sustainability": "Nachhaltigkeit", - "exchange": "Austausch" - } - }, - "home": { - "welcome": "Willkommen", - "home": "Startseite" - }, - "footer": { - "help": "Hilfe", - "contact": "Kontakt", - "imprint": "Impressum", - "privacy": "Datenschutz", - "terms": "Nutzungsbedingungen", - "cookies": "Cookies", - "thirdParty": "Lizenzen Dritter", - "legal": "Rechtlicher Hinweis", - "license": "Lizenz: Apache-2.0", - "licensePath": "Lizenzpfad: ", - "viewLicense": "Lizenzdatei ansehen", - "notice": "HINWEIS: ", - "viewNotice": "Hinweisdatei ansehen", - "source": "Quell-URL: ", - "commit": "Commit-ID: ", - "copyright": "Urheberrecht © Catena-X Automotive Network." - }, - "searchInput": { - "search": "Suchen", - "passportId": "Pass-ID eingeben" - }, - "barChart": { - "noData": "Keine Daten" - }, - "batteryCards": { - "titleGeneral": "ALLGEMEIN", - "labelGeneral": "Typ", - "secondLabelGeneral": "Modell", - "titlePerformance": "LEISTUNG", - "labelPerformance": "Nennkapazität", - "secondLabelPerformance": "Modell", - "descriptionPerformanceTitle": "Leistung", - "descriptionPerformanceValue": "Beschreibung der Leistung", - "titleHealth": "GESUNDHEIT", - "labelHealth": "Zustand der Gesundheit", - "secondLabelHealth": "Ladezyklen", - "descriptionHealthTitle": "Gesundheit", - "descriptionHealthValue": "Beschreibung der Gesundheit", - "titleSustainability": "NACHHALTIGKEIT", - "secondLabelSustainability": "CO2e/kWh", - "descriptionHSustainabilityTitle": "Nachhaltigkeit", - "descriptionSustainabilityValue": "Beschreibung der Nachhaltigkeit", - "chargingCycles": "Ladezyklen" - }, - "generalCards": { - "titleGeneral": "ALLGEMEIN", - "productName": "Produktname", - "productType": "Produkttyp", - "titleManufacturing": "HERSTELLUNG", - "manufacturerId": "Hersteller-ID", - "dateOfManufacturing": "Herstellungsdatum", - "descriptionManufacturingTitle": "Herstellung", - "descriptionManufacturingValue": "Beschreibung der Herstellung", - "titleAspectVersion": "ASPEKTVERSION", - "currentVersion": "Aktuelle Version", - "issued": "Ausgestellt", - "descriptionAspectVersionTitle": "Aspektversion", - "descriptionAspectVersionValue": "Beschreibung der Aspektversion", - "titleSustainability": "NACHHALTIGKEIT", - "totalCo2Footprint": "Gesamter CO2-Fußabdruck", - "warrantyPeriod": "Garantiezeitraum", - "tCo2Total": "t CO2 Gesamt", - "months": "Monate", - "descriptionSustainabilityTitle": "Nachhaltigkeit", - "descriptionSustainabilityValue": "Beschreibung der Nachhaltigkeit" - }, - "transmissionCards": { - "matrixCode": "Matrixcode", - "parameters": "Spezifische Parameter", - "driveType": "Antriebstyp", - "oilType": "Öltyp" - }, - "passportHeader": { - "backBtn": "Zurück" - }, - "field": { - "tempRange": "Temperaturbereich:", - "to": "bis", - "referenceTest": "Referenztest:" - }, - "recursiveTree": { - "notAvailable": "Nicht verfügbar" - }, - "dialog": { - "description": "Beschreibung", - "noDescription": "Keine Beschreibung" - }, - "section": { - "noContent": "Entschuldigung, kein Inhalt" - }, - "error": { - "404NotFound": "404 Nicht gefunden", - "somethingWentWrong": "Hoppla, etwas ist schiefgelaufen...", - "internalError": "Der Server hat einen internen Fehler oder eine Fehlkonfiguration festgestellt und konnte Ihre Anfrage nicht bearbeiten.", - "contactYourAdmin": "Bitte kontaktieren Sie Ihren Administrator", - "adminExample": "admin@beispiel.com", - "reload": "Seite neu laden", - "homepage": "Startseite" - }, - "loading": { - "assetId": "Anlage-ID: ", - "registrySearch": "Register Suche", - "searching": "Suche...", - "registriesAvailable": "Register verfügbar", - "contractSearch": "Vertragssuche", - "contractAvailable": "Vertrag verfügbar", - "contractNegotiation": "Vertragsverhandlung", - "negotiating": "Verhandlung...", - "contractStatus": "Vertragsstatus: ", - "contractTransfer": "Vertragsübertragung", - "transferring": "Übertragung...", - "transferCompleted": "Übertragung abgeschlossen", - "passportRetrieval": "Passabruf", - "retrieving": "Abruf... ", - "createdProcess": "Erstellte Prozess-ID: ", - "contractId": "Vertrags-ID: " - }, - "sections": { - "productSpecificParameters": { - "torqueConverter": "Drehmomentwandler", - "driveType": "Antriebstyp", - "oilType": "Öltyp", - "spreading": "Verbreitung", - "torque": "Drehmoment", - "power": "Leistung", - "gear": "Gang", - "ratio": "Verhältnis", - "speed": "Geschwindigkeit", - "standardGearRatio": "Standardübersetzungsverhältnis", - "speedResistance": "Geschwindigkeitswiderstand", - "oilCapacity": "Ölkapazität", - "electricPerformance": "Elektrische Leistung" - }, - "instructions": { - "packagingInstructions": "Verpackungsanweisungen", - "transportationInstructions": "Transportanweisungen", - "dismantlingProcedure": "Demontageverfahren", - "safetyMeasures": "Sicherheitsmaßnahmen", - "vehicleDismantlingProcedure": "Fahrzeugdemontageverfahren" - }, - "sparePartsSupplier": { - "supplierContact": "Lieferantenkontakt", - "supplierId": "Lieferanten-ID", - "sparePartName": "Ersatzteilname" - }, - "stateOfHealth": { - "serviceHistory": "Serviceverlauf", - "expectedLifespan": "Erwartete Lebensdauer", - "remanufacturingDate": "Wiederherstellungsdatum", - "productStatusValue": "Produktstatuswert" - }, - "generalInformation": { - "additionalInformation": "Zusätzliche Informationen", - "productDimensions": "Abmessungen", - "productDescription": "Produktbeschreibung", - "productType": "Produkttyp", - "batteryId": "Batterie-ID", - "batteryIdDescriptionTitle": "Batterie-ID", - "batteryIdDescriptionValue": "Batterie-ID oder DMC, die Sie in Ihren Geräteeinstellungen finden können", - "batteryType": "Batterietyp", - "batteryModel": "Batteriemodell", - "warranty": "Garantie", - "dimensions": "Abmessungen der Batterie", - "weight": "Gewicht", - "dateOfManufacturing": "Herstellungsdatum", - "placeOfManufacturing": "Herstellungsort", - "datePlacedOnMarket": "Markteinführungsdatum", - "manufacturerInformation": "Herstellerinformationen", - "manufacturerContact": "Herstellerkontakt", - "cO2FootprintTotal": "CO2-Fußabdruck" - }, - "stateOfBattery": { - "stateOfHealth": "aktueller Zustand", - "cycleLifeTestCRate": "Zykluslebensdauertest C-Rate", - "stateOfCharge": "Ladezustand", - "cycleLifeTestDepthOfDischarge": "Tiefe der Entladung im Zykluslebensdauertest", - "expectedLifetime": "Erwartete Lebensdauer", - "temperatureRange": "Temperaturbereich (im Ruhezustand)", - "statusBattery": "Batterie-Status" - }, - "components": { - "searchForChild": "Die Suche nach verbauten Komponenten hat begonnen, dies kann eine Weile dauern...", - "noChild": "Keine verbauten Komponenten gefunden", - "somethingWentWrong": "Etwas ist bei der Suche nach Komponenten schiefgelaufen" - }, - "batteryComposition": { - "batteryComposites": "Hauptbestandteile der Batterie", - "criticalRawMaterials": "Kritische Rohstoffe" - }, - "cellChemistry": { - "electrolyteComposition": "Zusammensetzung des Elektrolyts", - "recyclateContent": "Recyclat-Anteil" - }, - "electrochemicalProperties": { - "capacity": "Kapazität", - "ratedCapacity": "Nennkapazität", - "capacityFade": "Kapazitätsverlust", - "capacityThresholdExhaustion": "Kapazitätsschwelle für Batterie-Erschöpfung", - "efficiency": "Effizienz", - "originalPowerCapability": "Ursprüngliche Leistungsfähigkeit", - "originalPowerCapabilityLimits": "Grenzen der ursprünglichen Leistungsfähigkeit", - "maximumAllowedBatteryPower": "Maximal zulässige Batterieenergie (MABE)", - "MABEvsMABP": "Verhältnis MABE zu MABP", - "powerCapabilityAt20Charge": "Leistungsfähigkeit bei 20% Ladung", - "powerCapabilityAt80Charge": "Leistungsfähigkeit bei 80% Ladung", - "powerFade": "Leistungsverlust", - "resistance": "Widerstand", - "packInternalResistance": "Interner Widerstand des Batteriepacks", - "packInternalResistanceIncrease": "Zunahme des internen Widerstands des Batteriepacks", - "cellInternalResistance": "Interner Widerstand der Zelle", - "voltage": "Spannung", - "nominalVoltage": "Nennspannung", - "maxVoltage": "Maximale Spannung", - "minVoltage": "Minimale Spannung" - }, - "exchange": { - "contract": "Vertrag", - "policy": "Richtlinie", - "distribution": "Verteilung", - "negotiation": "Verhandlung", - "context": "Kontext", - "negotiationRequest": "Verhandlungsanfrage", - "offer": "Angebot", - "transfer": "Übertragung", - "edcDataRequest": "EDC-Datenanfrage", - "transferRequest": "Übertragungsanfrage", - "id": "ID", - "type": "Typ", - "policyId": "Richtlinien-ID", - "distributionList": "Verteilungsliste", - "edcDescription": "EDC-Beschreibung", - "edcId": "EDC-ID", - "edcType": "EDC-Typ", - "edcProtocol": "EDC-Protokoll", - "protocol": "Protokoll", - "edcState": "EDC-Zustand", - "edcCounterPartyAddress": "EDC-Partner-Adresse", - "edcContractAgreementId": "EDC-Vertragsvereinbarungs-ID", - "connectorId": "Connector-ID", - "providerId": "Anbieter-ID", - "offerDetail": "Angebotsdetails", - "transferId": "Übertragungs-ID", - "transferType": "Übertragungstyp", - "transferState": "Übertragungszustand", - "edcTimestamp": "EDC-Zeitstempel", - "edcDataRequestId": "EDC-Datenanfrage-ID", - "edcReceiverHttpEndpoint": "EDC-Empfänger HTTP-Endpunkt", - "assetId": "Anlagen-ID", - "connectorAddress": "Connector-Adresse", - "contractId": "Vertrags-ID", - "dataDestination": "Datendestination", - "reciverHttpEndpoint": "Empfänger-HTTP-Endpunkt", - "contentType": "Inhaltstyp" - }, - "characteristics": { - "physicalDimensionsProperty": "Eigenschaft der physischen Abmessungen", - "weight": "Gewicht", - "lifespan": "Lebensdauer", - "energyCapacity": "Energiekapazität", - "voltage": "Spannung", - "physicalState": "Physischer Zustand", - "weightOrVolume": "Gewicht oder Volumen", - "diameter": "Durchmesser", - "grossWeight": "Bruttogewicht", - "grossVolume": "Bruttovolumen" - }, - "commercial": { - "placedOnMarket": "Markteinführung", - "warranty": "Garantie" - }, - "handling": { - "maintenanceHistory": "Wartungshistorie", - "spareParts": "Ersatzteile", - "substanceOfConcern": "Besorgniserregende Substanz", - "producerId": "Produzenten-ID", - "partName": "Teilname", - "partGtin": "Teil-GTIN", - "type": "Typ", - "location": "Standort", - "unit": "Einheit", - "concentrationMax": "Maximale Konzentration", - "concentrationMin": "Minimale Konzentration", - "exemption": "Ausnahme", - "idType": "ID-Typ", - "id": "ID" - }, - "identification": { - "gtin": "GTIN", - "manufacturerId": "Hersteller-ID", - "dataMatrixCode": "Data-Matrix-Code" - }, - "metadata": { - "predecessor": "Vorgänger", - "legitimization": "Legitimation", - "identification": "Identifikation", - "issueDate": "Ausgabedatum", - "version": "Version", - "validityDate": "Gültigkeitsdatum", - "customerPartId": "Kundenteil-ID", - "manufacturerPartId": "Herstellerteil-ID", - "status": "Status", - "expirationDate": "Ablaufdatum" - }, - "operation": { - "importer": "Importeur-ID", - "importerEori": "Importer-EORI", - "manufacturerId": "Hersteller-ID", - "facilityId": "Anlagen-ID", - "manufacturingDate": "Herstellungsdatum" - }, - "serialization": { - "manufacturingInformation": "Herstellungsinformationen", - "date": "Datum", - "country": "Land", - "registration": "Registrierung", - "customerPartId": "Kundenteil-ID", - "manufacturerPartId": "Herstellerteil-ID", - "quantity": "Menge" - }, - "sustainability": { - "state": "Zustand", - "material": "Material", - "carbonContentTotal": "Gesamtkohlenstoffgehalt", - "crossSectoralStandard": "Sektorenübergreifender Standard", - "substancesOfConcern": "Besorgniserregende Stoffe", - "criticalRawMaterials": "Kritische Rohstoffe", - "co2FootprintTotal": "Gesamter CO₂-Fußabdruck", - "operator": "Betreiber", - "ruleNames": "Regelnamen", - "otherOperatorName": "Name des anderen Betreibers", - "productOrSectorSpecificRules": "Produkt- oder sektorspezifische Regeln", - "critical": "Kritisch" - }, - "typology": { - "name": "Name", - "shortName": "Kurzname", - "longName": "Langname", - "definition": "Definition", - "code": "Code", - "nameAtManufacturer": "Name beim Hersteller", - "nameAtCustomer": "Name beim Kunden" - } - } -} +{ + "header": { + "helpBtn": "Hilfe", + "helpTooltip": "Hier können Sie Hilfe erhalten, wenn Sie mehr über Catena-X wissen müssen", + "signOut": "Abmelden" + }, + "searchView": { + "title": "Catena-X Batteriepass", + "welcomeMessage": "Der Begriff 'Batteriepass' bezieht sich auf ein digitales Dokument, das wesentliche Informationen über eine Batterie enthält, insbesondere im Kontext von Elektrofahrzeugen (EVs). Dieses Dokument umfasst Details über den Hersteller der Batterie, Spezifikationen, Leistungsmerkmale, Gesundheitszustand und Lebenszyklusdaten. Der Zweck eines Batteriepasses besteht darin, eine ordnungsgemäße Wartung, Instandhaltung und Recycling der Batterie zu erleichtern, sowie die Rückverfolgbarkeit und Konformität zu ermöglichen.", + "errorCameraOff": "Ihre Kamera ist ausgeschaltet.", + "errorTypeID": "Schalten Sie sie ein oder geben Sie die ID ein.", + "findOutMore": "Möchten Sie mehr erfahren? Lesen Sie unseren", + "guide": "Einsteiger-Leitfaden", + "cameraError": { + "NotAllowedError": "FEHLER: Sie müssen die Kamera-Zugriffsberechtigung erteilen", + "NotFoundError": "FEHLER: keine Kamera auf diesem Gerät", + "NotSupportedError": "FEHLER: Sichere Umgebung erforderlich (HTTPS, localhost)", + "NotReadableError": "FEHLER: Wird die Kamera bereits verwendet?", + "OverconstrainedError": "FEHLER: installierte Kameras sind nicht geeignet", + "StreamApiNotSupportedError": "FEHLER: Stream-API wird in diesem Browser nicht unterstützt", + "InsecureContextError": "FEHLER: Kamerazugriff ist nur in sicherer Umgebung erlaubt. Verwenden Sie HTTPS oder localhost anstelle von HTTP." + } + }, + "passportView": { + "policyAgreement": { + "title": "Wählen Sie eine Richtlinie aus:", + "contractId": "Vertrags-ID:", + "policy": "Richtlinie", + "type": "Typ", + "decline": "Ablehnen", + "agree": "Zustimmen", + "details": { + "moreDetails": "Weitere Details", + "lessDetails": "Weniger Details" + }, + "declineModal": { + "question": "Sind Sie sicher, dass Sie ablehnen möchten?", + "homepage": "Dies bringt Sie zurück zur Startseite", + "cancel": "Abbrechen", + "confirm": "Ja, Ablehnen" + } + }, + "dpp": "Digitaler Produkt Pass", + "bpp": "Batterie Pass", + "tpp": "Getriebe Pass", + "batteryComponentsNames": { + "generalInformation": "Allgemeine Informationen", + "stateOfBattery": "Zustand der Batterie", + "components": "Komponenten", + "batteryComposition": "Batteriezusammensetzung", + "cellChemistry": "Zellenchemie", + "electrochemicalProperties": "Elektrochemische Eigenschaften", + "documents": "Dokumente", + "exchange": "Austausch" + }, + "dppComponentsNames": { + "typology": "Typologie", + "metadata": "Metadaten", + "characteristics": "Merkmale", + "components": "Komponenten", + "commercial": "Kommerziell", + "identification": "Identifikation", + "sources": "Quellen", + "handling": "Handhabung", + "additionalData": "Zusätzliche Daten", + "sustainability": "Nachhaltigkeit", + "operation": "Betrieb", + "exchange": "Austausch", + "performance": "Leistung", + "materials": "Materialien", + "safety": "Sicherheit", + "conformity": "Konformität" + }, + "tppComponentsNames": { + "productSpecificParameters": "Produktspezifische Parameter", + "intructions": "Anleitungen", + "sparePartSupplier": "Ersatzteil-Lieferant", + "components": "Komponenten", + "stateOfHealth": "Zustand der Gesundheit", + "identification": "Identifikation", + "generalInformation": "Allgemeine Informationen", + "sustainability": "Nachhaltigkeit", + "exchange": "Austausch" + } + }, + "home": { + "welcome": "Willkommen", + "home": "Startseite" + }, + "footer": { + "help": "Hilfe", + "contact": "Kontakt", + "imprint": "Impressum", + "privacy": "Datenschutz", + "terms": "Nutzungsbedingungen", + "cookies": "Cookies", + "thirdParty": "Lizenzen Dritter", + "legal": "Rechtlicher Hinweis", + "license": "Lizenz: Apache-2.0", + "licensePath": "Lizenzpfad: ", + "viewLicense": "Lizenzdatei ansehen", + "notice": "HINWEIS: ", + "viewNotice": "Hinweisdatei ansehen", + "source": "Quell-URL: ", + "commit": "Commit-ID: ", + "copyright": "Urheberrecht © Catena-X Automotive Network." + }, + "searchInput": { + "search": "Suchen", + "passportId": "Pass-ID eingeben" + }, + "barChart": { + "noData": "Keine Daten" + }, + "batteryCards": { + "titleGeneral": "ALLGEMEIN", + "labelGeneral": "Typ", + "secondLabelGeneral": "Kategorie", + "titlePerformance": "LEISTUNG", + "labelPerformance": "Nennkapazität", + "secondLabelPerformance": "Strom", + "descriptionPerformanceTitle": "Leistung", + "descriptionPerformanceValue": "Beschreibung der Leistung", + "titleHealth": "GESUNDHEIT", + "labelHealth": "Zustand der Gesundheit", + "secondLabelHealth": "Ladezyklen", + "descriptionHealthTitle": "Gesundheit", + "descriptionHealthValue": "Beschreibung der Gesundheit", + "titleSustainability": "NACHHALTIGKEIT", + "secondLabelSustainability": "CO2e/kWh", + "descriptionHSustainabilityTitle": "Nachhaltigkeit", + "descriptionSustainabilityValue": "Beschreibung der Nachhaltigkeit", + "chargingCycles": "Ladezyklen" + }, + "generalCards": { + "titleGeneral": "ALLGEMEIN", + "productName": "Produktname", + "productType": "Produkttyp", + "titleManufacturing": "HERSTELLUNG", + "manufacturerId": "Hersteller-ID", + "dateOfManufacturing": "Herstellungsdatum", + "descriptionManufacturingTitle": "Herstellung", + "descriptionManufacturingValue": "Beschreibung der Herstellung", + "titleAspectVersion": "ASPEKTVERSION", + "currentVersion": "Aktuelle Version", + "issued": "Ausgestellt", + "descriptionAspectVersionTitle": "Aspektversion", + "descriptionAspectVersionValue": "Beschreibung der Aspektversion", + "titleSustainability": "NACHHALTIGKEIT", + "totalCo2Footprint": "Gesamter CO2-Fußabdruck", + "warrantyPeriod": "Garantiezeitraum", + "tCo2Total": "t CO2 Gesamt", + "months": "Monate", + "descriptionSustainabilityTitle": "Nachhaltigkeit", + "descriptionSustainabilityValue": "Beschreibung der Nachhaltigkeit" + }, + "transmissionCards": { + "matrixCode": "Matrixcode", + "parameters": "Spezifische Parameter", + "driveType": "Antriebstyp", + "oilType": "Öltyp" + }, + "passportHeader": { + "backBtn": "Zurück" + }, + "field": { + "tempRange": "Temperaturbereich:", + "to": "bis", + "referenceTest": "Referenztest:" + }, + "recursiveTree": { + "notAvailable": "Nicht verfügbar" + }, + "dialog": { + "description": "Beschreibung", + "noDescription": "Keine Beschreibung" + }, + "section": { + "noContent": "Entschuldigung, kein Inhalt" + }, + "error": { + "404NotFound": "404 Nicht gefunden", + "somethingWentWrong": "Hoppla, etwas ist schiefgelaufen...", + "internalError": "Der Server hat einen internen Fehler oder eine Fehlkonfiguration festgestellt und konnte Ihre Anfrage nicht bearbeiten.", + "contactYourAdmin": "Bitte kontaktieren Sie Ihren Administrator", + "adminExample": "admin@beispiel.com", + "reload": "Seite neu laden", + "homepage": "Startseite" + }, + "loading": { + "assetId": "Anlage-ID: ", + "registrySearch": "Register Suche", + "searching": "Suche...", + "registriesAvailable": "Register verfügbar", + "contractSearch": "Vertragssuche", + "contractAvailable": "Vertrag verfügbar", + "contractNegotiation": "Vertragsverhandlung", + "negotiating": "Verhandlung...", + "contractStatus": "Vertragsstatus: ", + "contractTransfer": "Vertragsübertragung", + "transferring": "Übertragung...", + "transferCompleted": "Übertragung abgeschlossen", + "passportRetrieval": "Passabruf", + "retrieving": "Abruf... ", + "createdProcess": "Erstellte Prozess-ID: ", + "contractId": "Vertrags-ID: " + }, + "sections": { + "performance": { + "rated": "Bewertet", + "depthOfDischarge": "Entladetiefe", + "temperature": "Temperatur", + "50PercentLife": "50% Lebensdauer", + "initial": "Anfangs", + "selfDischargingRate": "Selbstentladerate", + "lowerTemperature": "Niedrigere Temperatur", + "upperTemperature": "Höhere Temperatur", + "lifetime": "Lebensdauer", + "dynamic": "Dynamisch", + "appliedDischargeRate": "Angewandte Entladerate", + "cycleLifeTesting": "Lebensdauertest", + "cycles": "Zyklen", + "expectedYears": "Erwartete Jahre", + "at20SoC": "Bei 20°C", + "at80SoC": "Bei 80°C", + "power": "Leistung", + "cell": "Zelle", + "pack": "Pack", + "module": "Modul", + "voltage": "Spannung", + "voltageMin": "Minimale Spannung", + "voltageMax": "Maximale Spannung", + "voltageNominal": "Nennspannung", + "energy": "Energie", + "capacity": "Kapazität", + "thresholdExhaustion": "Erschöpfungsschwelle", + "roundTripEfficiency": "Rundum-Wirkungsgrad", + "remaining": "Verbleibende Leistung", + "fade": "Leistungsabfall", + "operatingEnvironment": "Betriebsumgebung", + "stateOfCharge": "Ladezustand", + "performanceDocument": "Leistungsdokumentation", + "fullCycles": "Volle Zyklen", + "negativeEvents": "Negative Ereignisse", + "resistance": "Widerstand", + "remainingCell": "Verbleibender Zellwiderstand", + "remainingPack": "Verbleibender Packwiderstand", + "remainingModule": "Verbleibender Modulwiderstand", + "increaseCell": "Zunehmender Zellwiderstand", + "increasePack": "Zunehmender Packwiderstand", + "increaseModule": "Zunehmender Modulwiderstand", + "capacityFade": "Kapazitätsverlust", + "throughput": "Durchsatz", + "remainingEnergy": "Verbleibende Energie", + "soce": "Ladezustandsschätzung" + }, + "productSpecificParameters": { + "torqueConverter": "Drehmomentwandler", + "driveType": "Antriebstyp", + "oilType": "Öltyp", + "spreading": "Verbreitung", + "torque": "Drehmoment", + "power": "Leistung", + "gear": "Gang", + "ratio": "Verhältnis", + "speed": "Geschwindigkeit", + "standardGearRatio": "Standardübersetzungsverhältnis", + "speedResistance": "Geschwindigkeitswiderstand", + "oilCapacity": "Ölkapazität", + "electricPerformance": "Elektrische Leistung" + }, + "instructions": { + "packagingInstructions": "Verpackungsanweisungen", + "transportationInstructions": "Transportanweisungen", + "dismantlingProcedure": "Demontageverfahren", + "safetyMeasures": "Sicherheitsmaßnahmen", + "vehicleDismantlingProcedure": "Fahrzeugdemontageverfahren" + }, + "sparePartsSupplier": { + "supplierContact": "Lieferantenkontakt", + "supplierId": "Lieferanten-ID", + "sparePartName": "Ersatzteilname" + }, + "stateOfHealth": { + "serviceHistory": "Serviceverlauf", + "expectedLifespan": "Erwartete Lebensdauer", + "remanufacturingDate": "Wiederherstellungsdatum", + "productStatusValue": "Produktstatuswert" + }, + "generalInformation": { + "additionalInformation": "Zusätzliche Informationen", + "productDimensions": "Abmessungen", + "productDescription": "Produktbeschreibung", + "productType": "Produkttyp", + "batteryId": "Batterie-ID", + "batteryIdDescriptionTitle": "Batterie-ID", + "batteryIdDescriptionValue": "Batterie-ID oder DMC, die Sie in Ihren Geräteeinstellungen finden können", + "batteryType": "Batterietyp", + "batteryModel": "Batteriemodell", + "warranty": "Garantie", + "dimensions": "Abmessungen der Batterie", + "weight": "Gewicht", + "dateOfManufacturing": "Herstellungsdatum", + "placeOfManufacturing": "Herstellungsort", + "datePlacedOnMarket": "Markteinführungsdatum", + "manufacturerInformation": "Herstellerinformationen", + "manufacturerContact": "Herstellerkontakt", + "cO2FootprintTotal": "CO2-Fußabdruck" + }, + "stateOfBattery": { + "stateOfHealth": "aktueller Zustand", + "cycleLifeTestCRate": "Zykluslebensdauertest C-Rate", + "stateOfCharge": "Ladezustand", + "cycleLifeTestDepthOfDischarge": "Tiefe der Entladung im Zykluslebensdauertest", + "expectedLifetime": "Erwartete Lebensdauer", + "temperatureRange": "Temperaturbereich (im Ruhezustand)", + "statusBattery": "Batterie-Status" + }, + "components": { + "searchForChild": "Die Suche nach verbauten Komponenten hat begonnen, dies kann eine Weile dauern...", + "noChild": "Keine verbauten Komponenten gefunden", + "somethingWentWrong": "Etwas ist bei der Suche nach Komponenten schiefgelaufen" + }, + "batteryComposition": { + "batteryComposites": "Hauptbestandteile der Batterie", + "criticalRawMaterials": "Kritische Rohstoffe" + }, + "cellChemistry": { + "electrolyteComposition": "Zusammensetzung des Elektrolyts", + "recyclateContent": "Recyclat-Anteil" + }, + "electrochemicalProperties": { + "capacity": "Kapazität", + "ratedCapacity": "Nennkapazität", + "capacityFade": "Kapazitätsverlust", + "capacityThresholdExhaustion": "Kapazitätsschwelle für Batterie-Erschöpfung", + "efficiency": "Effizienz", + "originalPowerCapability": "Ursprüngliche Leistungsfähigkeit", + "originalPowerCapabilityLimits": "Grenzen der ursprünglichen Leistungsfähigkeit", + "maximumAllowedBatteryPower": "Maximal zulässige Batterieenergie (MABE)", + "MABEvsMABP": "Verhältnis MABE zu MABP", + "powerCapabilityAt20Charge": "Leistungsfähigkeit bei 20% Ladung", + "powerCapabilityAt80Charge": "Leistungsfähigkeit bei 80% Ladung", + "powerFade": "Leistungsverlust", + "resistance": "Widerstand", + "packInternalResistance": "Interner Widerstand des Batteriepacks", + "packInternalResistanceIncrease": "Zunahme des internen Widerstands des Batteriepacks", + "cellInternalResistance": "Interner Widerstand der Zelle", + "voltage": "Spannung", + "nominalVoltage": "Nennspannung", + "maxVoltage": "Maximale Spannung", + "minVoltage": "Minimale Spannung" + }, + "exchange": { + "contract": "Vertrag", + "policy": "Richtlinie", + "distribution": "Verteilung", + "negotiation": "Verhandlung", + "context": "Kontext", + "negotiationRequest": "Verhandlungsanfrage", + "offer": "Angebot", + "transfer": "Übertragung", + "edcDataRequest": "EDC-Datenanfrage", + "transferRequest": "Übertragungsanfrage", + "id": "ID", + "type": "Typ", + "policyId": "Richtlinien-ID", + "distributionList": "Verteilungsliste", + "edcDescription": "EDC-Beschreibung", + "edcId": "EDC-ID", + "edcType": "EDC-Typ", + "edcProtocol": "EDC-Protokoll", + "protocol": "Protokoll", + "edcState": "EDC-Zustand", + "edcCounterPartyAddress": "EDC-Partner-Adresse", + "edcContractAgreementId": "EDC-Vertragsvereinbarungs-ID", + "connectorId": "Connector-ID", + "providerId": "Anbieter-ID", + "offerDetail": "Angebotsdetails", + "transferId": "Übertragungs-ID", + "transferType": "Übertragungstyp", + "transferState": "Übertragungszustand", + "edcTimestamp": "EDC-Zeitstempel", + "edcDataRequestId": "EDC-Datenanfrage-ID", + "edcReceiverHttpEndpoint": "EDC-Empfänger HTTP-Endpunkt", + "assetId": "Anlagen-ID", + "connectorAddress": "Connector-Adresse", + "contractId": "Vertrags-ID", + "dataDestination": "Datendestination", + "reciverHttpEndpoint": "Empfänger-HTTP-Endpunkt", + "contentType": "Inhaltstyp" + }, + "characteristics": { + "physicalDimensionsProperty": "Eigenschaft der physischen Abmessungen", + "weight": "Gewicht", + "lifespan": "Lebensdauer", + "energyCapacity": "Energiekapazität", + "voltage": "Spannung", + "physicalState": "Physischer Zustand", + "weightOrVolume": "Gewicht oder Volumen", + "diameter": "Durchmesser", + "grossWeight": "Bruttogewicht", + "grossVolume": "Bruttovolumen", + "warranty": "Garantie" + }, + "commercial": { + "placedOnMarket": "Markteinführung", + "warranty": "Garantie" + }, + "handling": { + "manufacturerPartId": "Herstellerteilenummer", + "nameAtManufacturer": "Name beim Hersteller", + "maintenanceHistory": "Wartungshistorie", + "spareParts": "Ersatzteile", + "substanceOfConcern": "Besorgniserregende Substanz", + "producerId": "Produzenten-ID", + "partName": "Teilname", + "partGtin": "Teil-GTIN", + "type": "Typ", + "location": "Standort", + "unit": "Einheit", + "concentrationMax": "Maximale Konzentration", + "concentrationMin": "Minimale Konzentration", + "exemption": "Ausnahme", + "idType": "ID-Typ", + "id": "ID" + }, + "identification": { + "gtin": "GTIN", + "manufacturerId": "Hersteller-ID", + "dataMatrixCode": "Data-Matrix-Code" + }, + "metadata": { + "predecessor": "Vorgänger", + "legitimization": "Legitimation", + "identification": "Identifikation", + "issueDate": "Ausgabedatum", + "version": "Version", + "validityDate": "Gültigkeitsdatum", + "customerPartId": "Kundenteil-ID", + "manufacturerPartId": "Herstellerteil-ID", + "status": "Status", + "expirationDate": "Ablaufdatum" + }, + "operation": { + "intoServiceDate": "Inbetriebnahmedatum", + "importer": "Importeur-ID", + "importerEori": "Importer-EORI", + "manufacturerId": "Hersteller-ID", + "facilityId": "Anlagen-ID", + "manufacturingDate": "Herstellungsdatum" + }, + "serialization": { + "manufacturingInformation": "Herstellungsinformationen", + "date": "Datum", + "country": "Land", + "registration": "Registrierung", + "customerPartId": "Kundenteil-ID", + "manufacturerPartId": "Herstellerteil-ID", + "quantity": "Menge" + }, + "sustainability": { + "state": "Zustand", + "status": "Status", + "carbonFootprint": "CO2-Fußabdruck", + "performanceClass": "Leistungsklasse", + "type": "Typ", + "rulebook": "Regelwerk", + "manufacturingPlant": "Produktionsstätte", + "declaration": "Erklärung", + "material": "Material", + "carbonContentTotal": "Gesamtkohlenstoffgehalt", + "crossSectoralStandard": "Sektorenübergreifender Standard", + "substancesOfConcern": "Besorgniserregende Stoffe", + "criticalRawMaterials": "Kritische Rohstoffe", + "co2FootprintTotal": "Gesamter CO₂-Fußabdruck", + "operator": "Betreiber", + "ruleNames": "Regelnamen", + "otherOperatorName": "Name des anderen Betreibers", + "productOrSectorSpecificRules": "Produkt- oder sektorspezifische Regeln", + "critical": "Kritisch" + }, + "typology": { + "name": "Name", + "shortName": "Kurzname", + "longName": "Langname", + "definition": "Definition", + "code": "Code", + "nameAtManufacturer": "Name beim Hersteller", + "nameAtCustomer": "Name beim Kunden" + }, + "safety": { + "fireClass": "Brandklasse", + "media": "Medien" + } + } +} \ No newline at end of file diff --git a/dpp-frontend/src/translations/en.json b/dpp-frontend/src/translations/en.json index 2997c9d4b..77ec6e945 100644 --- a/dpp-frontend/src/translations/en.json +++ b/dpp-frontend/src/translations/en.json @@ -1,430 +1,497 @@ -{ - "header": { - "helpBtn": "Help", - "helpTooltip": " Here you can get help if you need to know more about Catena-X", - "signOut": "Sign Out" - }, - "searchView": { - "title": "Catena-X Battery Passport", - "welcomeMessage": "The term \"Battery Passport\" refers to a digital document that contains essential information about a battery, specifically in the context of electric vehicles (EVs). This document includes details about the battery's manufacturer, specifications, performance characteristics, health status, and lifecycle data. The purpose of a Battery Passport is to facilitate proper maintenance, servicing, and recycling of the battery, while also enabling traceability and compliance.", - "errorCameraOff": "Your camera is off.", - "errorTypeID": "Turn it on or type the ID.", - "findOutMore": "Want to find out more? Read our Get", - "guide": "Started Guide", - "cameraError": { - "NotAllowedError": "ERROR: you need to grant camera access permission", - "NotFoundError": "ERROR: no camera on this device", - "NotSupportedError": "ERROR: secure context required (HTTPS, localhost)", - "NotReadableError": "ERROR: is the camera already in use?", - "OverconstrainedError": "ERROR: installed cameras are not suitable", - "StreamApiNotSupportedError": "ERROR: Stream API is not supported in this browser", - "InsecureContextError": "ERROR: Camera access is only permitted in secure context. Use HTTPS or localhost rather than HTTP." - } - }, - "passportView": { - "policyAgreement": { - "title": "Choose a policy:", - "contractId": "Contract ID:", - "policy": "Policy", - "type": "type", - "decline": "Decline", - "agree": "Agree", - "details": { - "moreDetails": "More details", - "lessDetails": "Less details" - }, - "declineModal": { - "question": "Are you sure you want to decline?", - "homepage": "This will take you back to the Homepage", - "cancel": "Cancel", - "confirm": "Yes, Decline" - } - }, - "dpp": "Digital Product Passport", - "bpp": "Battery Product Passport", - "tpp": "Transmission Product Passport", - "batteryComponentsNames": { - "generalInformation": "General Information", - "stateOfBattery": "State Of Battery", - "components": "Components", - "batteryComposition": "Battery Composition", - "cellChemistry": "Cell Chemistry", - "electrochemicalProperties": "Electrochemical Properties", - "documents": "Documents", - "exchange": "Exchange" - }, - "dppComponentsNames": { - "typology": "Typology", - "metadata": "Metadata", - "characteristics": "Characteristics", - "components": "Components", - "commercial": "Commercial", - "identification": "Identification", - "sources": "Sources", - "handling": "Handling", - "additionalData": "Additional Data", - "sustainability": "Sustainability", - "operation": "Operation", - "exchange": "Exchange" - }, - "tppComponentsNames": { - "productSpecificParameters": "Product Specific Parameters", - "instructions": "Instructions", - "sparePartSupplier": "Spare Part Supplier", - "components": "Components", - "stateOfHealth": "State of Health", - "identification": "Identification", - "generalInformation": "General Information", - "sustainability": "Sustainability", - "exchange": "Exchange" - } - }, - "home": { - "welcome": "Welcome", - "home": "Home" - }, - "footer": { - "help": "Help", - "contact": "Contact", - "imprint": "Imprint", - "privacy": "Privacy", - "terms": "Terms of Service", - "cookies": "Cookies", - "thirdParty": "Third Party Licenses", - "legal": "Legal notice", - "license": "License: Apache-2.0", - "licensePath": "Licence Path: ", - "viewLicense": "View License File", - "notice": "NOTICE: ", - "viewNotice": "View Notice File", - "source": "Source URL: ", - "commit": "Commit ID: ", - "copyright": "Copyright © Catena-X Automotive Network." - }, - "searchInput": { - "search": "Search", - "passportId": "Enter Passport ID" - }, - "barChart": { - "noData": "No data" - }, - "batteryCards": { - "titleGeneral": "GENERAL", - "labelGeneral": "Type", - "secondLabelGeneral": "Model", - "titlePerformance": "PERFORMANCE", - "labelPerformance": "Rated Capacity", - "secondLabelPerformance": "Model", - "descriptionPerformanceTitle": "Performance", - "descriptionPerformanceValue": "Description of the performance", - "titleHealth": "HEALTH", - "labelHealth": "State of Health (SoH)", - "secondLabelHealth": "Charging Cycles", - "descriptionHealthTitle": "Health", - "descriptionHealthValue": "Description of the health", - "titleSustainability": "SUSTAINABILITY", - "secondLabelSustainability": "CO2e/kWh", - "descriptionHSustainabilityTitle": "Sustainability", - "descriptionSustainabilityValue": "Description of the sustainability", - "chargingCycles": "Charging Cycles" - }, - "generalCards": { - "titleGeneral": "GENERAL", - "productName": "Product name", - "productType": "Product type", - "titleManufacturing": "MANUFACTURING", - "manufacturerId": "Manufacturer ID", - "dateOfManufacturing": "Date of Manufacturing", - "descriptionManufacturingTitle": "Manufacturing", - "descriptionManufacturingValue": "Description of the manufacturing", - "titleAspectVersion": "ASPECT VERSION", - "currentVersion": "Current version", - "issued": "Issued", - "descriptionAspectVersionTitle": "Aspect version", - "descriptionAspectVersionValue": "Description of the aspect version", - "titleSustainability": "SUSTAINABILITY", - "totalCo2Footprint": "Total CO2 footprint", - "warrantyPeriod": "Warranty period", - "tCo2Total": "t CO2 Total", - "months": "months", - "descriptionSustainabilityTitle": "Sustainability", - "descriptionSustainabilityValue": "Description of the Sustainability" - }, - "transmissionCards": { - "matrixCode": "Matrix code", - "parameters": "SPECIFIC PARAMETERS", - "driveType": "Drive type", - "oilType": "Oil type" - }, - "passportHeader": { - "backBtn": "Back" - }, - "field": { - "tempRange": "Temp range:", - "to": "to", - "referenceTest": "Reference test:" - }, - "recursiveTree": { - "notAvailable": "Not available" - }, - "dialog": { - "description": "Description", - "noDescription": "No description" - }, - "section": { - "noContent": "Sorry, no content" - }, - "error": { - "404NotFound": "404 Not Found", - "somethingWentWrong": "Oops, Something went wrong...", - "internalError": "The server encountered an internal error or misconfiguration and was unable to complete your request.", - "contactYourAdmin": "Please contact your admin", - "adminExample": "admin@example.com", - "reload": "Reload Page", - "homepage": "Homepage" - }, - "loading": { - "assetId": "Asset Id: ", - "registrySearch": "Registry Search", - "searching": "Searching...", - "registriesAvailable": "Registries available", - "contractSearch": "Contract Search", - "contractAvailable": "Contract available", - "contractNegotiation": "Contract Negotiation", - "negotiating": "Negotiating...", - "contractStatus": "Contract status: ", - "contractTransfer": "Contract Transfer", - "transferring": "Transferring...", - "transferCompleted": "Transfer completed", - "passportRetrieval": "Passport Retrieval", - "retrieving": "Retrieving... ", - "createdProcess": "Created Process ID: ", - "contractId": "Contract ID: " - }, - "sections": { - "instructions": { - "packagingInstructions": "Packaging instructions", - "transportationInstructions": "Transportation instructions", - "dismantlingProcedure": "Dismantling procedure", - "safetyMeasures": "Safety measures", - "vehicleDismantlingProcedure": "Vehicle dismantling procedure" - }, - "productSpecificParameters": { - "torqueConverter": "Torque converter", - "driveType": "Drive type", - "oilType": "Oil type", - "spreading": "Spreading", - "torque": "Torque", - "power": "Power", - "gear": "Gear", - "ratio": "Ratio", - "speed": "Speed", - "standardGearRatio": "Standard gear ratio", - "speedResistance": "Speed resistance", - "oilCapacity": "Oil capacity", - "electricPerformance": "Electric performance" - }, - "sparePartsSupplier": { - "supplierContact": "Supplier contact", - "supplierId": "Supplier id", - "sparePartName": "Spare part name" - }, - "stateOfHealth": { - "serviceHistory": "Service history", - "expectedLifespan": "Expected lifespan", - "remanufacturingDate": "Remanufacturing date", - "productStatusValue": "Product status value" - }, - "generalInformation": { - "additionalInformation": "Additional information", - "productDimensions": "Dimensions", - "productDescription": "Product description", - "productType": "Product type", - "batteryId": "Battery ID (DMC)", - "batteryIdDescriptionTitle": "Battery ID", - "batteryIdDescriptionValue": "Battery ID or DMC that you can find in your device settings", - "batteryType": "Battery Type", - "batteryModel": "Battery Model", - "warranty": "Warranty", - "dimensions": "Dimensions of the battery", - "weight": "Weight", - "dateOfManufacturing": "Date of Manufacture", - "placeOfManufacturing": "Place of Manufacturing", - "datePlacedOnMarket": "Date of placing on the market", - "manufacturerInformation": "Manufacturer Information", - "manufacturerContact": "Manufacturer Contact", - "cO2FootprintTotal": "CO2 Footprint" - }, - "stateOfBattery": { - "stateOfHealth": "State of health", - "cycleLifeTestCRate": "Cycle life test c rate", - "stateOfCharge": "State of charge", - "cycleLifeTestDepthOfDischarge": "Cycle life test depth of discharge", - "expectedLifetime": "Expected lifetime", - "temperatureRange": "Temperature range (idle state)", - "statusBattery": "Status battery" - }, - "components": { - "searchForChild": "The search for child components started, this may take a while...", - "noChild": "No child components found", - "somethingWentWrong": "Something went wrong while searching for child components" - }, - "batteryComposition": { - "batteryComposites": "Main Battery Composites", - "criticalRawMaterials": "Critical raw materials" - }, - "cellChemistry": { - "electrolyteComposition": "Composition of electrolyte", - "recyclateContent": "Recyclate Content Active Materials" - }, - "electrochemicalProperties": { - "capacity": "Capacity", - "ratedCapacity": "Rated capacity", - "capacityFade": "Capacity fade", - "capacityThresholdExhaustion": "Capacity threshold exhaustion", - "efficiency": "Efficiency", - "originalPowerCapability": "Original power capability", - "originalPowerCapabilityLimits": "Original power capability limits", - "maximumAllowedBatteryPower": "Maximum allowed battery energy (MABE)", - "MABEvsMABP": "Ratio MABE vs. MABP", - "powerCapabilityAt20Charge": "Power capability at 20 charge", - "powerCapabilityAt80Charge": "Power capability at 80 charge", - "powerFade": "Power fade", - "resistance": "Resistance", - "packInternalResistance": "Pack internal resistance", - "packInternalResistanceIncrease": "Pack internal resistance increase", - "cellInternalResistance": "Cell internal resistance", - "voltage": "Voltage", - "nominalVoltage": "Nominal voltage", - "maxVoltage": "Max voltage", - "minVoltage": "Min voltage" - }, - "exchange": { - "contract": "Contract", - "policy": "Policy", - "distribution": "Distribution", - "negotiation": "Negotiation", - "context": "Context", - "negotiationRequest": "Negotiation request", - "offer": "Offer", - "transfer": "Transfer", - "edcDataRequest": "EDC data request", - "transferRequest": "Transfer request", - "id": "ID", - "type": "Type", - "policyId": "Policy ID", - "distributionList": "Distribution List", - "edcDescription": "EDC description", - "edcId": "EDC ID", - "edcType": "EDC Type", - "edcProtocol": "EDC protocol", - "protocol": "Protocol", - "edcState": "EDC state", - "edcCounterPartyAddress": "EDC counter party address", - "edcContractAgreementId": "EDC contract agreement ID", - "connectorId": "Connector ID", - "providerId": "Provider ID", - "offerDetail": "Offer detail", - "transferId": "Transfer ID", - "transferType": "Transfer Type", - "transferState": "Transfer state", - "edcTimestamp": "EDC timestamp", - "edcDataRequestId": "EDC data request ID", - "edcReceiverHttpEndpoint": "EDC receiver http endpoint", - "assetId": "Asset ID", - "connectorAddress": "Connector address", - "contractId": "Contract ID", - "dataDestination": "Data destination", - "reciverHttpEndpoint": "Reciver http endpoint", - "contentType": "Content type" - }, - "characteristics": { - "physicalDimensionsProperty": "Physical dimensions property", - "weight": "Weight", - "lifespan": "Lifespan", - "energyCapacity": "Energy capacity", - "voltage": "Voltage", - "physicalState": "Physical state", - "weightOrVolume": "Weight or volume", - "diameter": "Diameter", - "grossWeight": "Gross weight", - "grossVolume": "Gross volume" - }, - "commercial": { - "placedOnMarket": "Place on the market", - "warranty": "Warranty" - }, - "handling": { - "maintenanceHistory": "Maintenance history", - "spareParts": "Spare parts", - "substanceOfConcern": "Substance of concern", - "producerId": "Producer Id", - "partName": "Part name", - "partGtin": "Part gtin", - "type": "Type", - "location": "Location", - "unit": "Unit", - "concentrationMax": "Concentration max", - "concentrationMin": "Concentration min", - "exemption": "Exemption", - "idType": "Id type", - "id": "Id" - }, - "identification": { - "gtin": "Gtin", - "manufacturerId": "Manufacturer ID", - "dataMatrixCode": "Data matrix code" - }, - "metadata": { - "predecessor": "Predecessor", - "legitimization": "Legitimization", - "identification": "Identification", - "issueDate": "Issue date", - "version": "Version", - "validityDate": "Validity date", - "customerPartId": "Customer part ID", - "manufacturerPartId": "Manufacturer part ID", - "status": "Status", - "expirationDate": "Expiration date" - }, - "operation": { - "importer": "Importer ID", - "importerEori": "Importer EORI", - "manufacturerId": "Manufacturer ID", - "facilityId": "Facility ID", - "manufacturingDate": "Manufacturing date" - }, - "serialization": { - "manufacturingInformation": "Manufacturing information", - "date": "Date", - "country": "Country", - "registration": "Registration", - "customerPartId": "Customer part ID", - "manufacturerPartId": "Manufacturer part ID", - "quantity": "Quantity" - }, - "sustainability": { - "state": "State", - "material": "Material", - "carbonContentTotal": "Carbon content total", - "crossSectoralStandard": "Cross sectoral standard used", - "substancesOfConcern": "Substances of concern", - "criticalRawMaterials": "Critical raw materials", - "co2FootprintTotal": "CO₂ footprint total", - "operator": "Operator", - "ruleNames": "Rule names", - "otherOperatorName": "Other operator name", - "productOrSectorSpecificRules": "Product or sector specific rules", - "critical": "Critical" - }, - "typology": { - "name": "Name", - "shortName": "Short name", - "longName": "Long name", - "definition": "Definition", - "code": "Code", - "nameAtManufacturer": "Name at manufacturer", - "nameAtCustomer": "Name at customer" - } - } -} +{ + "header": { + "helpBtn": "Help", + "helpTooltip": " Here you can get help if you need to know more about Catena-X", + "signOut": "Sign Out" + }, + "searchView": { + "title": "Catena-X Battery Passport", + "welcomeMessage": "The term \"Battery Passport\" refers to a digital document that contains essential information about a battery, specifically in the context of electric vehicles (EVs). This document includes details about the battery's manufacturer, specifications, performance characteristics, health status, and lifecycle data. The purpose of a Battery Passport is to facilitate proper maintenance, servicing, and recycling of the battery, while also enabling traceability and compliance.", + "errorCameraOff": "Your camera is off.", + "errorTypeID": "Turn it on or type the ID.", + "findOutMore": "Want to find out more? Read our Get", + "guide": "Started Guide", + "cameraError": { + "NotAllowedError": "ERROR: you need to grant camera access permission", + "NotFoundError": "ERROR: no camera on this device", + "NotSupportedError": "ERROR: secure context required (HTTPS, localhost)", + "NotReadableError": "ERROR: is the camera already in use?", + "OverconstrainedError": "ERROR: installed cameras are not suitable", + "StreamApiNotSupportedError": "ERROR: Stream API is not supported in this browser", + "InsecureContextError": "ERROR: Camera access is only permitted in secure context. Use HTTPS or localhost rather than HTTP." + } + }, + "passportView": { + "policyAgreement": { + "title": "Choose a policy:", + "contractId": "Contract ID:", + "policy": "Policy", + "type": "type", + "decline": "Decline", + "agree": "Agree", + "details": { + "moreDetails": "More details", + "lessDetails": "Less details" + }, + "declineModal": { + "question": "Are you sure you want to decline?", + "homepage": "This will take you back to the Homepage", + "cancel": "Cancel", + "confirm": "Yes, Decline" + } + }, + "dpp": "Digital Product Passport", + "bpp": "Battery Product Passport", + "tpp": "Transmission Product Passport", + "batteryComponentsNames": { + "generalInformation": "General Information", + "stateOfBattery": "State Of Battery", + "components": "Components", + "batteryComposition": "Battery Composition", + "cellChemistry": "Cell Chemistry", + "electrochemicalProperties": "Electrochemical Properties", + "documents": "Documents", + "exchange": "Exchange" + }, + "dppComponentsNames": { + "typology": "Typology", + "metadata": "Metadata", + "characteristics": "Characteristics", + "components": "Components", + "commercial": "Commercial", + "identification": "Identification", + "sources": "Sources", + "handling": "Handling", + "additionalData": "Additional Data", + "sustainability": "Sustainability", + "operation": "Operation", + "exchange": "Exchange", + "performance": "Performance", + "materials": "Materials", + "safety": "Safety", + "conformity": "Conformity" + }, + "tppComponentsNames": { + "productSpecificParameters": "Product Specific Parameters", + "instructions": "Instructions", + "sparePartSupplier": "Spare Part Supplier", + "components": "Components", + "stateOfHealth": "State of Health", + "identification": "Identification", + "generalInformation": "General Information", + "sustainability": "Sustainability", + "exchange": "Exchange" + } + }, + "home": { + "welcome": "Welcome", + "home": "Home" + }, + "footer": { + "help": "Help", + "contact": "Contact", + "imprint": "Imprint", + "privacy": "Privacy", + "terms": "Terms of Service", + "cookies": "Cookies", + "thirdParty": "Third Party Licenses", + "legal": "Legal notice", + "license": "License: Apache-2.0", + "licensePath": "Licence Path: ", + "viewLicense": "View License File", + "notice": "NOTICE: ", + "viewNotice": "View Notice File", + "source": "Source URL: ", + "commit": "Commit ID: ", + "copyright": "Copyright © Catena-X Automotive Network." + }, + "searchInput": { + "search": "Search", + "passportId": "Enter Passport ID" + }, + "barChart": { + "noData": "No data" + }, + "batteryCards": { + "titleGeneral": "GENERAL", + "labelGeneral": "Type", + "secondLabelGeneral": "Category", + "titlePerformance": "PERFORMANCE", + "labelPerformance": "Rated Capacity", + "secondLabelPerformance": "Power", + "descriptionPerformanceTitle": "Performance", + "descriptionPerformanceValue": "Description of the performance", + "titleHealth": "HEALTH", + "labelHealth": "State of Health (SoH)", + "secondLabelHealth": "Charging Cycles", + "descriptionHealthTitle": "Health", + "descriptionHealthValue": "Description of the health", + "titleSustainability": "SUSTAINABILITY", + "secondLabelSustainability": "CO2e/kWh", + "descriptionHSustainabilityTitle": "Sustainability", + "descriptionSustainabilityValue": "Description of the sustainability", + "chargingCycles": "Charging Cycles" + }, + "generalCards": { + "titleGeneral": "GENERAL", + "productName": "Product name", + "productType": "Product type", + "titleManufacturing": "MANUFACTURING", + "manufacturerId": "Manufacturer ID", + "dateOfManufacturing": "Date of Manufacturing", + "descriptionManufacturingTitle": "Manufacturing", + "descriptionManufacturingValue": "Description of the manufacturing", + "titleAspectVersion": "ASPECT VERSION", + "currentVersion": "Current version", + "issued": "Issued", + "descriptionAspectVersionTitle": "Aspect version", + "descriptionAspectVersionValue": "Description of the aspect version", + "titleSustainability": "SUSTAINABILITY", + "totalCo2Footprint": "Total CO2 footprint", + "warrantyPeriod": "Warranty period", + "tCo2Total": "t CO2 Total", + "months": "months", + "descriptionSustainabilityTitle": "Sustainability", + "descriptionSustainabilityValue": "Description of the Sustainability" + }, + "transmissionCards": { + "matrixCode": "Matrix code", + "parameters": "SPECIFIC PARAMETERS", + "driveType": "Drive type", + "oilType": "Oil type" + }, + "passportHeader": { + "backBtn": "Back" + }, + "field": { + "tempRange": "Temp range:", + "to": "to", + "referenceTest": "Reference test:" + }, + "recursiveTree": { + "notAvailable": "Not available" + }, + "dialog": { + "description": "Description", + "noDescription": "No description" + }, + "section": { + "noContent": "Sorry, no content" + }, + "error": { + "404NotFound": "404 Not Found", + "somethingWentWrong": "Oops, Something went wrong...", + "internalError": "The server encountered an internal error or misconfiguration and was unable to complete your request.", + "contactYourAdmin": "Please contact your admin", + "adminExample": "admin@example.com", + "reload": "Reload Page", + "homepage": "Homepage" + }, + "loading": { + "assetId": "Asset Id: ", + "registrySearch": "Registry Search", + "searching": "Searching...", + "registriesAvailable": "Registries available", + "contractSearch": "Contract Search", + "contractAvailable": "Contract available", + "contractNegotiation": "Contract Negotiation", + "negotiating": "Negotiating...", + "contractStatus": "Contract status: ", + "contractTransfer": "Contract Transfer", + "transferring": "Transferring...", + "transferCompleted": "Transfer completed", + "passportRetrieval": "Passport Retrieval", + "retrieving": "Retrieving... ", + "createdProcess": "Created Process ID: ", + "contractId": "Contract ID: " + }, + "sections": { + "performance": { + "rated": "Rated", + "depthOfDischarge": "Depth of Discharge", + "temperature": "Temperature", + "50PercentLife": "50% Life", + "initial": "Initial", + "selfDischargingRate": "Self Discharging Rate", + "lowerTemperature": "Lower Temperature", + "upperTemperature": "Upper Temperature", + "lifetime": "Lifetime", + "dynamic": "Dynamic", + "appliedDischargeRate": "Applied Discharge Rate", + "cycleLifeTesting": "Lifecycle testing", + "cycles": "Cycles", + "expectedYears": "Expected years", + "at20SoC": "At 20°C", + "at80SoC": "At 80°C", + "power": "Power", + "cell": "Cell", + "pack": "Pack", + "module": "Module", + "voltage": "Voltage", + "voltageMin": "Voltage Min", + "voltageMax": "Voltage Max", + "voltageNominal": "Voltage nominal", + "energy": "Energy", + "capacity": "Capacity", + "thresholdExhaustion": "Threshold Exhaustion", + "roundTripEfficiency": "Round Trip Efficiency", + "remaining": "Remaining power", + "fade": "Power fade", + "operatingEnvironment": "Operating environment", + "stateOfCharge": "State of charge", + "performanceDocument": "Performance document", + "fullCycles": "Full cycles", + "negativeEvents": "Negative events", + "resistance": "Resistance", + "remainingCell": "Remaining cell resistance", + "remainingPack": "Remaining pack resistance", + "remainingModule": "Remaining module resistance", + "increaseCell": "Increasing cell resistance", + "increasePack": "Increasing pack resistance", + "increaseModule": "Increasing module resistance", + "capacityFade": "Capacity fade", + "throughput": "Throughput", + "remainingEnergy": "Remaining energy", + "soce": "Soce" + }, + "instructions": { + "packagingInstructions": "Packaging instructions", + "transportationInstructions": "Transportation instructions", + "dismantlingProcedure": "Dismantling procedure", + "safetyMeasures": "Safety measures", + "vehicleDismantlingProcedure": "Vehicle dismantling procedure" + }, + "productSpecificParameters": { + "torqueConverter": "Torque converter", + "driveType": "Drive type", + "oilType": "Oil type", + "spreading": "Spreading", + "torque": "Torque", + "power": "Power", + "gear": "Gear", + "ratio": "Ratio", + "speed": "Speed", + "standardGearRatio": "Standard gear ratio", + "speedResistance": "Speed resistance", + "oilCapacity": "Oil capacity", + "electricPerformance": "Electric performance" + }, + "sparePartsSupplier": { + "supplierContact": "Supplier contact", + "supplierId": "Supplier id", + "sparePartName": "Spare part name" + }, + "stateOfHealth": { + "serviceHistory": "Service history", + "expectedLifespan": "Expected lifespan", + "remanufacturingDate": "Remanufacturing date", + "productStatusValue": "Product status value" + }, + "generalInformation": { + "additionalInformation": "Additional information", + "productDimensions": "Dimensions", + "productDescription": "Product description", + "productType": "Product type", + "batteryId": "Battery ID (DMC)", + "batteryIdDescriptionTitle": "Battery ID", + "batteryIdDescriptionValue": "Battery ID or DMC that you can find in your device settings", + "batteryType": "Battery Type", + "batteryModel": "Battery Model", + "warranty": "Warranty", + "dimensions": "Dimensions of the battery", + "weight": "Weight", + "dateOfManufacturing": "Date of Manufacture", + "placeOfManufacturing": "Place of Manufacturing", + "datePlacedOnMarket": "Date of placing on the market", + "manufacturerInformation": "Manufacturer Information", + "manufacturerContact": "Manufacturer Contact", + "cO2FootprintTotal": "CO2 Footprint" + }, + "stateOfBattery": { + "stateOfHealth": "State of health", + "cycleLifeTestCRate": "Cycle life test c rate", + "stateOfCharge": "State of charge", + "cycleLifeTestDepthOfDischarge": "Cycle life test depth of discharge", + "expectedLifetime": "Expected lifetime", + "temperatureRange": "Temperature range (idle state)", + "statusBattery": "Status battery" + }, + "components": { + "searchForChild": "The search for child components started, this may take a while...", + "noChild": "No child components found", + "somethingWentWrong": "Something went wrong while searching for child components" + }, + "batteryComposition": { + "batteryComposites": "Main Battery Composites", + "criticalRawMaterials": "Critical raw materials" + }, + "cellChemistry": { + "electrolyteComposition": "Composition of electrolyte", + "recyclateContent": "Recyclate Content Active Materials" + }, + "electrochemicalProperties": { + "capacity": "Capacity", + "ratedCapacity": "Rated capacity", + "capacityFade": "Capacity fade", + "capacityThresholdExhaustion": "Capacity threshold exhaustion", + "efficiency": "Efficiency", + "originalPowerCapability": "Original power capability", + "originalPowerCapabilityLimits": "Original power capability limits", + "maximumAllowedBatteryPower": "Maximum allowed battery energy (MABE)", + "MABEvsMABP": "Ratio MABE vs. MABP", + "powerCapabilityAt20Charge": "Power capability at 20 charge", + "powerCapabilityAt80Charge": "Power capability at 80 charge", + "powerFade": "Power fade", + "resistance": "Resistance", + "packInternalResistance": "Pack internal resistance", + "packInternalResistanceIncrease": "Pack internal resistance increase", + "cellInternalResistance": "Cell internal resistance", + "voltage": "Voltage", + "nominalVoltage": "Nominal voltage", + "maxVoltage": "Max voltage", + "minVoltage": "Min voltage" + }, + "exchange": { + "contract": "Contract", + "policy": "Policy", + "distribution": "Distribution", + "negotiation": "Negotiation", + "context": "Context", + "negotiationRequest": "Negotiation request", + "offer": "Offer", + "transfer": "Transfer", + "edcDataRequest": "EDC data request", + "transferRequest": "Transfer request", + "id": "ID", + "type": "Type", + "policyId": "Policy ID", + "distributionList": "Distribution List", + "edcDescription": "EDC description", + "edcId": "EDC ID", + "edcType": "EDC Type", + "edcProtocol": "EDC protocol", + "protocol": "Protocol", + "edcState": "EDC state", + "edcCounterPartyAddress": "EDC counter party address", + "edcContractAgreementId": "EDC contract agreement ID", + "connectorId": "Connector ID", + "providerId": "Provider ID", + "offerDetail": "Offer detail", + "transferId": "Transfer ID", + "transferType": "Transfer Type", + "transferState": "Transfer state", + "edcTimestamp": "EDC timestamp", + "edcDataRequestId": "EDC data request ID", + "edcReceiverHttpEndpoint": "EDC receiver http endpoint", + "assetId": "Asset ID", + "connectorAddress": "Connector address", + "contractId": "Contract ID", + "dataDestination": "Data destination", + "reciverHttpEndpoint": "Reciver http endpoint", + "contentType": "Content type" + }, + "characteristics": { + "physicalDimensionsProperty": "Physical dimensions property", + "weight": "Weight", + "lifespan": "Lifespan", + "energyCapacity": "Energy capacity", + "voltage": "Voltage", + "physicalState": "Physical state", + "weightOrVolume": "Weight or volume", + "diameter": "Diameter", + "grossWeight": "Gross weight", + "grossVolume": "Gross volume", + "warranty": "Warranty" + }, + "commercial": { + "placedOnMarket": "Place on the market", + "warranty": "Warranty" + }, + "handling": { + "manufacturerPartId": "Manufacturer part ID", + "nameAtManufacturer": "Name at manufacturer", + "maintenanceHistory": "Maintenance history", + "spareParts": "Spare parts", + "substanceOfConcern": "Substance of concern", + "producerId": "Producer Id", + "partName": "Part name", + "partGtin": "Part gtin", + "type": "Type", + "location": "Location", + "unit": "Unit", + "concentrationMax": "Concentration max", + "concentrationMin": "Concentration min", + "exemption": "Exemption", + "idType": "Id type", + "id": "Id" + }, + "identification": { + "gtin": "Gtin", + "manufacturerId": "Manufacturer ID", + "dataMatrixCode": "Data matrix code" + }, + "metadata": { + "predecessor": "Predecessor", + "legitimization": "Legitimization", + "identification": "Identification", + "issueDate": "Issue date", + "version": "Version", + "validityDate": "Validity date", + "customerPartId": "Customer part ID", + "manufacturerPartId": "Manufacturer part ID", + "status": "Status", + "expirationDate": "Expiration date" + }, + "operation": { + "intoServiceDate": "Into service date", + "importer": "Importer ID", + "importerEori": "Importer EORI", + "manufacturerId": "Manufacturer ID", + "facilityId": "Facility ID", + "manufacturingDate": "Manufacturing date" + }, + "serialization": { + "manufacturingInformation": "Manufacturing information", + "date": "Date", + "country": "Country", + "registration": "Registration", + "customerPartId": "Customer part ID", + "manufacturerPartId": "Manufacturer part ID", + "quantity": "Quantity" + }, + "sustainability": { + "state": "State", + "status": "Status", + "carbonFootprint": "Carbon Footprint", + "performanceClass": "Performance Class", + "type": "Type", + "rulebook": "Rulebook", + "manufacturingPlant": "Manufacturing plant", + "declaration": "Declaration", + "material": "Material", + "carbonContentTotal": "Carbon content total", + "crossSectoralStandard": "Cross sectoral standard used", + "substancesOfConcern": "Substances of concern", + "criticalRawMaterials": "Critical raw materials", + "co2FootprintTotal": "CO₂ footprint total", + "operator": "Operator", + "ruleNames": "Rule names", + "otherOperatorName": "Other operator name", + "productOrSectorSpecificRules": "Product or sector specific rules", + "critical": "Critical" + }, + "typology": { + "name": "Name", + "shortName": "Short name", + "longName": "Long name", + "definition": "Definition", + "code": "Code", + "nameAtManufacturer": "Name at manufacturer", + "nameAtCustomer": "Name at customer" + }, + "safety": { + "fireClass": "Fire class", + "media": "Media" + } + } +} \ No newline at end of file diff --git a/dpp-frontend/src/utils/passportUtil.js b/dpp-frontend/src/utils/passportUtil.js index ce11597bb..2c03acd25 100644 --- a/dpp-frontend/src/utils/passportUtil.js +++ b/dpp-frontend/src/utils/passportUtil.js @@ -1,102 +1,106 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -import iconMappings from "@/config/templates/iconMappings.json"; - -export default { - formattedDate(timestamp) { - const date = new Date(timestamp); - const formattedDate = date.toLocaleDateString("en-GB", { - day: "2-digit", - month: "2-digit", - year: "numeric", - }); - return formattedDate; - }, - toSentenceCase(text) { - // Convert the string to sentence case - const words = text.split(/(?=[A-Z])/); - const firstWord = [words[0].charAt(0).toUpperCase() + words[0].slice(1)]; - const otherWords = words.slice(1).map((word) => word.toLowerCase()); - const formattedWords = firstWord.concat(otherWords); - return formattedWords.join(" "); - }, - unitRemover(unit) { - return unit.replace("unit:", ""); - }, - iconFinder(property) { - // Define a mapping of prefixes to icons - const prefixToIcon = iconMappings; - // Split the camel-cased key into separate words and lowercase them - const words = property - .split(/(?=[A-Z])/) - .map((word) => word.toLowerCase()); - // Check each word against the prefixToIcon mapping and take the first - for (const word of words) { - if (prefixToIcon[word]) { - return prefixToIcon[word]; - } - } - - // If no match is found, return the default icon - return "mdi-information-outline"; - }, - groupSources(sources) { - try { - - let mappedSources = {}; - for (let parentKey in sources) { - let parentSources = sources[parentKey]; - for (let key in parentSources) { - let doc = parentSources[key]; - if (parentKey === "optional") { - doc = doc["document"]; - } - if (doc instanceof Array) { - for (let docKey in doc) { - let subDoc = doc[docKey]["document"]; - let category = subDoc["category"]; - if (!Object.prototype.hasOwnProperty.call(mappedSources, category)) { - mappedSources[category] = []; - } - mappedSources[category].push(subDoc); - } - continue; - } - - let category = doc["category"]; - if (!Object.prototype.hasOwnProperty.call(mappedSources, category)) { - mappedSources[category] = []; - } - - mappedSources[category].push(doc); - } - } - return mappedSources; - } catch (e) { - console.error.log(e); // Print error message - return {}; - } - } -}; - +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +import iconMappings from "@/config/templates/iconMappings.json"; + +export default { + hasContent(...args) { + // Check if any of the passed arguments is truthy + return args.some((arg) => !!arg); + }, + formattedDate(timestamp) { + const date = new Date(timestamp); + const formattedDate = date.toLocaleDateString("en-GB", { + day: "2-digit", + month: "2-digit", + year: "numeric", + }); + return formattedDate; + }, + toSentenceCase(text) { + // Convert the string to sentence case + const words = text.split(/(?=[A-Z])/); + const firstWord = [words[0].charAt(0).toUpperCase() + words[0].slice(1)]; + const otherWords = words.slice(1).map((word) => word.toLowerCase()); + const formattedWords = firstWord.concat(otherWords); + return formattedWords.join(" "); + }, + unitRemover(unit) { + return unit.replace("unit:", ""); + }, + iconFinder(property) { + // Define a mapping of prefixes to icons + const prefixToIcon = iconMappings; + // Split the camel-cased key into separate words and lowercase them + const words = property + .split(/(?=[A-Z])/) + .map((word) => word.toLowerCase()); + // Check each word against the prefixToIcon mapping and take the first + for (const word of words) { + if (prefixToIcon[word]) { + return prefixToIcon[word]; + } + } + + // If no match is found, return the default icon + return "mdi-information-outline"; + }, + groupSources(sources) { + try { + + let mappedSources = {}; + for (let parentKey in sources) { + let parentSources = sources[parentKey]; + for (let key in parentSources) { + let doc = parentSources[key]; + if (parentKey === "optional") { + doc = doc["document"]; + } + if (doc instanceof Array) { + for (let docKey in doc) { + let subDoc = doc[docKey]["document"]; + let category = subDoc["category"]; + if (!Object.prototype.hasOwnProperty.call(mappedSources, category)) { + mappedSources[category] = []; + } + mappedSources[category].push(subDoc); + } + continue; + } + + let category = doc["category"]; + if (!Object.prototype.hasOwnProperty.call(mappedSources, category)) { + mappedSources[category] = []; + } + + mappedSources[category].push(doc); + } + } + return mappedSources; + } catch (e) { + console.error.log(e); // Print error message + return {}; + } + } +}; + diff --git a/dpp-frontend/src/views/PassportView.vue b/dpp-frontend/src/views/PassportView.vue index 5681a4936..ec4440640 100644 --- a/dpp-frontend/src/views/PassportView.vue +++ b/dpp-frontend/src/views/PassportView.vue @@ -1,995 +1,1045 @@ - - - - - - + + + + + + From a5c169f0e80e49664e87f41bea89f5d23ce36d7e Mon Sep 17 00:00:00 2001 From: david zynda Date: Sat, 27 Apr 2024 19:50:11 +0200 Subject: [PATCH 2/3] BPP v5 update --- dpp-frontend/package-lock.json | 44 +- dpp-frontend/package.json | 3 +- dpp-frontend/src/assets/batteryv5.json | 865 ------------------ .../src/components/general/TabsComponent.vue | 4 - .../src/components/passport/BatteryCards.vue | 48 +- .../src/components/passport/Field.vue | 270 +++--- .../passport/sections/CellChemistry.vue | 244 ----- .../passport/sections/Identification.vue | 22 +- .../passport/sections/Materials.vue | 237 +++-- .../passport/sections/StateOfBattery.vue | 131 --- dpp-frontend/src/translations/de.json | 45 +- dpp-frontend/src/translations/en.json | 47 +- dpp-frontend/src/views/PassportView.vue | 44 - 13 files changed, 412 insertions(+), 1592 deletions(-) delete mode 100644 dpp-frontend/src/assets/batteryv5.json delete mode 100644 dpp-frontend/src/components/passport/sections/CellChemistry.vue delete mode 100644 dpp-frontend/src/components/passport/sections/StateOfBattery.vue diff --git a/dpp-frontend/package-lock.json b/dpp-frontend/package-lock.json index 63b48996b..b5685e8ac 100644 --- a/dpp-frontend/package-lock.json +++ b/dpp-frontend/package-lock.json @@ -12,6 +12,7 @@ "@popperjs/core": "^2.11.2", "@vitejs/plugin-vue": "^4.0.0", "axios": ">=1.6.7", + "chart.js": "^4.4.2", "clipboard": "^2.0.11", "core-js": "^3.8.3", "crypto-js": "^4.2.0", @@ -23,7 +24,7 @@ "vite": ">=4.5.2", "vite-plugin-vuetify": "^1.0.2", "vue": "^3.2.47", - "vue-chartjs": "^5.3.0", + "vue-chartjs": "^5.3.1", "vue-i18n": "9.2.2", "vue-router": "^4.0.13", "vue3-json-viewer": "^2.2.2", @@ -529,6 +530,11 @@ "node": ">= 14" } }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, "node_modules/@mdi/font": { "version": "5.9.55", "license": "Apache-2.0" @@ -949,6 +955,17 @@ "node": ">=4" } }, + "node_modules/chart.js": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.2.tgz", + "integrity": "sha512-6GD7iKwFpP5kbSD4MeRRRlTnQvxfQREy36uEtm1hzHzcOqwWx0YEHuspuoNlslu+nciLIB7fjjsHkUv/FzFcOg==", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -2932,9 +2949,9 @@ } }, "node_modules/vue-chartjs": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.0.tgz", - "integrity": "sha512-8XqX0JU8vFZ+WA2/knz4z3ThClduni2Nm0BMe2u0mXgTfd9pXrmJ07QBI+WAij5P/aPmPMX54HCE1seWL37ZdQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.1.tgz", + "integrity": "sha512-rZjqcHBxKiHrBl0CIvcOlVEBwRhpWAVf6rDU3vUfa7HuSRmGtCslc0Oc8m16oAVuk0erzc1FCtH1VCriHsrz+A==", "peerDependencies": { "chart.js": "^4.1.1", "vue": "^3.0.0-0 || ^2.7.0" @@ -3541,6 +3558,11 @@ "@intlify/shared": "9.2.2" } }, + "@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, "@mdi/font": { "version": "5.9.55" }, @@ -3884,6 +3906,14 @@ "supports-color": "^5.3.0" } }, + "chart.js": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.2.tgz", + "integrity": "sha512-6GD7iKwFpP5kbSD4MeRRRlTnQvxfQREy36uEtm1hzHzcOqwWx0YEHuspuoNlslu+nciLIB7fjjsHkUv/FzFcOg==", + "requires": { + "@kurkle/color": "^0.3.0" + } + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -5281,9 +5311,9 @@ } }, "vue-chartjs": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.0.tgz", - "integrity": "sha512-8XqX0JU8vFZ+WA2/knz4z3ThClduni2Nm0BMe2u0mXgTfd9pXrmJ07QBI+WAij5P/aPmPMX54HCE1seWL37ZdQ==" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.1.tgz", + "integrity": "sha512-rZjqcHBxKiHrBl0CIvcOlVEBwRhpWAVf6rDU3vUfa7HuSRmGtCslc0Oc8m16oAVuk0erzc1FCtH1VCriHsrz+A==" }, "vue-eslint-parser": { "version": "9.1.0", diff --git a/dpp-frontend/package.json b/dpp-frontend/package.json index 3446bdfe3..2c3aeee4a 100644 --- a/dpp-frontend/package.json +++ b/dpp-frontend/package.json @@ -16,6 +16,7 @@ "@popperjs/core": "^2.11.2", "@vitejs/plugin-vue": "^4.0.0", "axios": ">=1.6.7", + "chart.js": "^4.4.2", "clipboard": "^2.0.11", "core-js": "^3.8.3", "crypto-js": "^4.2.0", @@ -27,7 +28,7 @@ "vite": ">=4.5.2", "vite-plugin-vuetify": "^1.0.2", "vue": "^3.2.47", - "vue-chartjs": "^5.3.0", + "vue-chartjs": "^5.3.1", "vue-i18n": "9.2.2", "vue-router": "^4.0.13", "vue3-json-viewer": "^2.2.2", diff --git a/dpp-frontend/src/assets/batteryv5.json b/dpp-frontend/src/assets/batteryv5.json deleted file mode 100644 index 50a02af36..000000000 --- a/dpp-frontend/src/assets/batteryv5.json +++ /dev/null @@ -1,865 +0,0 @@ -{ - "metadata": { - "contract": { - "@id": "9b3c0977-6b14-4201-bd76-55f681a92872", - "@type": "dcat:Dataset", - "odrl:hasPolicy": { - "@id": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - }, - "dcat:distribution": [ - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "HttpProxy" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - }, - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "AmazonS3" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - } - ], - "edc:description": "Battery Passport test data", - "edc:id": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - }, - "negotiation": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "@type": "NegotiationInitiateRequestDto", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "protocol": "dataspace-protocol-http", - "connectorId": "BPNL00000000CBA5", - "offer": { - "offerId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", - "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "policy": { - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - } - } - }, - "response": { - "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393629505, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", - "@type": "edc:ContractNegotiationDto", - "edc:type": "CONSUMER", - "edc:protocol": "dataspace-protocol-http", - "edc:state": "FINALIZED", - "edc:counterPartyAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "edc:callbackAddresses": [], - "edc:contractAgreementId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - }, - "transfer": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", - "dataDestination": { - "properties": { - "type": "HttpProxy" - } - }, - "managedResources": false, - "privateProperties": { - "receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18" - }, - "protocol": "dataspace-protocol-http", - "transferType": { - "contentType": "application/octet-stream", - "isFinite": true - } - }, - "response": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393631831, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:TransferProcessDto", - "edc:state": "COMPLETED", - "edc:stateTimestamp": 1688393633142, - "edc:type": "CONSUMER", - "edc:callbackAddresses": [], - "edc:dataDestination": { - "edc:type": "HttpProxy" - }, - "edc:dataRequest": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:DataRequestDto", - "edc:assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "edc:contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390" - }, - "edc:receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - } - }, - "semanticId": "urn:bamm:io.catenax.battery.battery_pass:5.0.0#BatteryPass", - "aspect": { - "characteristics": { - "physicalDimension": { - "length": { - "value": 20.0, - "unit": "unit:millimetre" - }, - "width": { - "value": 20.0, - "unit": "unit:millimetre" - }, - "weight": { - "value": 20.0, - "unit": "unit:gram" - }, - "height": { - "value": 20.0, - "unit": "unit:millimetre" - } - }, - "warranty": { - "lifeValue": 36, - "lifeUnit": "unit:day" - } - }, - "metadata": { - "backupReference": "https://dummy.link", - "registrationIdentifier": "https://dummy.link/ID8283746239078", - "economicOperatorId": "BPNL0123456789ZZ", - "passportIdentifier": "urn:uuid:550e8400-e29b-41d4-a716-446655440000", - "predecessor": "urn:uuid:00000000-0000-0000-0000-000000000000", - "issueDate": "2000-01-01", - "version": "1.0.0", - "status": "draft", - "expirationDate": "2000-01-01" - }, - "identification": { - "chemistry": "NCM", - "idDmc": "34567890", - "identification": { - "batch": [ - { - "value": "BID12345678", - "key": "batchId" - } - ], - "codes": [ - { - "value": "8703 24 10 00", - "description": "GBT", - "key": "TARIC" - }, - { - "value": "8703 24 10 00", - "key": "TARIC" - } - ], - "type": { - "manufacturerPartId": "123-0.740-3434-A", - "nameAtManufacturer": "Mirror left" - }, - "classification": [ - { - "classificationStandard": "GIN 20510-21513", - "classificationID": "1004712", - "classificationDescription": "Generic standard for classification of parts in the automotive industry." - } - ], - "serial": [ - { - "value": "SN12345678", - "key": "partInstanceId" - } - ], - "dataCarrier": { - "carrierType": "QR", - "carrierLayout": "upper-left side" - } - }, - "category": "SLI" - }, - "performance": { - "rated": { - "roundTripEfficiency": { - "depthOfDischarge": 90.5, - "temperature": 20.0, - "50PercentLife": 89.0, - "initial": 96.0 - }, - "selfDischargingRate": 0.25, - "performanceDocument": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "testReport": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "temperature": { - "lower": -18.0, - "upper": 60.0 - }, - "lifetime": { - "report": [ - { - "contentType": "URL", - "header": "Sustainability Document Material report", - "content": "https://dummy.link" - } - ], - "cycleLifeTesting": { - "temperature": 20.0, - "depthOfDischarge": 90.5, - "appliedDischargeRate": 4.0, - "cycles": 1500, - "appliedChargeRate": 3.0 - }, - "expectedYears": 8 - }, - "power": { - "at20SoC": 35000.0, - "temperature": 20.0, - "value": 40000.0, - "at80SoC": 39000.0 - }, - "resistance": { - "temperature": 20.0, - "cell": 0.025, - "pack": 0.55, - "module": 0.2 - }, - "voltage": { - "temperature": 20.0, - "min": 2.5, - "nominal": 3.7, - "max": 4.2 - }, - "energy": { - "temperature": 20.0, - "value": 0.5 - }, - "capacity": { - "temperature": 20.0, - "value": 4.0, - "thresholdExhaustion": 80.0 - } - }, - "dynamic": { - "selfDischargingRate": 0.25, - "roundTripEfficiency": { - "remaining": { - "value": 50.0, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "fade": { - "value": 150.0, - "time": "2023-12-07T10:39:13.576+01:00" - } - }, - "operatingEnvironment": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "stateOfCharge": { - "value": 50.0, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "performanceDocument": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "fullCycles": { - "value": 1500, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "power": { - "remaining": { - "value": 40000.0, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "fade": { - "value": 50.0, - "time": "2023-12-07T10:39:13.576+01:00" - } - }, - "negativeEvents": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "resistance": { - "increase": { - "cell": { - "value": 50.0, - "time": "2027-12-07T10:39:13.576+01:00" - }, - "pack": { - "value": 50.0, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "module": { - "value": 50.0, - "time": "2023-12-07T10:39:13.576+01:00" - } - }, - "remaining": { - "cell": { - "value": 0.3, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "pack": { - "value": 0.3, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "module": { - "value": 0.3, - "time": "2023-12-07T10:39:13.576+01:00" - } - } - }, - "capacity": { - "fade": { - "value": 50.0, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "throughput": { - "value": 4.0, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "capacity": { - "value": 4.0, - "time": "2023-12-07T10:39:13.576+01:00" - } - }, - "energy": { - "remaining": { - "value": 0.5, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "soce": { - "value": 50.0, - "time": "2023-12-07T10:39:13.576+01:00" - }, - "throughput": { - "value": 0.5, - "time": "2023-12-07T10:39:13.576+01:00" - } - } - } - }, - "sources": [ - { - "header": "Sustainability Document Material XY", - "category": "Product Specifications", - "type": "URL", - "content": "https://dummy.link" - } - ], - "materials": { - "hazardous": { - "cadmium": { - "concentration": 5.3, - "location": "Housing", - "critical": true, - "impactOfSubstances": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "materialUnit": "unit:partPerMillion", - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ] - }, - "other": [ - { - "materialName": { - "name": "phenolphthalein", - "type": "IUPAC" - }, - "critical": true, - "impactOfSubstances": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "concentration": 5.3, - "materialIdentification": [ - { - "type": "CAS", - "id": "201-004-7" - } - ], - "location": "Housing", - "materialUnit": "unit:partPerMillion" - } - ], - "mercury": { - "concentration": 5.3, - "location": "Housing", - "critical": true, - "impactOfSubstances": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "materialUnit": "unit:partPerMillion", - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ] - }, - "lead": { - "recycled": 12.5, - "critical": true, - "impactOfSubstances": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "location": "Housing", - "concentration": 5.3, - "materialUnit": "unit:partPerMillion" - } - }, - "active": { - "nickel": { - "location": "Housing", - "recycled": 15, - "critical": true, - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ] - }, - "lithium": { - "location": "Housing", - "recycled": 12.5, - "critical": true, - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ] - }, - "cobalt": { - "location": "Housing", - "recycled": 12.5, - "critical": true, - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ] - }, - "other": [ - { - "materialName": { - "name": "phenolphthalein", - "type": "IUPAC" - }, - "location": "Housing", - "materialIdentification": [ - { - "type": "CAS", - "id": "201-004-7" - } - ], - "recycled": 12.5, - "critical": true, - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ] - } - ], - "lead": { - "recycled": 12.5, - "critical": true, - "impactOfSubstances": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "location": "Housing", - "concentration": 5.3, - "materialUnit": "unit:partPerMillion" - } - }, - "composition": [ - { - "unit": "unit:partPerMillion", - "recycled": 12.5, - "critical": true, - "renewable": 23.5, - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "name": { - "name": "test43", - "type": "IUPAC" - }, - "concentration": 8, - "location": "Anode", - "id": [ - { - "type": "CAS", - "id": "201-004-7" - } - ] - }, - { - "unit": "unit:partPerMillion", - "recycled": 12.5, - "critical": true, - "renewable": 23.5, - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "name": { - "name": "test43", - "type": "IUPAC" - }, - "concentration": 8, - "location": "Cathode", - "id": [ - { - "type": "CAS", - "id": "201-004-7" - } - ] - }, - { - "unit": "unit:partPerMillion", - "recycled": 12.5, - "critical": true, - "renewable": 23.5, - "documentation": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "name": { - "name": "test43", - "type": "IUPAC" - }, - "concentration": 8, - "location": "housing", - "id": [ - { - "type": "CAS", - "id": "201-004-7" - } - ] - } - ] - }, - "safety": { - "usableExtinguishAgent": [ - { - "fireClass": "A, B", - "document": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "media": "Dry Powder" - } - ], - "safeDischarging": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "meaningOfLabels": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "dismantling": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "removalFromAppliance": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "safetyMeasures": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ] - }, - "handling": { - "spareParts": { - "producer": [ - { - "id": "BPNL0123456789ZZ" - } - ], - "sparePart": [ - { - "manufacturerPartId": "123-0.740-3434-A", - "nameAtManufacturer": "Mirror left" - } - ] - }, - "applicable": true - }, - "conformity": { - "declarationOfConformityId": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "thirdPartyAssurance": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "resultOfTestReport": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "declarationOfConformity": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "dueDiligencePolicy": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ] - }, - "operation": { - "intoServiceDate": "1446-48-65", - "manufacturer": { - "facility": [ - { - "facility": "BPNA1234567890AA" - } - ], - "manufacturingDate": "2000-01-31", - "manufacturer": "BPNLmANsF8W8vj3P" - } - }, - "sustainability": { - "documents": { - "separateCollection": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "sustainabilityReport": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "euTaxonomyDisclosureStatement": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "wastePrevention": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ] - }, - "carbonFootprint": [ - { - "lifecycle": "main product production", - "rulebook": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ], - "unit": "kg CO2 / kWh", - "performanceClass": "A", - "manufacturingPlant": [ - { - "facility": "BPNA1234567890AA" - } - ], - "type": "Climate Change Total", - "value": 12.678, - "declaration": [ - { - "contentType": "URL", - "header": "Sustainability Document Material XY", - "content": "https://dummy.link" - } - ] - } - ], - "status": "original" - } - } -} \ No newline at end of file diff --git a/dpp-frontend/src/components/general/TabsComponent.vue b/dpp-frontend/src/components/general/TabsComponent.vue index 5ae0e6701..2264836ba 100644 --- a/dpp-frontend/src/components/general/TabsComponent.vue +++ b/dpp-frontend/src/components/general/TabsComponent.vue @@ -60,10 +60,8 @@ - + + + + + + diff --git a/dpp-frontend/src/components/passport/sections/CellChemistry.vue b/dpp-frontend/src/components/passport/sections/CellChemistry.vue deleted file mode 100644 index 846dfa1a4..000000000 --- a/dpp-frontend/src/components/passport/sections/CellChemistry.vue +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - diff --git a/dpp-frontend/src/components/passport/sections/Identification.vue b/dpp-frontend/src/components/passport/sections/Identification.vue index f03e727e1..9f49ca5cc 100644 --- a/dpp-frontend/src/components/passport/sections/Identification.vue +++ b/dpp-frontend/src/components/passport/sections/Identification.vue @@ -112,7 +112,7 @@ @@ -147,16 +147,11 @@ @@ -215,6 +210,9 @@ export default { callIconFinder(unit) { return passportUtil.iconFinder(unit); }, + callToSentenceCase(text) { + return passportUtil.toSentenceCase(text); + }, }, }; diff --git a/dpp-frontend/src/components/passport/sections/Materials.vue b/dpp-frontend/src/components/passport/sections/Materials.vue index 332241613..19d3ddc9b 100644 --- a/dpp-frontend/src/components/passport/sections/Materials.vue +++ b/dpp-frontend/src/components/passport/sections/Materials.vue @@ -1,3 +1,26 @@ + +