推进 INI 面板 launch 暴露 control-page API 清单
This commit is contained in:
@@ -5,6 +5,7 @@ import {
|
||||
createMachineSessionControlPageController,
|
||||
} from "./control-page-controller.js";
|
||||
import {
|
||||
createControlPageBrowserApiMethods,
|
||||
createIniPanelShellControlPageContract,
|
||||
} from "./ui-shell.js";
|
||||
|
||||
@@ -21,19 +22,6 @@ const controller = createMachineSessionControlPageController({
|
||||
|
||||
controller.mount();
|
||||
|
||||
export function createControlPageBrowserApiMethods() {
|
||||
return [
|
||||
"getControlPageApiMethods",
|
||||
"getControlPageContract",
|
||||
"getControlView",
|
||||
"getPanelApi",
|
||||
"loadControlPageSessionState",
|
||||
"readControlPageStatus",
|
||||
"refreshControlPage",
|
||||
"renderControlPage",
|
||||
];
|
||||
}
|
||||
|
||||
window.linuxCncIniPanelControlPageApi = {
|
||||
getControlPageApiMethods: createControlPageBrowserApiMethods,
|
||||
getControlView: controller.getControlView,
|
||||
|
||||
@@ -73,9 +73,13 @@
|
||||
</section>
|
||||
</main>
|
||||
<script type="module">
|
||||
import { createIniPanelLauncherLinkViewModel } from "./ui-shell.js";
|
||||
import {
|
||||
createIniPanelLauncherLinkViewModel,
|
||||
createIniPanelShellViewModel,
|
||||
} from "./ui-shell.js";
|
||||
|
||||
const links = createIniPanelLauncherLinkViewModel();
|
||||
const shellViewModel = createIniPanelShellViewModel();
|
||||
const links = shellViewModel.launcherLinks;
|
||||
for (const linkModel of links) {
|
||||
const link = document.querySelector(`a[data-entry-id="${linkModel.entryId}"]`);
|
||||
if (!link) {
|
||||
@@ -84,6 +88,11 @@
|
||||
link.textContent = linkModel.label;
|
||||
link.href = linkModel.href;
|
||||
}
|
||||
|
||||
window.linuxCncIniPanelLaunchApi = {
|
||||
getLauncherLinks: () => shellViewModel.launcherLinks,
|
||||
getControlPageApiMethods: () => shellViewModel.controlPage.browserApiMethods,
|
||||
};
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -78,6 +78,19 @@ export function createIniPanelShellControlPageContract() {
|
||||
};
|
||||
}
|
||||
|
||||
export function createControlPageBrowserApiMethods() {
|
||||
return [
|
||||
"getControlPageApiMethods",
|
||||
"getControlPageContract",
|
||||
"getControlView",
|
||||
"getPanelApi",
|
||||
"loadControlPageSessionState",
|
||||
"readControlPageStatus",
|
||||
"refreshControlPage",
|
||||
"renderControlPage",
|
||||
];
|
||||
}
|
||||
|
||||
export function createIniPanelShellViewModel(entries = getVisibleIniPanelEntries()) {
|
||||
return {
|
||||
pages: entries.map(({ id, href, title }) => ({
|
||||
@@ -87,6 +100,7 @@ export function createIniPanelShellViewModel(entries = getVisibleIniPanelEntries
|
||||
})),
|
||||
launcherLinks: createIniPanelLauncherLinkViewModel(entries),
|
||||
controlPage: {
|
||||
browserApiMethods: createControlPageBrowserApiMethods(),
|
||||
contract: createIniPanelShellControlPageContract(),
|
||||
createController: createMachineSessionControlPageController,
|
||||
loadSessionState: loadMachineSessionForControlPageWorkflow,
|
||||
|
||||
Reference in New Issue
Block a user