annotate web/TiledHome.ts @ 2402:1d3594ffd14b

new home-status elt
author drewp@bigasterisk.com
date Fri, 17 May 2024 16:56:32 -0700
parents 40d5a54dec99
children d8950f9b46be 69ca2b2fc133
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2402
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
1 import debug from "debug";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
2 import * as FlexLayout from "flexlayout-react";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
3 import { LitElement, html } from "lit";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
4 import { customElement } from "lit/decorators.js";
2374
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
5 import * as React from "react";
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
6 import { createRoot } from "react-dom/client";
2402
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
7 import { getTopGraph } from "./RdfdbSyncedGraph";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
8 import { SyncedGraph } from "./SyncedGraph";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
9 import { Patch } from "./patch";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
10 import { NamedNode } from "n3";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
11 export { RdfdbSyncedGraph } from "./RdfdbSyncedGraph";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
12 export { Light9CollectorUi } from "./collector/Light9CollectorUi";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
13 export { Light9FadeUi } from "./fade/Light9FadeUi";
2374
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
14 export { Light9DeviceSettings } from "./live/Light9DeviceSettings";
2402
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
15 import { showRoot } from "./show_specific";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
16 import { HandlerFunc } from "./AutoDependencies";
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
17 const log = debug("home");
2374
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
18
2382
40d5a54dec99 ts warnings
drewp@bigasterisk.com
parents: 2376
diff changeset
19 const config: FlexLayout.IJsonModel = {
2402
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
20 global: {
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
21 tabEnableRename: false,
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
22 },
2374
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
23 borders: [],
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
24 layout: {
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
25 type: "row",
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
26 weight: 100,
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
27 children: [
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
28 {
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
29 type: "tabset",
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
30 weight: 50,
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
31 children: [{ type: "tab", name: "devsettings", component: "light9-device-settings" }],
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
32 },
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
33 {
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
34 type: "tabset",
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
35 weight: 50,
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
36 children: [{ type: "tab", name: "collector", component: "light9-collector-ui" }],
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
37 },
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
38 ],
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
39 },
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
40 };
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
41
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
42 // see https://github.com/lit/lit/tree/main/packages/labs/react
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
43
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
44 class Main extends React.Component {
2382
40d5a54dec99 ts warnings
drewp@bigasterisk.com
parents: 2376
diff changeset
45 state: { model: FlexLayout.Model };
40d5a54dec99 ts warnings
drewp@bigasterisk.com
parents: 2376
diff changeset
46 constructor(props: any) {
2374
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
47 super(props);
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
48 this.state = { model: FlexLayout.Model.fromJson(config) };
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
49 }
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
50
2382
40d5a54dec99 ts warnings
drewp@bigasterisk.com
parents: 2376
diff changeset
51 factory = (node: any) => {
2374
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
52 var component = node.getComponent();
2402
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
53 return React.createElement(component, null, "");
2374
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
54 };
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
55
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
56 render() {
2402
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
57 return React.createElement(FlexLayout.Layout, {
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
58 model: this.state.model,
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
59 realtimeResize: true,
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
60 factory: this.factory,
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
61 });
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
62 }
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
63 }
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
64
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
65 @customElement("light9-home-status")
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
66 export class Light9HomeStatus extends LitElement {
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
67 graph!: SyncedGraph;
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
68 render() {
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
69 return html`<rdfdb-synced-graph></rdfdb-synced-graph>
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
70 <a href="metrics/">metrics</a> `;
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
71 }
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
72 constructor() {
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
73 super();
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
74 getTopGraph().then((g) => {
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
75 this.graph = g;
1d3594ffd14b new home-status elt
drewp@bigasterisk.com
parents: 2382
diff changeset
76 });
2374
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
77 }
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
78 }
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
79
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
80 const root = createRoot(document.getElementById("container")!);
9d47c44d4ae4 experimental tiled-layout home page
drewp@bigasterisk.com
parents:
diff changeset
81 root.render(React.createElement(Main));