nirs4all-ui 0.1.17 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/dropzone.css +21 -0
- package/assets/qualification.css +3 -0
- package/dist/components/DatasetDropzone.d.ts +44 -0
- package/dist/components/DatasetDropzone.d.ts.map +1 -0
- package/dist/components/DatasetDropzone.js +84 -0
- package/dist/components/DatasetDropzone.js.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/pipelines/studio-presets.json +13 -23
- package/dist/qualification/EvidenceTable.d.ts +3 -1
- package/dist/qualification/EvidenceTable.d.ts.map +1 -1
- package/dist/qualification/EvidenceTable.js +14 -6
- package/dist/qualification/EvidenceTable.js.map +1 -1
- package/dist/qualification/TargetDistribution.d.ts +4 -3
- package/dist/qualification/TargetDistribution.d.ts.map +1 -1
- package/dist/qualification/TargetDistribution.js +36 -21
- package/dist/qualification/TargetDistribution.js.map +1 -1
- package/dist/qualification/extractBlocks.d.ts +20 -0
- package/dist/qualification/extractBlocks.d.ts.map +1 -1
- package/dist/qualification/extractBlocks.js +34 -0
- package/dist/qualification/extractBlocks.js.map +1 -1
- package/dist/qualification/locale.d.ts +41 -0
- package/dist/qualification/locale.d.ts.map +1 -1
- package/dist/qualification/locale.js +45 -0
- package/dist/qualification/locale.js.map +1 -1
- package/dist/qualification/report.d.ts +13 -1
- package/dist/qualification/report.d.ts.map +1 -1
- package/dist/qualification/report.js +91 -3
- package/dist/qualification/report.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/* DatasetDropzone — ecosystem drop target (theme.css tokens). */
|
|
2
|
+
.n4dz{display:flex;flex-direction:column;gap:10px;width:100%}
|
|
3
|
+
.n4dz-zone{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 24px;border:2px dashed color-mix(in srgb,var(--teal,#0d9488) 45%,transparent);border-radius:var(--radius,16px);background:color-mix(in srgb,var(--surface,#fff) 85%,transparent);text-align:center;cursor:pointer;outline:none;transition:border-color .2s,background .2s,transform .2s}
|
|
4
|
+
.n4dz-zone:hover,.n4dz-zone[data-active]{border-color:var(--teal,#0d9488);background:color-mix(in srgb,var(--teal,#0d9488) 6%,var(--surface,#fff))}
|
|
5
|
+
.n4dz-zone[data-active]{transform:translateY(-2px)}
|
|
6
|
+
.n4dz-zone:focus-visible{outline:2px solid var(--teal,#0d9488);outline-offset:3px}
|
|
7
|
+
.n4dz-zone[data-busy]{cursor:progress;border-style:solid;border-color:var(--teal,#0d9488)}
|
|
8
|
+
.n4dz-hairline{position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--teal-d,#0f766e),var(--teal-l,#2dd4bf),var(--cyan,#06b6d4),var(--green,#10b981));opacity:.9}
|
|
9
|
+
.n4dz-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--teal,#0d9488) 12%,transparent);color:var(--teal,#0d9488);transition:background .2s,color .2s}
|
|
10
|
+
.n4dz-zone[data-active] .n4dz-icon{background:var(--teal,#0d9488);color:#fff}
|
|
11
|
+
.n4dz-text{display:flex;flex-direction:column;gap:4px;align-items:center}
|
|
12
|
+
.n4dz-title{font-family:var(--display,inherit);font-size:1.15rem;font-weight:600;color:var(--text,inherit)}
|
|
13
|
+
.n4dz-hint{max-width:480px;font-size:.86rem;line-height:1.5;color:var(--text-2,#475569)}
|
|
14
|
+
.n4dz-link{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--teal-d,#0f766e);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
|
|
15
|
+
.n4dz-spinner{width:28px;height:28px;border-radius:50%;border:3px solid color-mix(in srgb,var(--teal,#0d9488) 25%,transparent);border-top-color:var(--teal,#0d9488);animation:n4dz-spin .8s linear infinite}
|
|
16
|
+
@keyframes n4dz-spin{to{transform:rotate(360deg)}}
|
|
17
|
+
@media (prefers-reduced-motion:reduce){.n4dz-spinner{animation-duration:2.4s}}
|
|
18
|
+
.n4dz-error{padding:.7rem 1rem;border-radius:var(--radius-sm,10px);border:1px solid rgba(225,29,72,.3);background:rgba(225,29,72,.07);color:var(--text,inherit);text-align:left;font-size:.88rem}
|
|
19
|
+
.n4dz-note{margin:0;font-size:.78rem;color:var(--text-3,#64748b);text-align:center}
|
|
20
|
+
.n4dz-folder{align-self:center;font-size:.86rem}
|
|
21
|
+
.n4dz-link:disabled{cursor:default;opacity:.5}
|
package/assets/qualification.css
CHANGED
|
@@ -174,3 +174,6 @@ a.n4q-stat:hover{border-color:var(--teal,#0d9488);transform:translateY(-1px);box
|
|
|
174
174
|
:root[data-theme=dark] .n4q-matrix-track{background:rgba(255,255,255,.08)}
|
|
175
175
|
:root[data-theme=dark] .n4q-band{fill-opacity:.22}
|
|
176
176
|
.n4q-table thead .n4q-nocase{text-transform:none;letter-spacing:0}
|
|
177
|
+
.n4q-family-row th{padding-top:1rem;font-size:.95rem;font-weight:700;text-transform:none;letter-spacing:0;border-bottom:2px solid var(--n4q-line,rgba(100,116,139,.3))}
|
|
178
|
+
.n4q-family-count{margin-left:.6rem;font-size:.76rem;font-weight:500;opacity:.7}
|
|
179
|
+
.n4q-structured{font-size:.82rem;max-width:28rem}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
/** A file chosen by drop or picker; `name` keeps its path inside a dropped or chosen folder. */
|
|
3
|
+
export interface DroppedFile {
|
|
4
|
+
name: string;
|
|
5
|
+
file: File;
|
|
6
|
+
}
|
|
7
|
+
/** Files of a file input, with their folder-relative path when a folder was chosen. */
|
|
8
|
+
export declare function pickedFiles(list: ArrayLike<File> | null | undefined): DroppedFile[];
|
|
9
|
+
/**
|
|
10
|
+
* Files of a drop, dropped folders read recursively. Call it synchronously from the drop
|
|
11
|
+
* handler: the browser invalidates the drag data once the event returns.
|
|
12
|
+
*/
|
|
13
|
+
export declare function droppedFiles(transfer: DataTransfer): Promise<DroppedFile[]>;
|
|
14
|
+
export interface DatasetDropzoneProps {
|
|
15
|
+
/** Called with every dropped or chosen file (folders expanded). */
|
|
16
|
+
onFiles: (files: DroppedFile[]) => void;
|
|
17
|
+
/** A dropped folder could not be read. */
|
|
18
|
+
onError?: (error: unknown) => void;
|
|
19
|
+
title?: ReactNode;
|
|
20
|
+
/** Usually "or browse — formats"; rendered under the title. */
|
|
21
|
+
hint?: ReactNode;
|
|
22
|
+
/** Shows a folder picker button with this label under the zone. */
|
|
23
|
+
folderLabel?: string;
|
|
24
|
+
busy?: boolean;
|
|
25
|
+
busyTitle?: ReactNode;
|
|
26
|
+
busyHint?: ReactNode;
|
|
27
|
+
error?: ReactNode;
|
|
28
|
+
/** Small reassurance line, e.g. that files never leave the browser. */
|
|
29
|
+
note?: ReactNode;
|
|
30
|
+
/** Highlights the zone while the host tracks a page-level drag. */
|
|
31
|
+
active?: boolean;
|
|
32
|
+
accept?: string;
|
|
33
|
+
icon?: ReactNode;
|
|
34
|
+
busyIcon?: ReactNode;
|
|
35
|
+
className?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Ecosystem dataset drop zone (Studio, Web, QualiNIRS, IO): dashed teal target with a spectral
|
|
39
|
+
* hairline, drag highlight, click/keyboard file picker, an optional folder picker button under the
|
|
40
|
+
* zone, and a busy state (host `busy` or a dropped folder being listed) that replaces the icon by a
|
|
41
|
+
* spinner. It only lists the files the user hands over; parsing and assembly stay in the host.
|
|
42
|
+
*/
|
|
43
|
+
export declare function DatasetDropzone({ onFiles, onError, title, hint, folderLabel, busy, busyTitle, busyHint, error, note, active, accept, icon, busyIcon, className, }: DatasetDropzoneProps): import("react").JSX.Element;
|
|
44
|
+
//# sourceMappingURL=DatasetDropzone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatasetDropzone.d.ts","sourceRoot":"","sources":["../../src/components/DatasetDropzone.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7E,gGAAgG;AAChG,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAKD,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,EAAE,CAEnF;AAuBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAM3E;AAED,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IACxC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uEAAuE;IACvE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mEAAmE;IACnE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EAAE,OAAO,EAAE,KAAgC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAY,EAAE,SAAmC,EACxH,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAc,EAAE,MAAM,EAAE,IAAkB,EAAE,QAAQ,EAAE,SAAS,GACvF,EAAE,oBAAoB,+BAuDtB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useState } from "react";
|
|
3
|
+
/** Hidden files (.DS_Store, .git/…) never belong to a dataset. */
|
|
4
|
+
const visible = (picked) => !picked.name.split("/").some((part) => part.startsWith("."));
|
|
5
|
+
/** Files of a file input, with their folder-relative path when a folder was chosen. */
|
|
6
|
+
export function pickedFiles(list) {
|
|
7
|
+
return Array.from(list ?? []).map((file) => ({ name: file.webkitRelativePath || file.name, file })).filter(visible);
|
|
8
|
+
}
|
|
9
|
+
async function readEntries(entries) {
|
|
10
|
+
const out = [];
|
|
11
|
+
const walk = async (entry) => {
|
|
12
|
+
// hidden files and folders are skipped before any read
|
|
13
|
+
if (entry.name.startsWith("."))
|
|
14
|
+
return;
|
|
15
|
+
if (entry.isFile) {
|
|
16
|
+
const file = await new Promise((resolve, reject) => entry.file(resolve, reject));
|
|
17
|
+
out.push({ name: entry.fullPath.replace(/^\//, ""), file });
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const reader = entry.createReader();
|
|
21
|
+
for (;;) {
|
|
22
|
+
const batch = await new Promise((resolve, reject) => reader.readEntries(resolve, reject));
|
|
23
|
+
if (!batch.length)
|
|
24
|
+
return;
|
|
25
|
+
for (const child of batch)
|
|
26
|
+
await walk(child);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
for (const entry of entries)
|
|
30
|
+
await walk(entry);
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Files of a drop, dropped folders read recursively. Call it synchronously from the drop
|
|
35
|
+
* handler: the browser invalidates the drag data once the event returns.
|
|
36
|
+
*/
|
|
37
|
+
export function droppedFiles(transfer) {
|
|
38
|
+
const entries = Array.from(transfer.items ?? [])
|
|
39
|
+
.map((item) => item.webkitGetAsEntry?.() ?? null)
|
|
40
|
+
.filter((entry) => entry !== null);
|
|
41
|
+
if (!entries.length)
|
|
42
|
+
return Promise.resolve(pickedFiles(transfer.files));
|
|
43
|
+
return readEntries(entries);
|
|
44
|
+
}
|
|
45
|
+
const UPLOAD_ICON = (_jsx("svg", { viewBox: "0 0 24 24", width: "28", height: "28", "aria-hidden": "true", children: _jsx("path", { d: "M12 15V4m0 0L7.5 8.5M12 4l4.5 4.5M5 15v3a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3", fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
46
|
+
/**
|
|
47
|
+
* Ecosystem dataset drop zone (Studio, Web, QualiNIRS, IO): dashed teal target with a spectral
|
|
48
|
+
* hairline, drag highlight, click/keyboard file picker, an optional folder picker button under the
|
|
49
|
+
* zone, and a busy state (host `busy` or a dropped folder being listed) that replaces the icon by a
|
|
50
|
+
* spinner. It only lists the files the user hands over; parsing and assembly stay in the host.
|
|
51
|
+
*/
|
|
52
|
+
export function DatasetDropzone({ onFiles, onError, title = "Drop your spectra here", hint, folderLabel, busy = false, busyTitle = "Reading your dataset…", busyHint, error, note, active = false, accept, icon = UPLOAD_ICON, busyIcon, className, }) {
|
|
53
|
+
const files = useRef(null);
|
|
54
|
+
const folder = useRef(null);
|
|
55
|
+
const [dragging, setDragging] = useState(false);
|
|
56
|
+
// a dropped folder is read asynchronously; overlapping drops are refused until it is done
|
|
57
|
+
const reading = useRef(false);
|
|
58
|
+
const [readingDrop, setReadingDrop] = useState(false);
|
|
59
|
+
const blocked = busy || readingDrop;
|
|
60
|
+
const open = () => { if (!blocked)
|
|
61
|
+
files.current?.click(); };
|
|
62
|
+
const onKey = (event) => {
|
|
63
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
open();
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const highlighted = (dragging || active) && !blocked;
|
|
69
|
+
return (_jsxs("div", { className: ["n4dz", className].filter(Boolean).join(" "), children: [_jsxs("div", { className: "n4dz-zone", role: "button", tabIndex: 0, "aria-disabled": blocked, "aria-busy": blocked, "data-active": highlighted || undefined, "data-busy": blocked || undefined, onClick: open, onKeyDown: onKey, onDragOver: (event) => { event.preventDefault(); if (!blocked)
|
|
70
|
+
setDragging(true); }, onDragLeave: (event) => { if (!event.currentTarget.contains(event.relatedTarget))
|
|
71
|
+
setDragging(false); }, onDrop: (event) => {
|
|
72
|
+
event.preventDefault();
|
|
73
|
+
event.stopPropagation();
|
|
74
|
+
setDragging(false);
|
|
75
|
+
if (busy || reading.current)
|
|
76
|
+
return;
|
|
77
|
+
reading.current = true;
|
|
78
|
+
setReadingDrop(true);
|
|
79
|
+
droppedFiles(event.dataTransfer)
|
|
80
|
+
.then(onFiles, (cause) => onError?.(cause))
|
|
81
|
+
.finally(() => { reading.current = false; setReadingDrop(false); });
|
|
82
|
+
}, children: [_jsx("span", { className: "n4dz-hairline", "aria-hidden": "true" }), _jsx("span", { className: "n4dz-icon", "aria-hidden": "true", children: blocked ? (busyIcon ?? _jsx("span", { className: "n4dz-spinner" })) : icon }), _jsxs("span", { className: "n4dz-text", role: blocked ? "status" : undefined, "aria-live": blocked ? "polite" : undefined, children: [_jsx("span", { className: "n4dz-title", children: blocked ? busyTitle : title }), blocked ? (busyHint ? _jsx("span", { className: "n4dz-hint", children: busyHint }) : null) : (hint ? _jsx("span", { className: "n4dz-hint", children: hint }) : null)] })] }), folderLabel ? (_jsx("button", { type: "button", className: "n4dz-link n4dz-folder", disabled: blocked, onClick: () => folder.current?.click(), children: folderLabel })) : null, _jsx("input", { ref: files, type: "file", multiple: true, accept: accept, hidden: true, tabIndex: -1, onChange: (event) => { onFiles(pickedFiles(event.target.files)); event.target.value = ""; } }), folderLabel ? _jsx("input", { ref: folder, type: "file", multiple: true, hidden: true, tabIndex: -1, webkitdirectory: "", onChange: (event) => { onFiles(pickedFiles(event.target.files)); event.target.value = ""; } }) : null, error ? _jsx("div", { className: "n4dz-error", role: "alert", children: error }) : null, note ? _jsx("p", { className: "n4dz-note", children: note }) : null] }));
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=DatasetDropzone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatasetDropzone.js","sourceRoot":"","sources":["../../src/components/DatasetDropzone.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"source": "nirs4all-studio/api/presets",
|
|
3
|
-
"commit": "
|
|
3
|
+
"commit": "7a4bddb3e3a7c2cae985e011fe38feae8e507363",
|
|
4
4
|
"files_sha256": {
|
|
5
|
-
"complex_pls.yaml": "
|
|
5
|
+
"complex_pls.yaml": "d4c8ed7989cc813d0ef9886d682def3960957d756eb74c7e6f6f55b5314fadd9",
|
|
6
6
|
"complex_trees.yaml": "ab5f88ec1c1f0adeff67e8e32d9a690389ec3b7fffeffc67bc38edbba231dccf",
|
|
7
7
|
"deep_nonlinear_exploration.yaml": "815f5ff1e960cb73cdec080f29ba1897983a0e37320f771cfd01f1f11f6c34e2",
|
|
8
|
-
"fast_result.yaml": "
|
|
8
|
+
"fast_result.yaml": "a14839845ccd84a82371ffc4521f359aa2fb4624804f26319832a1e6a405deab",
|
|
9
9
|
"nonlinear_exploration.yaml": "fb5bc52da3d05f9dd5de256213f398bca8d1375802cfe05d8928ab55d28a2844",
|
|
10
10
|
"simple_pls.yaml": "b78ccde2d0145809bfb49067aef71ff9a30abb5ddfe6e3f4e552cee05aefc8f4",
|
|
11
11
|
"simple_trees_boosting.yaml": "76f1c9948f66ecd07f7c2253fb460dc5e8f6d4acdf324a60662f463846a9958f",
|
|
12
12
|
"ultra_pls.yaml": "51c9c9ce88f47d813b4ff06b38b647e4e2b48be8796ae963f785022e9feedc65",
|
|
13
|
-
"ultra_slow.yaml": "
|
|
13
|
+
"ultra_slow.yaml": "7142f406c1a5d50dc7c1db2569e7296e73339343f8202290c6ebe31c57900e31",
|
|
14
14
|
"ultra_trees.yaml": "c0346f612ea050ad97f1097e1c1e6b336dcd426e84bb79f9271e1745e061227d"
|
|
15
15
|
},
|
|
16
16
|
"presets": [
|
|
@@ -135,9 +135,9 @@
|
|
|
135
135
|
"model": {
|
|
136
136
|
"class": "nirs4all.operators.models.sklearn.aom_pls.AOMPLSRegressor",
|
|
137
137
|
"params": {
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
"
|
|
138
|
+
"max_components": 12,
|
|
139
|
+
"center_x": true,
|
|
140
|
+
"scale_x": false
|
|
141
141
|
}
|
|
142
142
|
},
|
|
143
143
|
"name": "AOM-PLS"
|
|
@@ -590,9 +590,9 @@
|
|
|
590
590
|
"model": {
|
|
591
591
|
"class": "nirs4all.operators.models.sklearn.aom_pls.AOMPLSRegressor",
|
|
592
592
|
"params": {
|
|
593
|
-
"
|
|
594
|
-
"
|
|
595
|
-
"
|
|
593
|
+
"max_components": 12,
|
|
594
|
+
"center_x": true,
|
|
595
|
+
"scale_x": false
|
|
596
596
|
}
|
|
597
597
|
},
|
|
598
598
|
"name": "AOM-PLS"
|
|
@@ -3712,8 +3712,8 @@
|
|
|
3712
3712
|
"model": {
|
|
3713
3713
|
"class": "nirs4all.operators.models.sklearn.aom_pls.AOMPLSRegressor",
|
|
3714
3714
|
"params": {
|
|
3715
|
-
"
|
|
3716
|
-
"
|
|
3715
|
+
"center_x": true,
|
|
3716
|
+
"scale_x": false
|
|
3717
3717
|
}
|
|
3718
3718
|
},
|
|
3719
3719
|
"name": "AOM-PLS-Finetuned",
|
|
@@ -3721,20 +3721,10 @@
|
|
|
3721
3721
|
"n_trials": 80,
|
|
3722
3722
|
"sampler": "tpe",
|
|
3723
3723
|
"model_params": {
|
|
3724
|
-
"
|
|
3724
|
+
"max_components": [
|
|
3725
3725
|
"int",
|
|
3726
3726
|
1,
|
|
3727
3727
|
27
|
|
3728
|
-
],
|
|
3729
|
-
"n_orth": [
|
|
3730
|
-
"int",
|
|
3731
|
-
0,
|
|
3732
|
-
5
|
|
3733
|
-
],
|
|
3734
|
-
"operator_index": [
|
|
3735
|
-
"int",
|
|
3736
|
-
0,
|
|
3737
|
-
120
|
|
3738
3728
|
]
|
|
3739
3729
|
}
|
|
3740
3730
|
}
|
|
@@ -6,7 +6,9 @@ export interface EvidenceTableProps {
|
|
|
6
6
|
locale?: Locale;
|
|
7
7
|
caption?: string;
|
|
8
8
|
className?: string;
|
|
9
|
+
/** Group rows under their metric family (default true). */
|
|
10
|
+
grouped?: boolean;
|
|
9
11
|
}
|
|
10
12
|
/** Evidence availability table: every metric with status, reason, scope, denominators, provenance. Native table = keyboard/AT friendly. */
|
|
11
|
-
export declare function EvidenceTable({ metrics, provenance, locale, caption, className }: EvidenceTableProps): import("react").JSX.Element;
|
|
13
|
+
export declare function EvidenceTable({ metrics, provenance, locale, caption, className, grouped }: EvidenceTableProps): import("react").JSX.Element;
|
|
12
14
|
//# sourceMappingURL=EvidenceTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EvidenceTable.d.ts","sourceRoot":"","sources":["../../src/qualification/EvidenceTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"EvidenceTable.d.ts","sourceRoot":"","sources":["../../src/qualification/EvidenceTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAMpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC5C,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD,2IAA2I;AAC3I,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAa,EAAE,OAAO,EAAE,SAAS,EAAE,OAAc,EAAE,EAAE,kBAAkB,+BAoD3H"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { loc } from '../lab/locale.js';
|
|
3
3
|
import { cx } from './_cx.js';
|
|
4
|
+
import { isScaledEngineNumber } from './engineNumber.js';
|
|
4
5
|
import { AvailabilityBadge } from './Badges.js';
|
|
5
|
-
import { metricLabel, QUALIFICATION_TEXT as T } from './locale.js';
|
|
6
|
-
import { formatDenominators, formatQualificationValue, formatScalarParameters } from './report.js';
|
|
6
|
+
import { METRIC_FAMILY_LABEL, METRIC_FAMILY_QUESTION, metricLabel, QUALIFICATION_TEXT as T } from './locale.js';
|
|
7
|
+
import { formatDenominators, formatQualificationValue, formatScalarParameters, groupMetricsByFamily } from './report.js';
|
|
8
|
+
const fullValue = (value) => {
|
|
9
|
+
if (value === null || typeof value !== 'object')
|
|
10
|
+
return undefined;
|
|
11
|
+
const json = JSON.stringify(value);
|
|
12
|
+
return json.length > 2000 ? `${json.slice(0, 1999)}…` : json;
|
|
13
|
+
};
|
|
7
14
|
/** Evidence availability table: every metric with status, reason, scope, denominators, provenance. Native table = keyboard/AT friendly. */
|
|
8
|
-
export function EvidenceTable({ metrics, provenance, locale = 'fr', caption, className }) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
export function EvidenceTable({ metrics, provenance, locale = 'fr', caption, className, grouped = true }) {
|
|
16
|
+
const groups = grouped ? groupMetricsByFamily(metrics) : [{ family: null, metrics: [...metrics] }];
|
|
17
|
+
return (_jsx("div", { className: cx('n4q-table-wrap', className), role: "region", tabIndex: 0, "aria-label": caption ?? loc(T.evidence, locale), children: _jsxs("table", { className: "n4q-table", children: [_jsx("caption", { children: caption ?? loc(T.evidence, locale) }), _jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { scope: "col", children: loc(T.metric, locale) }), _jsx("th", { scope: "col", children: loc(T.status, locale) }), _jsx("th", { scope: "col", children: loc(T.value, locale) }), _jsx("th", { scope: "col", children: loc(T.scope, locale) }), _jsx("th", { scope: "col", children: loc(T.denominators, locale) }), _jsx("th", { scope: "col", children: loc(T.provenance, locale) })] }) }), groups.map((group) => (_jsxs("tbody", { "data-family": group.family ?? undefined, children: [group.family ? (_jsx("tr", { className: "n4q-family-row", children: _jsxs("th", { scope: "rowgroup", colSpan: 6, children: [loc(METRIC_FAMILY_LABEL[group.family], locale), _jsx("span", { className: "n4q-family-count", children: loc(T.nMetrics, locale).replace('{n}', String(group.metrics.length)) }), _jsx("span", { className: "n4q-sub", children: loc(METRIC_FAMILY_QUESTION[group.family], locale) })] }) })) : null, group.metrics.map((m, i) => (_jsxs("tr", { "data-metric-id": m.id, "data-availability": m.status, children: [_jsxs("th", { scope: "row", children: [metricLabel(m.id, locale) !== m.id ? _jsx("span", { className: "n4q-metric-name", children: metricLabel(m.id, locale) }) : null, _jsx("code", { children: m.id })] }), _jsx("td", { children: _jsx(AvailabilityBadge, { status: m.status, reason: m.reasonCode, locale: locale }) }), _jsx("td", { className: m.value !== null && typeof m.value === 'object' && !isScaledEngineNumber(m.value) ? 'n4q-structured' : 'n4q-num', title: m.status === 'computed' ? fullValue(m.value) : undefined, children: m.status === 'computed'
|
|
18
|
+
? _jsxs(_Fragment, { children: [formatQualificationValue(m.value, locale), m.unit ? _jsxs("span", { className: "n4q-unit", children: [" ", m.unit] }) : null] })
|
|
19
|
+
: _jsx("span", { className: "n4q-null", children: loc(T.notAvailable, locale) }) }), _jsxs("td", { children: [m.scope, _jsx("span", { className: "n4q-sub", children: [m.sourceId && `${loc(T.source, locale)} ${m.sourceId}`, m.targetId && `${loc(T.target, locale)} ${m.targetId}`, `${loc(T.population, locale)} ${m.populationId}`, `${loc(T.view, locale)} ${m.viewId}`].filter(Boolean).join(' · ') }), formatScalarParameters(m.parameters) ? _jsxs("span", { className: "n4q-sub", children: [loc(T.parameters, locale), ": ", formatScalarParameters(m.parameters)] }) : null] }), _jsx("td", { children: formatDenominators(m.denominators) || '—' }), _jsxs("td", { children: [_jsx("code", { children: m.protocolVersion }), provenance ? _jsx("span", { className: "n4q-sub", children: provenance.engineVersion }) : null] })] }, `${m.id}:${m.sourceId ?? ''}:${m.targetId ?? ''}:${i}`)))] }, group.family ?? 'all')))] }) }));
|
|
12
20
|
}
|
|
13
21
|
//# sourceMappingURL=EvidenceTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EvidenceTable.js","sourceRoot":"","sources":["../../src/qualification/EvidenceTable.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAe,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,kBAAkB,IAAI,CAAC,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"EvidenceTable.js","sourceRoot":"","sources":["../../src/qualification/EvidenceTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export interface TargetPoint {
|
|
|
10
10
|
export interface TargetDistributionProps {
|
|
11
11
|
/** engine (Methods) summary of the eligible exact values */
|
|
12
12
|
summary: ContinuousSummary | null;
|
|
13
|
-
/** raw declared values shown as a
|
|
13
|
+
/** raw declared values shown as a histogram under the box (host decides the population) */
|
|
14
14
|
points?: readonly TargetPoint[];
|
|
15
15
|
unit?: string | null;
|
|
16
16
|
title: string;
|
|
@@ -20,9 +20,10 @@ export interface TargetDistributionProps {
|
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Continuous target: the engine's quartile box (min–max whiskers, Q1–Q3 box, median,
|
|
23
|
-
* mean) above a
|
|
23
|
+
* mean) above a histogram of the raw declared values; censored/composite counts are
|
|
24
|
+
* stacked as outlined bars.
|
|
24
25
|
*/
|
|
25
|
-
export declare function TargetDistribution({ summary, points, unit, title, locale, width, className }: TargetDistributionProps): import("react").JSX.Element;
|
|
26
|
+
export declare function TargetDistribution({ summary, points: declared, unit, title, locale, width, className }: TargetDistributionProps): import("react").JSX.Element;
|
|
26
27
|
export interface ClassCountBarsProps {
|
|
27
28
|
counts: Readonly<Record<string, number>>;
|
|
28
29
|
title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TargetDistribution.d.ts","sourceRoot":"","sources":["../../src/qualification/TargetDistribution.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAKpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC;AAEnE,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,
|
|
1
|
+
{"version":3,"file":"TargetDistribution.d.ts","sourceRoot":"","sources":["../../src/qualification/TargetDistribution.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAKpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC;AAEnE,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,2FAA2F;IAC3F,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAa,EAAE,IAAI,EAAE,KAAK,EAAE,MAAa,EAAE,KAAY,EAAE,SAAS,EAAE,EAAE,uBAAuB,+BAyIlJ;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAW,EAAE,SAAS,EAAE,EAAE,mBAAmB,+BA2B5F"}
|
|
@@ -9,50 +9,65 @@ const STATUS_COLOR = { exact: '#0d9488', censored: '#d97706', composite: '#7c3ae
|
|
|
9
9
|
const BOX = '#0d9488';
|
|
10
10
|
const MEAN = '#4f46e5';
|
|
11
11
|
const PAD = { left: 16, right: 16 };
|
|
12
|
-
/**
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
/** Equal-width bins over the shown extent (about √n bins, 5 to 40), with counts per status. */
|
|
13
|
+
function binsOf(points, lo, hi) {
|
|
14
|
+
const k = Math.max(5, Math.min(40, Math.ceil(Math.sqrt(points.length))));
|
|
15
|
+
const step = hi > lo ? (hi - lo) / k : 1;
|
|
16
|
+
const bins = Array.from({ length: k }, (_, i) => ({ from: lo + i * step, to: lo + (i + 1) * step, exact: 0, censored: 0, composite: 0 }));
|
|
17
|
+
for (const p of points)
|
|
18
|
+
bins[Math.min(k - 1, Math.max(0, Math.floor((p.value - lo) / step)))][p.status] += 1;
|
|
19
|
+
return bins;
|
|
18
20
|
}
|
|
21
|
+
const STACK = ['exact', 'censored', 'composite'];
|
|
19
22
|
/**
|
|
20
23
|
* Continuous target: the engine's quartile box (min–max whiskers, Q1–Q3 box, median,
|
|
21
|
-
* mean) above a
|
|
24
|
+
* mean) above a histogram of the raw declared values; censored/composite counts are
|
|
25
|
+
* stacked as outlined bars.
|
|
22
26
|
*/
|
|
23
|
-
export function TargetDistribution({ summary, points = [], unit, title, locale = 'fr', width = 1000, className }) {
|
|
27
|
+
export function TargetDistribution({ summary, points: declared = [], unit, title, locale = 'fr', width = 1000, className }) {
|
|
24
28
|
const id = useId();
|
|
25
29
|
const [hover, setHover] = useState(null);
|
|
26
30
|
const t = (k) => loc(C[k], locale);
|
|
27
|
-
|
|
31
|
+
// non-finite values cannot be placed on the axis; they are neither binned nor counted
|
|
32
|
+
const points = declared.filter((p) => Number.isFinite(p.value));
|
|
33
|
+
const height = points.length ? 236 : 112;
|
|
28
34
|
const x0 = PAD.left;
|
|
29
35
|
const x1 = width - PAD.right;
|
|
30
36
|
const all = [...points.map((p) => p.value), ...(summary ? [summary.min, summary.max] : [])];
|
|
37
|
+
const range = extentOf(all.length ? all : [0, 1]);
|
|
31
38
|
const xd = niceExtent(all.length ? all : [0, 1], 0.04);
|
|
32
39
|
const xs = makeScale(xd, x0, x1);
|
|
33
40
|
const boxY = 18;
|
|
34
41
|
const boxH = 34;
|
|
35
42
|
const mid = boxY + boxH / 2;
|
|
36
|
-
const
|
|
37
|
-
const stripH = 72;
|
|
43
|
+
const histTop = 72;
|
|
38
44
|
const axisY = height - 10;
|
|
45
|
+
const histBottom = axisY - 16;
|
|
39
46
|
const u = unit ? ` ${unit}` : '';
|
|
40
47
|
const desc = summary
|
|
41
48
|
? `${t('min')} ${fmt(summary.min)}, ${t('q25')} ${fmt(summary.q25)}, ${t('median')} ${fmt(summary.median)}, ${t('q75')} ${fmt(summary.q75)}, ${t('max')} ${fmt(summary.max)}, ${t('mean')} ${fmt(summary.mean)}${u}; n=${summary.count}`
|
|
42
49
|
: `${points.length}`;
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
const
|
|
50
|
+
const bins = points.length ? binsOf(points, range.min, range.max) : [];
|
|
51
|
+
const top = Math.max(1, ...bins.map((b) => b.exact + b.censored + b.composite));
|
|
52
|
+
const ys = (v) => histBottom - (v / top) * (histBottom - histTop);
|
|
53
|
+
const hb = typeof hover === 'number' ? bins[hover] : undefined;
|
|
46
54
|
const counts = { exact: 0, censored: 0, composite: 0 };
|
|
47
55
|
for (const p of points)
|
|
48
56
|
counts[p.status] += 1;
|
|
49
|
-
return (_jsxs("figure", { className: cx('n4q-chart', 'n4q-target', className), children: [_jsxs("div", { className: "n4q-chart-plot", children: [_jsxs("svg", { viewBox: `0 0 ${width} ${height}`, className: "n4q-svg", role: "img", "aria-labelledby": `${id}-t ${id}-d`, onMouseLeave: () => setHover(null), children: [_jsx("title", { id: `${id}-t`, children: title }), _jsx("desc", { id: `${id}-d`, children: desc }), ticks(xd, Math.max(3, Math.min(8, Math.floor((x1 - x0) / 80)))).map((v) => (_jsxs("g", { children: [_jsx("line", { className: "n4q-grid", x1: xs(v), x2: xs(v), y1: 8, y2: axisY - 12 }), _jsx("text", { className: "n4q-tick", x: xs(v), y: axisY, textAnchor: "middle", children: fmt(v) })] }, v))), summary ? (_jsxs("g", { tabIndex: 0, role: "img", "aria-label": desc, className: "n4q-hit", onMouseEnter: () => setHover('box'), onFocus: () => setHover('box'), onBlur: () => setHover(null), children: [_jsx("rect", { x: xs(summary.min) - 6, y: boxY - 6, width: xs(summary.max) - xs(summary.min) + 12, height: boxH + 12, fill: "transparent" }), _jsx("line", { className: "n4q-whisker", x1: xs(summary.min), x2: xs(summary.q25), y1: mid, y2: mid }), _jsx("line", { className: "n4q-whisker", x1: xs(summary.q75), x2: xs(summary.max), y1: mid, y2: mid }), _jsx("line", { className: "n4q-whisker", x1: xs(summary.min), x2: xs(summary.min), y1: mid - 8, y2: mid + 8 }), _jsx("line", { className: "n4q-whisker", x1: xs(summary.max), x2: xs(summary.max), y1: mid - 8, y2: mid + 8 }), _jsx("rect", { x: xs(summary.q25), y: boxY, width: Math.max(2, xs(summary.q75) - xs(summary.q25)), height: boxH, rx: 4, fill: BOX, fillOpacity: hover === 'box' ? 0.3 : 0.18 }), _jsx("line", { x1: xs(summary.median), x2: xs(summary.median), y1: boxY, y2: boxY + boxH, stroke: BOX, strokeWidth: 3, strokeLinecap: "round" }), _jsx("path", { d: `M${xs(summary.mean)},${mid - 6}l6,6l-6,6l-6,-6Z`, fill: MEAN, className: "n4q-marker" })] })) : null,
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
return (_jsxs("figure", { className: cx('n4q-chart', 'n4q-target', className), children: [_jsxs("div", { className: "n4q-chart-plot", children: [_jsxs("svg", { viewBox: `0 0 ${width} ${height}`, className: "n4q-svg", role: "img", "aria-labelledby": `${id}-t ${id}-d`, onMouseLeave: () => setHover(null), children: [_jsx("title", { id: `${id}-t`, children: title }), _jsx("desc", { id: `${id}-d`, children: desc }), ticks(xd, Math.max(3, Math.min(8, Math.floor((x1 - x0) / 80)))).map((v) => (_jsxs("g", { children: [_jsx("line", { className: "n4q-grid", x1: xs(v), x2: xs(v), y1: 8, y2: axisY - 12 }), _jsx("text", { className: "n4q-tick", x: xs(v), y: axisY, textAnchor: "middle", children: fmt(v) })] }, v))), summary ? (_jsxs("g", { tabIndex: 0, role: "img", "aria-label": desc, className: "n4q-hit", onMouseEnter: () => setHover('box'), onFocus: () => setHover('box'), onBlur: () => setHover(null), children: [_jsx("rect", { x: xs(summary.min) - 6, y: boxY - 6, width: xs(summary.max) - xs(summary.min) + 12, height: boxH + 12, fill: "transparent" }), _jsx("line", { className: "n4q-whisker", x1: xs(summary.min), x2: xs(summary.q25), y1: mid, y2: mid }), _jsx("line", { className: "n4q-whisker", x1: xs(summary.q75), x2: xs(summary.max), y1: mid, y2: mid }), _jsx("line", { className: "n4q-whisker", x1: xs(summary.min), x2: xs(summary.min), y1: mid - 8, y2: mid + 8 }), _jsx("line", { className: "n4q-whisker", x1: xs(summary.max), x2: xs(summary.max), y1: mid - 8, y2: mid + 8 }), _jsx("rect", { x: xs(summary.q25), y: boxY, width: Math.max(2, xs(summary.q75) - xs(summary.q25)), height: boxH, rx: 4, fill: BOX, fillOpacity: hover === 'box' ? 0.3 : 0.18 }), _jsx("line", { x1: xs(summary.median), x2: xs(summary.median), y1: boxY, y2: boxY + boxH, stroke: BOX, strokeWidth: 3, strokeLinecap: "round" }), _jsx("path", { d: `M${xs(summary.mean)},${mid - 6}l6,6l-6,6l-6,-6Z`, fill: MEAN, className: "n4q-marker" })] })) : null, bins.length ? _jsx("line", { className: "n4q-whisker", x1: x0, x2: x1, y1: histBottom, y2: histBottom }) : null, bins.map((b, i) => {
|
|
58
|
+
const left = xs(b.from) + 0.5;
|
|
59
|
+
const w = Math.max(1, xs(b.to) - xs(b.from) - 1);
|
|
60
|
+
let base = 0;
|
|
61
|
+
return (_jsxs("g", { className: "n4q-hit", onMouseEnter: () => setHover(i), children: [_jsx("rect", { x: left, y: histTop, width: w, height: histBottom - histTop, fill: "transparent" }), STACK.map((status) => {
|
|
62
|
+
const n = b[status];
|
|
63
|
+
if (!n)
|
|
64
|
+
return null;
|
|
65
|
+
const y = ys(base + n);
|
|
66
|
+
const h = ys(base) - y;
|
|
67
|
+
base += n;
|
|
68
|
+
return (_jsx("rect", { x: left, y: y, width: w, height: h, fill: STATUS_COLOR[status], fillOpacity: hover === i ? 1 : 0.85, style: status === 'exact' ? undefined : { fill: 'var(--n4q-surface, #fff)', fillOpacity: 1, stroke: STATUS_COLOR[status], strokeWidth: 2 } }, status));
|
|
69
|
+
})] }, i));
|
|
70
|
+
})] }), hover === 'box' && summary ? (_jsxs(ChartTooltip, { x: xs(summary.median), y: boxY, width: width, height: height, children: [_jsxs("div", { className: "n4q-tip-head", children: [t('count'), " ", summary.count] }), _jsx(TipRow, { label: t('max'), value: `${fmt(summary.max)}${u}` }), _jsx(TipRow, { label: t('q75'), value: fmt(summary.q75) }), _jsx(TipRow, { color: BOX, label: t('median'), value: fmt(summary.median) }), _jsx(TipRow, { label: t('q25'), value: fmt(summary.q25) }), _jsx(TipRow, { label: t('min'), value: fmt(summary.min) }), _jsx(TipRow, { color: MEAN, label: t('mean'), value: fmt(summary.mean) }), _jsx(TipRow, { label: t('sd'), value: fmt(summary.sampleSd) })] })) : null, hb ? (_jsxs(ChartTooltip, { x: xs((hb.from + hb.to) / 2), y: histTop, width: width, height: height, children: [_jsxs("div", { className: "n4q-tip-head", children: [fmt(hb.from), " \u2013 ", fmt(hb.to), u] }), STACK.filter((s) => hb[s] > 0).map((s) => _jsx(TipRow, { color: STATUS_COLOR[s], label: t(s), value: String(hb[s]) }, s))] })) : null, bins.length ? (_jsxs("table", { className: "n4q-visually-hidden", children: [_jsx("caption", { children: title }), _jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { scope: "col", children: t('range') }), STACK.map((s) => _jsx("th", { scope: "col", children: t(s) }, s))] }) }), _jsx("tbody", { children: bins.filter((b) => b.exact + b.censored + b.composite).map((b) => (_jsxs("tr", { children: [_jsxs("th", { scope: "row", children: [fmt(b.from), " \u2013 ", fmt(b.to), u] }), STACK.map((s) => _jsx("td", { children: b[s] }, s))] }, b.from))) })] })) : null] }), _jsx("figcaption", { children: _jsxs("ul", { className: "n4q-legend", children: [summary ? _jsxs("li", { children: [_jsx("span", { className: "n4q-key-box", "aria-hidden": "true" }), t('q25'), "\u2013", t('q75'), " \u00B7 ", t('median')] }) : null, summary ? _jsxs("li", { children: [_jsx("span", { className: "n4q-key-diamond", style: { background: MEAN }, "aria-hidden": "true" }), t('mean')] }) : null, Object.keys(counts).filter((s) => counts[s] > 0).map((s) => (_jsxs("li", { children: [_jsx("span", { className: s === 'exact' ? 'n4q-key-dot' : 'n4q-key-dot n4q-key-hollow', style: s === 'exact' ? { background: STATUS_COLOR[s] } : { borderColor: STATUS_COLOR[s] }, "aria-hidden": "true" }), t(s), " ", _jsx("strong", { children: counts[s] })] }, s)))] }) })] }));
|
|
56
71
|
}
|
|
57
72
|
/** Categorical target: horizontal bars of engine class counts, largest first, value at the tip. */
|
|
58
73
|
export function ClassCountBars({ counts, title, width = 640, className }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TargetDistribution.js","sourceRoot":"","sources":["../../src/qualification/TargetDistribution.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TargetDistribution.js","sourceRoot":"","sources":["../../src/qualification/TargetDistribution.tsx"],"names":[],"mappings":"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"}
|
|
@@ -418,4 +418,24 @@ export declare function extractDuplicates(view: QualificationReportView, sourceI
|
|
|
418
418
|
* computed (unbalanced design), the REML ICC(1) becomes the ICC series, labelled as such.
|
|
419
419
|
*/
|
|
420
420
|
export declare function withRepeatabilityUncertainty(contexts: readonly RepeatabilityContext[], uncertainty: readonly RepeatabilityUncertainty[]): RepeatabilityContext[];
|
|
421
|
+
/** One per-observation intrinsic signature (Methods), with its native median and p95. */
|
|
422
|
+
export interface IntrinsicSignal {
|
|
423
|
+
/** `<family>.<signal>`, e.g. `pca.pca_t2`, `events.spike_count`, `reference.rms` */
|
|
424
|
+
id: string;
|
|
425
|
+
state: MetricState;
|
|
426
|
+
unit: string | null;
|
|
427
|
+
/** observation-aligned; a null value is an observation the signal could not use */
|
|
428
|
+
sampleIds: string[];
|
|
429
|
+
observationIds: string[];
|
|
430
|
+
values: (number | null)[];
|
|
431
|
+
median: number | null;
|
|
432
|
+
p95: number | null;
|
|
433
|
+
}
|
|
434
|
+
/** Intrinsic spectral signatures of one source (`options.intrinsic_qc`), or null when not requested. */
|
|
435
|
+
export interface IntrinsicSignatures {
|
|
436
|
+
signals: Readonly<Record<string, IntrinsicSignal>>;
|
|
437
|
+
/** computed dataset-level scalars, keyed `<family>.<name>` (e.g. `events.global_spike_count`) */
|
|
438
|
+
globals: Readonly<Record<string, number>>;
|
|
439
|
+
}
|
|
440
|
+
export declare function extractIntrinsic(view: QualificationReportView, sourceId: string): IntrinsicSignatures | null;
|
|
421
441
|
//# sourceMappingURL=extractBlocks.d.ts.map
|