{#if !started} {:else} ? Protocol BICORDER {#if viewMode === 'list'} A diagnostic tool for the study of protocols {#each data.diagnostic as diagnosticSet, setIndex} {diagnosticSet.set_name.toUpperCase()} {diagnosticSet.set_description} {#each diagnosticSet.gradients as gradient, gradientIndex} {#if !data.metadata.shortform || gradient.shortform} { data.diagnostic[setIndex].gradients[gradientIndex].value = e.detail ?? null; data = data; }} on:notes={(e) => { data.diagnostic[setIndex].gradients[gradientIndex].notes = e.detail; data = data; }} /> {/if} {/each} {/each} ANALYSIS {#each data.analysis as analysisItem, index} { if (!analysisItem.automated) { data.analysis[index].value = e.detail ?? null; data = data; } }} on:notes={(e) => { data.analysis[index].notes = e.detail; data = data; }} /> {/each} {:else} {#if currentScreenData.type === 'metadata'} {:else if currentScreenData.type === 'gradient'} {@const screen = currentScreenData} {screen.setName.toUpperCase()} ← {screen.gradient.term_left} {screen.gradient.term_left_description} {#key refreshKey} { data.diagnostic[screen.setIndex].gradients[screen.gradientIndex].value = e.detail ?? null; data = data; refreshKey++; // Force component refresh }} on:notes={(e) => { data.diagnostic[screen.setIndex].gradients[screen.gradientIndex].notes = e.detail; data = data; refreshKey++; // Force component refresh }} /> {/key} {screen.gradient.term_right} → {screen.gradient.term_right_description} {:else if currentScreenData.type === 'analysis'} {@const screen = currentScreenData} ANALYSIS {#if screen.gradient.automated} auto-calculated {/if} {#if isFirstAnalysisScreen} { // Jump to the export screen (last screen) currentScreen = screens.length - 1; }} on:updateAnalysis={(e) => { data.analysis[e.detail.index].value = e.detail.value; data = data; }} on:updateAnalysisNotes={(e) => { data.analysis[e.detail.index].notes = e.detail.notes; data = data; }} /> {/if} ← {screen.gradient.term_left} {screen.gradient.term_left_description} {#key refreshKey} { if (!screen.gradient.automated) { data.analysis[screen.index].value = e.detail ?? null; data = data; refreshKey++; // Force component refresh } }} on:notes={(e) => { data.analysis[screen.index].notes = e.detail; data = data; refreshKey++; // Force component refresh }} /> {/key} {screen.gradient.term_right} → {screen.gradient.term_right_description} {:else if currentScreenData.type === 'export'} {/if} ← Previous Next → {progressBar} {diagnosticProgress} / {diagnosticScreenCount} {/if} {/if}
A diagnostic tool for the study of protocols