From 2e52460f2a538c107c430749e332725de1136b4b Mon Sep 17 00:00:00 2001 From: Benedikt Seeger <benedikt.seeger@ptb.de> Date: Thu, 27 Feb 2025 15:14:06 +0100 Subject: [PATCH] added conformity plotting --- src/dccQuantity.js | 32 ++++++++++++++-------------- src/renderers/MeasurementRenderer.js | 8 +++++++ 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/dccQuantity.js b/src/dccQuantity.js index ec6afdf..9945469 100644 --- a/src/dccQuantity.js +++ b/src/dccQuantity.js @@ -127,11 +127,23 @@ export class DCCConformity { return []; } + _getTolerance(q, language) { + if (q['dcc:name'] && q['dcc:name']['dcc:content']) { + let content = q['dcc:name']['dcc:content']; + if (Array.isArray(content)) { + const match = content.find(item => item.$ && item.$.lang === language) || content[0]; + return match._ || match; + } + return content._ || content; + } + return ''; + } + getLowerLimit() { const data = this.metaDataJson['dcc:data']; if (data && data['dcc:quantity']) { let quantities = data['dcc:quantity']; - if (!Array.isArray(quantities)) quantities = [quantities]; + if (!Array.isArray(quantities)) { quantities = [quantities]; } for (let q of quantities) { if (q.$ && q.$.refType && q.$.refType.includes('basic_toleranceLimitLower')) { let lowerValue = null; @@ -147,7 +159,7 @@ export class DCCConformity { lowerUnit = unit.toHTML({ oneLine: true }); } } - return { value: lowerValue, unit: lowerUnit, name: this.getQuantityName(q) }; + return { value: lowerValue, unit: lowerUnit, name: this._getTolerance(q, this.language) }; } } } @@ -158,7 +170,7 @@ export class DCCConformity { const data = this.metaDataJson['dcc:data']; if (data && data['dcc:quantity']) { let quantities = data['dcc:quantity']; - if (!Array.isArray(quantities)) quantities = [quantities]; + if (!Array.isArray(quantities)) { quantities = [quantities]; } for (let q of quantities) { if (q.$ && q.$.refType && q.$.refType.includes('basic_toleranceLimitUpper')) { let upperValue = null; @@ -174,22 +186,10 @@ export class DCCConformity { upperUnit = unit.toHTML({ oneLine: true }); } } - return { value: upperValue, unit: upperUnit, name: this.getQuantityName(q) }; + return { value: upperValue, unit: upperUnit, name: this._getTolerance(q, this.language) }; } } } return null; } - - getQuantityName(q) { - if (q['dcc:name'] && q['dcc:name']['dcc:content']) { - let content = q['dcc:name']['dcc:content']; - if (Array.isArray(content)) { - const match = content.find(item => item.$ && item.$.lang === this.language) || content[0]; - return match._ || match; - } - return content._ || content; - } - return ''; - } } diff --git a/src/renderers/MeasurementRenderer.js b/src/renderers/MeasurementRenderer.js index b6ec032..42e9562 100644 --- a/src/renderers/MeasurementRenderer.js +++ b/src/renderers/MeasurementRenderer.js @@ -343,6 +343,14 @@ export function renderMeasurementResults(measurementResults, language) { tickfont: { family: 'Arial', size: 14, color: 'black' }, type: logY ? 'log' : 'linear' }, + // Place legend on top over the plot without shifting x-axis scaling. + legend: { + orientation: 'h', + x: 0.5, + y: 0.98, + xanchor: 'center', + yanchor: 'top' + }, hovermode: 'closest', margin: { t: 20, b: 40 } }; -- GitLab