FastAPI backend (Python 3.11, MSSQL ODBC for SambaPOS, Azure DI OCR),
kitchen_db on central PG. React/TS/Vite frontend with navy sidebar layout.
Backend: auth.py (APP_SLUG=kitchen, SimpleNamespace — archive routes use
.kitchen_id/.is_admin without modification), main.py (51 migrations, scheduler,
internal router for KDS bookings feed), api/internal.py, full archive API
(31 routers: invoices, recipes, menus, sambapos, resos, newbook, disputes,
purchase_orders, etc.), models, migrations, OCR pipeline.
kitchen_id pinned to 1 (B1 — single hotel).
Frontend: AuthGate (app=kitchen, token shim for archive compat — B5b pending),
Layout (navy sidebar, 6 sections, Lucide icons, teal --app-primary),
App.tsx (Outlet pattern, UploadApp outside Layout), index.css (full :root block).
strict: false — archive components have type issues; build clean.
Note: 45 archive components call fetch('/api/...') without /kitchen/ prefix
(B5b). Runtime 404s; deferred until after initial testing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
65 lines
2.1 KiB
TypeScript
65 lines
2.1 KiB
TypeScript
export default class BarController extends DatasetController {
|
|
static id: string;
|
|
/**
|
|
* @type {any}
|
|
*/
|
|
static overrides: any;
|
|
/**
|
|
* Overriding primitive data parsing since we support mixed primitive/array
|
|
* data for float bars
|
|
* @protected
|
|
*/
|
|
protected parsePrimitiveData(meta: any, data: any, start: any, count: any): any[];
|
|
/**
|
|
* Overriding array data parsing since we support mixed primitive/array
|
|
* data for float bars
|
|
* @protected
|
|
*/
|
|
protected parseArrayData(meta: any, data: any, start: any, count: any): any[];
|
|
/**
|
|
* Overriding object data parsing since we support mixed primitive/array
|
|
* value-scale data for float bars
|
|
* @protected
|
|
*/
|
|
protected parseObjectData(meta: any, data: any, start: any, count: any): any[];
|
|
update(mode: any): void;
|
|
/**
|
|
* Returns the stacks based on groups and bar visibility.
|
|
* @param {number} [last] - The dataset index
|
|
* @param {number} [dataIndex] - The data index of the ruler
|
|
* @returns {string[]} The list of stack IDs
|
|
* @private
|
|
*/
|
|
private _getStacks;
|
|
/**
|
|
* Returns the effective number of stacks based on groups and bar visibility.
|
|
* @private
|
|
*/
|
|
private _getStackCount;
|
|
_getAxisCount(): number;
|
|
getFirstScaleIdForIndexAxis(): string;
|
|
_getAxis(): string[];
|
|
/**
|
|
* Returns the stack index for the given dataset based on groups and bar visibility.
|
|
* @param {number} [datasetIndex] - The dataset index
|
|
* @param {string} [name] - The stack name to find
|
|
* @param {number} [dataIndex]
|
|
* @returns {number} The stack index
|
|
* @private
|
|
*/
|
|
private _getStackIndex;
|
|
/**
|
|
* @private
|
|
*/
|
|
private _getRuler;
|
|
/**
|
|
* Note: pixel values are not clamped to the scale area.
|
|
* @private
|
|
*/
|
|
private _calculateBarValuePixels;
|
|
/**
|
|
* @private
|
|
*/
|
|
private _calculateBarIndexPixels;
|
|
}
|
|
import DatasetController from "../core/core.datasetController.js";
|