Categories & Groups / Category
15 entries across 6 modules.
Widget kinds a column's meta.drawer config can request. The value discriminates
the ColumnDrawerConfig union, so each one implies the runtime type of that
branch's options (e.g. DRAWER_WIDGET.AUTOCOMPLETE_OBJECTS needs
{ code, label }[]).
A DRAWER_WIDGET value.
Where a drawer section's value reads and writes in app state. Discriminates the
ColumnDrawerBinding union, so ColumnDrawerSection can dispatch on it
without columns knowing how the context is structured.
A DRAWER_BINDING value.
Sentinel values for a numberRange widget's adornment. Anything else is used
verbatim as the start-adornment text.
GENERATED FILE — DO NOT EDIT.
Written by tools/generate-supplier-meta.js (pnpm run generate) from the static
fields of the supplier classes, which remain the single source of truth. Change a
supplier's name, country, shipping scope or shipsTo on its class and regenerate;
src/suppliers/__tests__/supplierMeta.test.ts fails if this file drifts.
Its reason to exist is bundle size: the UI needs supplier metadata at mount, and
reading it off the classes would pull the whole supplier layer into the popup's
startup bundle. See src/constants/supplierMeta.ts for the accessors.
Display and shipping metadata for every live supplier, keyed by class name, in the
order src/suppliers/index.ts exports them.
Display and shipping metadata for one supplier — the subset of a supplier class's
static fields the UI needs before any search has run.
The active supplier class names, sorted, mirroring the value exports of the
@/suppliers barrel. See the module header for how it stays dependency-free.
Failure share at or above which a category counts as "excessive". Below this a supplier is treated as healthy — occasional failures are normal. Total failure (a ratio of 1) escalates to the critical status for that category.
Exported so callers and tests can reference the threshold rather than duplicating the literal.
Reasons the shared search
AbortControllergets aborted. Passed verbatim tocontroller.abort()so a terminal search event can name the cause fromsignal.reasoninstead of string-matching a free-form message.