Mercurial > code > home > repos > light9
annotate web/tiledLayoutPersistence.ts @ 2411:66a4db80ce6e
keep 44fc
author | drewp@bigasterisk.com |
---|---|
date | Sat, 18 May 2024 23:22:00 -0700 |
parents | 69ca2b2fc133 |
children |
rev | line source |
---|---|
2405
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
1 // for persistence |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
2 interface SimpleLayoutTab { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
3 type: "tab"; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
4 light9Element: string; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
5 } |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
6 export interface SimpleLayout { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
7 type: string; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
8 weight?: number; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
9 children: (SimpleLayout | SimpleLayoutTab)[]; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
10 } |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
11 // for FlexLayout |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
12 interface FullLayoutTab { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
13 type: "tab"; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
14 name: string; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
15 component: string; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
16 } |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
17 interface FullLayout { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
18 type: string; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
19 weight?: number; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
20 children: (FullLayout | FullLayoutTab)[]; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
21 } |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
22 function tabConfigFromSimpleTabName(name: string): FullLayoutTab { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
23 return { type: "tab", name: name.replace(/^light9-/, ""), component: name }; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
24 } |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
25 export function simpleLayout(full: FullLayout | FullLayoutTab): SimpleLayout | SimpleLayoutTab { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
26 if (full.type == "tab") { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
27 return { type: "tab", light9Element: (full as FullLayoutTab).component }; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
28 } else { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
29 return { ...(full as FullLayout), children: (full as FullLayout).children.map(simpleLayout) }; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
30 } |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
31 } |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
32 export function fullLayout(simple: SimpleLayout | SimpleLayoutTab): FullLayout | FullLayoutTab { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
33 if (simple.type == "tab") { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
34 return tabConfigFromSimpleTabName((simple as SimpleLayoutTab).light9Element); |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
35 } else { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
36 return { ...(simple as SimpleLayout), children: (simple as SimpleLayout).children.map(fullLayout) }; |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
37 } |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
38 } |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
39 export const persistedLayout: SimpleLayout = { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
40 type: "row", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
41 children: [ |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
42 // { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
43 // type: "tabset", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
44 // weight: 50, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
45 // children: [ |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
46 // { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
47 // type: "tab", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
48 // light9Element: "light9-device-settings", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
49 // }, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
50 // ], |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
51 // }, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
52 // { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
53 // type: "row", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
54 // weight: 50, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
55 // children: [ |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
56 // { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
57 // type: "tabset", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
58 // weight: 50, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
59 // children: [ |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
60 // { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
61 // type: "tab", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
62 // light9Element: "light9-fade-ui", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
63 // }, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
64 // ], |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
65 // }, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
66 // { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
67 // type: "tabset", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
68 // weight: 50, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
69 // children: [ |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
70 // { |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
71 // type: "tab", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
72 // light9Element: "light9-collector-ui", |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
73 // }, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
74 // ], |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
75 // }, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
76 // ], |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
77 // }, |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
78 ], |
69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
drewp@bigasterisk.com
parents:
diff
changeset
|
79 }; |