7.1 KiB
INI Panel Entry
This page is the short entry map for the INI panel UI shell.
Shell Module
Use the shell-facing module when an outer UI needs entry links or a read-only control view:
import {
INI_PANEL_ENTRIES,
createControlPageBrowserApiManifest,
createControlPageBrowserApiMethods,
createControlPageBrowserApiSchema,
createIniPanelLaunchApiManifest,
createIniPanelLaunchApiSchema,
createIniPanelLauncherLinkViewModel,
createIniPanelShellControlPageContract,
createIniPanelShellIntegrationManifest,
createIniPanelShellIntegrationReadiness,
createIniPanelShellIntegrationSchema,
createIniPanelShellViewModel,
getIniPanelEntryByHref,
getVisibleIniPanelEntries,
createMachineSessionControlPageController,
createMachineSessionReadonlyStatus,
createMachineSessionReadonlyStatusApiManifest,
readMachineSessionReadonlyStatus,
loadMachineSessionForControlPageWorkflow,
createControlPageSessionLoadState,
refreshMachineSessionControlPage,
controlPageStatusText,
renderMachineSessionControlView,
isSupportedIniPanelControlPageApiManifest,
isSupportedIniPanelLaunchApiManifest,
isSupportedIniPanelShellIntegrationManifest,
} from "../runtime/ui/ini-panel/ui-shell.js";
ui-shell.js re-exports the entry manifest, the read-only control-page
controller, the unified read-only status API, the readonly-status API manifest,
and the control-view renderer. It does not implement CNC behavior.
Pages
| Page | Path | Role |
|---|---|---|
| Launch | runtime/ui/ini-panel/launch.html |
Read-only entry page for available panel surfaces. |
| Edit and run | runtime/ui/ini-panel/index.html |
Editable INI panel and existing run workflow surface. |
| Read-only control view | runtime/ui/ini-panel/control-page.html |
Read-only control view backed by the panel API. |
Visible Entries
The visible launch entries come from getVisibleIniPanelEntries():
| Entry id | Href | Title |
|---|---|---|
edit-run |
./index.html |
Open edit and run panel |
control-view |
./control-page.html |
Open read-only control view |
Launcher pages can render links from createIniPanelLauncherLinkViewModel()
without reading manifest field names directly. Each item has entryId, href,
and label.
Outer shells can call createIniPanelShellViewModel() when they need one
read-only model with pages, launcherLinks, and controlPage helpers for
mounting the existing control-page controller, refresh workflow, and renderer.
Use controlPage.readStatus or readMachineSessionReadonlyStatus() when an
outer shell needs one stable read of stateBundle, workflowStatus,
overview, controlView, session, runReadiness, and run.
Use createMachineSessionReadonlyStatusApiManifest() or
controlPage.readonlyStatusApiManifest when you only need the API shape and
method names.
Use createIniPanelShellControlPageContract() or controlPage.contract when
an outer shell needs a fast contract check for createController,
loadSessionState, readStatus, refresh, renderView, the readonly status
manifest, and its status fields before mounting the embedded panel. The
contract lists readonly status fields for stateBundle, workflowStatus,
overview, controlView, report, runReadiness, run, session, and
status.
The browser control page also exposes this contract through
linuxCncIniPanelControlPageApi.getControlPageContract(), so real iframe-based
smokes can verify the same API shape before reading the embedded panel state.
Use linuxCncIniPanelControlPageApi.getControlPageApiMethods() when a browser
outer page needs the exact exposed method list before calling the read-only
control page API.
Use createControlPageBrowserApiSchema(),
createControlPageBrowserApiManifest(), or
linuxCncIniPanelControlPageApi.getControlPageApiSchema() and
linuxCncIniPanelControlPageApi.getControlPageApiManifest() when a browser
outer page needs a versioned control-page API description before reading the
embedded panel. Use isSupportedIniPanelControlPageApiManifest() or
linuxCncIniPanelControlPageApi.isSupportedControlPageApiManifest() for a
read-only compatibility predicate before consuming that manifest.
Use linuxCncIniPanelControlPageApi.readControlPageStatus() when a browser
outer page needs the same readonly status snapshot from the real embedded
control page after save/load session workflows.
The launch page exposes linuxCncIniPanelLaunchApi.getControlPageApiMethods()
from the same shell view-model so entry pages can consume the available
read-only control-page API list without loading the control-page iframe first.
Use createIniPanelLaunchApiManifest() or
linuxCncIniPanelLaunchApi.getLaunchApiManifest() when an outer shell needs a
single read-only description of launch methods, visible entries, target pages,
the control-page browser API methods, and OPFS/session persistence capabilities
for machine files, session snapshots, and read-only status.
Use createIniPanelLaunchApiSchema(),
linuxCncIniPanelLaunchApi.getLaunchApiSchema(), or manifestVersion when an
outer shell needs to check launch manifest compatibility before consuming these
fields.
Use isSupportedIniPanelLaunchApiManifest() or
linuxCncIniPanelLaunchApi.isSupportedLaunchApiManifest() for a read-only
compatibility predicate before using a launch manifest.
Use createIniPanelShellIntegrationSchema(),
createIniPanelShellIntegrationManifest(),
linuxCncIniPanelLaunchApi.getShellIntegrationSchema(), or
linuxCncIniPanelLaunchApi.getShellIntegrationManifest() when an outer shell
needs one versioned read of pages, launcher links, launch API metadata,
control-page API metadata, OPFS/session persistence capabilities, and current
compatibility status. Use isSupportedIniPanelShellIntegrationManifest() when
the outer shell needs to check that integration manifest before consuming it.
Use createIniPanelShellIntegrationReadiness() or
linuxCncIniPanelLaunchApi.getShellIntegrationReadiness() when the outer shell
needs a read-only ready/blocked status, failed check names, API names, and
counts for pages, methods, and persistence capabilities before mounting any
embedded control page.
The control-page refresh workflow lives in
runtime/ui/ini-panel/control-page-refresh-workflow.js. Use
refreshMachineSessionControlPage() when an outer shell needs a structured
refresh result with phase, statusText, view, renderResult, and error.
controlPageStatusText() formats the already-observed panel status fields for
the read-only status line, and createControlPageRefreshState() is the stable
state-shape helper used by the workflow.
The control-page session workflow lives in
runtime/ui/ini-panel/control-page-session-workflow.js. Use
loadMachineSessionForControlPageWorkflow() when an outer shell needs a
read-only readiness snapshot for the embedded panel API and first control view.
createControlPageSessionLoadState() is the stable state-shape helper for
waiting-panel, waiting-api, waiting-session, ready, and error phases.
Boundary
The entry shell only links pages and renders already-observed panel state. It does not parse G-code, infer canonical events, or implement LinuxCNC-owned tool, parameter, planner, or kinematics behavior.