@ratiosolver/coco 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +3 -0
  2. package/dist/coco/coco.d.ts +313 -0
  3. package/dist/coco/coco.js +557 -0
  4. package/dist/coco/coco.js.map +1 -0
  5. package/dist/coco/components/chart.d.ts +30 -0
  6. package/dist/coco/components/chart.js +231 -0
  7. package/dist/coco/components/chart.js.map +1 -0
  8. package/dist/coco/components/item.d.ts +23 -0
  9. package/dist/coco/components/item.js +85 -0
  10. package/dist/coco/components/item.js.map +1 -0
  11. package/dist/coco/components/item_chart.d.ts +15 -0
  12. package/dist/coco/components/item_chart.js +88 -0
  13. package/dist/coco/components/item_chart.js.map +1 -0
  14. package/dist/coco/components/item_properties.d.ts +11 -0
  15. package/dist/coco/components/item_properties.js +59 -0
  16. package/dist/coco/components/item_properties.js.map +1 -0
  17. package/dist/coco/components/item_publisher.d.ts +15 -0
  18. package/dist/coco/components/item_publisher.js +152 -0
  19. package/dist/coco/components/item_publisher.js.map +1 -0
  20. package/dist/coco/components/offcanvas.d.ts +6 -0
  21. package/dist/coco/components/offcanvas.js +42 -0
  22. package/dist/coco/components/offcanvas.js.map +1 -0
  23. package/dist/coco/components/publisher.d.ts +22 -0
  24. package/dist/coco/components/publisher.js +281 -0
  25. package/dist/coco/components/publisher.js.map +1 -0
  26. package/dist/coco/components/taxonomy.d.ts +27 -0
  27. package/dist/coco/components/taxonomy.js +185 -0
  28. package/dist/coco/components/taxonomy.js.map +1 -0
  29. package/dist/coco/components/type.d.ts +37 -0
  30. package/dist/coco/components/type.js +165 -0
  31. package/dist/coco/components/type.js.map +1 -0
  32. package/dist/coco/rules.d.ts +30 -0
  33. package/dist/coco/rules.js +36 -0
  34. package/dist/coco/rules.js.map +1 -0
  35. package/dist/index.d.ts +14 -0
  36. package/dist/index.js +30 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/tsconfig.tsbuildinfo +1 -0
  39. package/package.json +40 -0
@@ -0,0 +1,231 @@
1
+ import { scaleOrdinal } from "d3-scale";
2
+ import { schemeCategory10 } from "d3-scale-chromatic";
3
+ export var chart;
4
+ (function (chart_1) {
5
+ class ChartManager {
6
+ constructor() {
7
+ this.charts = new Map();
8
+ this.add_chart_generator(new BoolChartGenerator());
9
+ this.add_chart_generator(new IntChartGenerator());
10
+ this.add_chart_generator(new FloatChartGenerator());
11
+ this.add_chart_generator(new StringChartGenerator());
12
+ this.add_chart_generator(new SymbolChartGenerator());
13
+ this.add_chart_generator(new ItemChartGenerator());
14
+ this.add_chart_generator(new JSONChartGenerator());
15
+ }
16
+ static get_instance() {
17
+ if (!ChartManager.instance)
18
+ ChartManager.instance = new ChartManager();
19
+ return ChartManager.instance;
20
+ }
21
+ add_chart_generator(chart) { this.charts.set(chart.get_name(), chart); }
22
+ get_chart_generator(name) { return this.charts.get(name); }
23
+ }
24
+ chart_1.ChartManager = ChartManager;
25
+ class ChartGenerator {
26
+ constructor(name) {
27
+ this.name = name;
28
+ }
29
+ get_name() { return this.name; }
30
+ show_tick_labels() { return undefined; }
31
+ show_grid() { return undefined; }
32
+ }
33
+ chart_1.ChartGenerator = ChartGenerator;
34
+ class BoolChartGenerator extends ChartGenerator {
35
+ constructor() { super('bool'); }
36
+ make_chart(prop, vals) { return new BoolChart(prop, vals); }
37
+ show_tick_labels() { return false; }
38
+ show_grid() { return false; }
39
+ }
40
+ class IntChartGenerator extends ChartGenerator {
41
+ constructor() { super('int'); }
42
+ make_chart(prop, vals) { return new IntChart(prop, vals); }
43
+ }
44
+ class FloatChartGenerator extends ChartGenerator {
45
+ constructor() { super('float'); }
46
+ make_chart(prop, vals) { return new FloatChart(prop, vals); }
47
+ }
48
+ class StringChartGenerator extends ChartGenerator {
49
+ constructor() { super('string'); }
50
+ make_chart(prop, vals) { return new StringChart(prop, vals); }
51
+ show_tick_labels() { return false; }
52
+ show_grid() { return false; }
53
+ }
54
+ class SymbolChartGenerator extends ChartGenerator {
55
+ constructor() { super('symbol'); }
56
+ make_chart(prop, vals) { return new SymbolChart(prop, vals); }
57
+ show_tick_labels() { return false; }
58
+ show_grid() { return false; }
59
+ }
60
+ class ItemChartGenerator extends ChartGenerator {
61
+ constructor() { super('item'); }
62
+ make_chart(prop, vals) { return new ItemChart(prop, vals); }
63
+ show_tick_labels() { return false; }
64
+ show_grid() { return false; }
65
+ }
66
+ class JSONChartGenerator extends ChartGenerator {
67
+ constructor() { super('json'); }
68
+ make_chart(prop, vals) { return new JSONChart(prop, vals); }
69
+ show_tick_labels() { return false; }
70
+ show_grid() { return false; }
71
+ }
72
+ class BoolChart {
73
+ constructor(_, vals) {
74
+ this.data = [];
75
+ this.colors = scaleOrdinal().domain([true, false]).range(["#4CAF50", "#F44336"]);
76
+ this.set_data(vals);
77
+ }
78
+ set_data(vals) {
79
+ this.data.length = 0;
80
+ for (let i = 0; i < vals.length - 1; i++)
81
+ this.data.push({ x: [vals[i].timestamp.valueOf(), vals[i + 1].timestamp.valueOf()], y: [1, 1], name: vals[i].value ? 'true' : 'false', type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(vals[i].value) } });
82
+ if (vals.length)
83
+ this.data.push({ x: [vals[vals.length - 1].timestamp.valueOf(), vals[vals.length - 1].timestamp.valueOf() + 1], y: [1, 1], name: vals[vals.length - 1].value ? 'true' : 'false', type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(vals[vals.length - 1].value) } });
84
+ }
85
+ set_datum(val) {
86
+ if (this.data.length)
87
+ this.data[this.data.length - 1].x[1] = val.timestamp.valueOf();
88
+ this.data.push({ x: [val.timestamp.valueOf(), val.timestamp.valueOf() + 1], y: [1, 1], name: val.value ? 'true' : 'false', type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(val.value) } });
89
+ }
90
+ get_data() { return this.data; }
91
+ get_range() { return undefined; }
92
+ }
93
+ class IntChart {
94
+ constructor(prop, vals) {
95
+ this.prop = prop;
96
+ this.data = { x: [], y: [], type: 'scatter' };
97
+ this.set_data(vals);
98
+ }
99
+ set_data(vals) {
100
+ for (let i = 0; i < vals.length - 1; i++) {
101
+ this.data.x.push(vals[i].timestamp.valueOf());
102
+ this.data.y.push(vals[i].value);
103
+ }
104
+ }
105
+ set_datum(val) {
106
+ this.data.x.push(val.timestamp.valueOf());
107
+ this.data.y.push(val.value);
108
+ }
109
+ get_data() { return [this.data]; }
110
+ get_range() {
111
+ const min = this.prop.get_min();
112
+ const max = this.prop.get_max();
113
+ return min && max ? [min, max] : undefined;
114
+ }
115
+ }
116
+ class FloatChart {
117
+ constructor(prop, vals) {
118
+ this.prop = prop;
119
+ this.data = { x: [], y: [], type: 'scatter' };
120
+ this.set_data(vals);
121
+ }
122
+ set_data(vals) {
123
+ for (let i = 0; i < vals.length - 1; i++) {
124
+ this.data.x.push(vals[i].timestamp.valueOf());
125
+ this.data.y.push(vals[i].value);
126
+ }
127
+ }
128
+ set_datum(val) {
129
+ this.data.x.push(val.timestamp.valueOf());
130
+ this.data.y.push(val.value);
131
+ }
132
+ get_data() { return [this.data]; }
133
+ get_range() {
134
+ const min = this.prop.get_min();
135
+ const max = this.prop.get_max();
136
+ return min && max ? [min, max] : undefined;
137
+ }
138
+ }
139
+ class StringChart {
140
+ constructor(_, vals) {
141
+ this.data = [];
142
+ this.colors = scaleOrdinal(schemeCategory10);
143
+ this.set_data(vals);
144
+ }
145
+ set_data(vals) {
146
+ this.data.length = 0;
147
+ for (let i = 0; i < vals.length - 1; i++)
148
+ this.data.push({ x: [vals[i].timestamp.valueOf(), vals[i + 1].timestamp.valueOf()], y: [1, 1], name: vals[i].value, type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(vals[i].value) } });
149
+ if (vals.length)
150
+ this.data.push({ x: [vals[vals.length - 1].timestamp.valueOf(), vals[vals.length - 1].timestamp.valueOf() + 1], y: [1, 1], name: vals[vals.length - 1].value, type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(vals[vals.length - 1].value) } });
151
+ }
152
+ set_datum(val) {
153
+ if (this.data.length)
154
+ this.data[this.data.length - 1].x[1] = val.timestamp.valueOf();
155
+ this.data.push({ x: [val.timestamp.valueOf(), val.timestamp.valueOf() + 1], y: [1, 1], name: val.value, type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(val.value) } });
156
+ }
157
+ get_data() { return this.data; }
158
+ get_range() { return undefined; }
159
+ }
160
+ class SymbolChart {
161
+ constructor(_, vals) {
162
+ this.data = [];
163
+ this.colors = scaleOrdinal(schemeCategory10);
164
+ this.set_data(vals);
165
+ }
166
+ set_data(vals) {
167
+ this.data.length = 0;
168
+ for (let i = 0; i < vals.length - 1; i++)
169
+ this.data.push({ x: [vals[i].timestamp.valueOf(), vals[i + 1].timestamp.valueOf()], y: [1, 1], name: this.get_name(vals[i].value), type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(this.get_name(vals[i].value)) } });
170
+ if (vals.length)
171
+ this.data.push({ x: [vals[vals.length - 1].timestamp.valueOf(), vals[vals.length - 1].timestamp.valueOf() + 1], y: [1, 1], name: this.get_name(vals[vals.length - 1].value), type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(this.get_name(vals[vals.length - 1].value)) } });
172
+ }
173
+ set_datum(val) {
174
+ if (this.data.length)
175
+ this.data[this.data.length - 1].x[1] = val.timestamp.valueOf();
176
+ this.data.push({ x: [val.timestamp.valueOf(), val.timestamp.valueOf() + 1], y: [1, 1], name: this.get_name(val.value), type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(this.get_name(val.value)) } });
177
+ }
178
+ get_data() { return this.data; }
179
+ get_range() { return undefined; }
180
+ get_name(val) { return Array.isArray(val) ? val.join(', ') : val; }
181
+ }
182
+ class ItemChart {
183
+ constructor(_, vals) {
184
+ this.data = [];
185
+ this.colors = scaleOrdinal(schemeCategory10);
186
+ this.set_data(vals);
187
+ }
188
+ set_data(vals) {
189
+ this.data.length = 0;
190
+ for (let i = 0; i < vals.length - 1; i++)
191
+ this.data.push({ x: [vals[i].timestamp.valueOf(), vals[i + 1].timestamp.valueOf()], y: [1, 1], name: this.get_name(vals[i].value), type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(this.get_name(vals[i].value)) } });
192
+ if (vals.length)
193
+ this.data.push({ x: [vals[vals.length - 1].timestamp.valueOf(), vals[vals.length - 1].timestamp.valueOf() + 1], y: [1, 1], name: this.get_name(vals[vals.length - 1].value), type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(this.get_name(vals[vals.length - 1].value)) } });
194
+ }
195
+ set_datum(val) {
196
+ if (this.data.length)
197
+ this.data[this.data.length - 1].x[1] = val.timestamp.valueOf();
198
+ this.data.push({ x: [val.timestamp.valueOf(), val.timestamp.valueOf() + 1], y: [1, 1], name: this.get_name(val.value), type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(this.get_name(val.value)) } });
199
+ }
200
+ get_data() { return this.data; }
201
+ get_range() { return undefined; }
202
+ get_name(val) { return Array.isArray(val) ? val.join(', ') : val; }
203
+ }
204
+ class JSONChart {
205
+ constructor(_, vals) {
206
+ this.data = [];
207
+ this.colors = scaleOrdinal(schemeCategory10);
208
+ this.set_data(vals);
209
+ }
210
+ set_data(vals) {
211
+ this.data.length = 0;
212
+ for (let i = 0; i < vals.length - 1; i++) {
213
+ const name = JSON.stringify(vals[i].value);
214
+ this.data.push({ x: [vals[i].timestamp.valueOf(), vals[i + 1].timestamp.valueOf()], y: [1, 1], name: name, type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(name) } });
215
+ }
216
+ if (vals.length) {
217
+ const name = JSON.stringify(vals[vals.length - 1].value);
218
+ this.data.push({ x: [vals[vals.length - 1].timestamp.valueOf(), vals[vals.length - 1].timestamp.valueOf() + 1], y: [1, 1], name: name, type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(name) } });
219
+ }
220
+ }
221
+ set_datum(val) {
222
+ if (this.data.length)
223
+ this.data[this.data.length - 1].x[1] = val.timestamp.valueOf();
224
+ const name = JSON.stringify(val.value);
225
+ this.data.push({ x: [val.timestamp.valueOf(), val.timestamp.valueOf() + 1], y: [1, 1], name: name, type: 'scatter', opacity: 0.7, mode: 'lines', line: { width: 30, color: this.colors(name) } });
226
+ }
227
+ get_data() { return this.data; }
228
+ get_range() { return undefined; }
229
+ }
230
+ })(chart || (chart = {}));
231
+ //# sourceMappingURL=chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.js","sourceRoot":"","sources":["../../../src/coco/components/chart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Component, UListComponent, Selector, SelectorGroup } from "@ratiosolver/flick";
2
+ import { coco } from "../coco";
3
+ export declare class ItemElement extends Component<coco.taxonomy.Item, HTMLLIElement> implements Selector {
4
+ private group;
5
+ private a;
6
+ constructor(group: SelectorGroup, item: coco.taxonomy.Item);
7
+ unmounting(): void;
8
+ select(): void;
9
+ unselect(): void;
10
+ }
11
+ export declare class ItemList extends UListComponent<coco.taxonomy.Item> implements coco.CoCoListener {
12
+ private group;
13
+ constructor(group?: SelectorGroup, itms?: coco.taxonomy.Item[]);
14
+ unmounting(): void;
15
+ new_type(_: coco.taxonomy.Type): void;
16
+ new_item(item: coco.taxonomy.Item): void;
17
+ new_intent(_: coco.llm.Intent): void;
18
+ new_entity(_: coco.llm.Entity): void;
19
+ }
20
+ export declare class Item extends Component<coco.taxonomy.Item, HTMLDivElement> {
21
+ constructor(item: coco.taxonomy.Item);
22
+ mounted(): void;
23
+ }
@@ -0,0 +1,85 @@
1
+ import { Component, UListComponent, SelectorGroup, App } from "@ratiosolver/flick";
2
+ import { coco } from "../coco";
3
+ import { library, icon } from '@fortawesome/fontawesome-svg-core';
4
+ import { faCopy, faTag } from '@fortawesome/free-solid-svg-icons';
5
+ import { ItemProperties } from "./item_properties";
6
+ import { ItemChart } from "./item_chart";
7
+ import { ItemPublisher } from "./item_publisher";
8
+ library.add(faCopy, faTag);
9
+ export class ItemElement extends Component {
10
+ constructor(group, item) {
11
+ super(item, document.createElement('li'));
12
+ this.group = group;
13
+ this.element.classList.add('nav-item', 'list-group-item');
14
+ this.a = document.createElement('a');
15
+ this.a.classList.add('nav-link', 'd-flex', 'align-items-center');
16
+ this.a.href = '#';
17
+ const icn = icon(faTag).node[0];
18
+ icn.classList.add('me-2');
19
+ this.a.append(icn);
20
+ this.a.append(document.createTextNode(item.to_string()));
21
+ this.a.addEventListener('click', (event) => {
22
+ event.preventDefault();
23
+ group.set_selected(this);
24
+ });
25
+ this.element.append(this.a);
26
+ group.add_selector(this);
27
+ }
28
+ unmounting() { this.group.remove_selector(this); }
29
+ select() {
30
+ this.a.classList.add('active');
31
+ App.get_instance().selected_component(new Item(this.payload));
32
+ }
33
+ unselect() { this.a.classList.remove('active'); }
34
+ }
35
+ export class ItemList extends UListComponent {
36
+ constructor(group = new SelectorGroup(), itms = []) {
37
+ super(itms.map(itm => new ItemElement(group, itm)));
38
+ this.group = group;
39
+ this.element.classList.add('nav', 'nav-pills', 'list-group', 'flex-column');
40
+ coco.CoCo.get_instance().add_coco_listener(this);
41
+ }
42
+ unmounting() { coco.CoCo.get_instance().remove_coco_listener(this); }
43
+ new_type(_) { }
44
+ new_item(item) { this.add_child(new ItemElement(this.group, item)); }
45
+ new_intent(_) { }
46
+ new_entity(_) { }
47
+ }
48
+ export class Item extends Component {
49
+ constructor(item) {
50
+ super(item, document.createElement('div'));
51
+ this.element.classList.add('d-flex', 'flex-column', 'flex-grow-1');
52
+ this.element.style.margin = '1em';
53
+ const id_div = document.createElement('div');
54
+ id_div.classList.add('input-group');
55
+ const id_input = document.createElement('input');
56
+ id_input.classList.add('form-control');
57
+ id_input.type = 'text';
58
+ id_input.placeholder = 'Item ID';
59
+ id_input.value = item.get_id();
60
+ id_input.disabled = true;
61
+ id_div.append(id_input);
62
+ const id_button_div = document.createElement('div');
63
+ id_button_div.classList.add('input-group-append');
64
+ const id_button = document.createElement('button');
65
+ id_button.classList.add('btn', 'btn-outline-secondary');
66
+ id_button.type = 'button';
67
+ id_button.append(icon(faCopy).node[0]);
68
+ id_button.title = 'Copy item ID to clipboard';
69
+ id_button.addEventListener('click', () => {
70
+ navigator.clipboard.writeText(item.get_id());
71
+ });
72
+ id_button_div.append(id_button);
73
+ id_div.append(id_button_div);
74
+ this.element.append(id_div);
75
+ this.add_child(new ItemProperties(item));
76
+ coco.CoCo.get_instance().load_data(item);
77
+ }
78
+ mounted() {
79
+ if (this.payload.get_type().get_all_dynamic_properties().size > 0) {
80
+ this.add_child(new ItemChart(this.payload));
81
+ this.add_child(new ItemPublisher(this.payload));
82
+ }
83
+ }
84
+ }
85
+ //# sourceMappingURL=item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../src/coco/components/item.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Component } from "@ratiosolver/flick";
2
+ import { coco } from "../coco";
3
+ export declare class ItemChart extends Component<coco.taxonomy.Item, HTMLDivElement> implements coco.taxonomy.ItemListener {
4
+ private readonly layout;
5
+ private readonly config;
6
+ private readonly charts;
7
+ private readonly yaxis;
8
+ constructor(item: coco.taxonomy.Item);
9
+ mounted(): void;
10
+ unmounting(): void;
11
+ properties_updated(_: coco.taxonomy.Item): void;
12
+ values_updated(_: coco.taxonomy.Item): void;
13
+ new_value(_: coco.taxonomy.Item, val: coco.taxonomy.Datum): void;
14
+ slots_updated(_: coco.taxonomy.Item): void;
15
+ }
@@ -0,0 +1,88 @@
1
+ import { Component } from "@ratiosolver/flick";
2
+ import Plotly from "plotly.js-dist-min";
3
+ import { chart } from "./chart";
4
+ export class ItemChart extends Component {
5
+ constructor(item) {
6
+ super(item, document.createElement('div'));
7
+ this.layout = { autosize: true, xaxis: { title: { text: 'Time' }, type: 'date' }, showlegend: false };
8
+ this.config = { responsive: true, displaylogo: false };
9
+ this.charts = new Map();
10
+ this.yaxis = new Map();
11
+ this.element.style.width = '100%';
12
+ this.element.style.height = item.get_type().get_all_dynamic_properties().size * 200 + 'px';
13
+ item.add_item_listener(this);
14
+ }
15
+ mounted() {
16
+ const dynamic_props = this.payload.get_type().get_all_dynamic_properties();
17
+ const values = new Map();
18
+ for (const val of this.payload.get_data())
19
+ for (const [name, v] of Object.entries(val.data)) {
20
+ if (!values.has(name))
21
+ values.set(name, []);
22
+ values.get(name).push({ value: v, timestamp: val.timestamp });
23
+ }
24
+ const data = [];
25
+ let i = dynamic_props.size;
26
+ const domain_size = 1 / dynamic_props.size;
27
+ const domain_separator = 0.05 * domain_size;
28
+ let start_domain = domain_size * dynamic_props.size - domain_size;
29
+ for (const [name, prop] of dynamic_props) {
30
+ const gen = chart.ChartManager.get_instance().get_chart_generator(prop.get_type().get_name());
31
+ const c = gen.make_chart(prop, values.has(name) ? values.get(name) : []);
32
+ this.charts.set(name, c);
33
+ const layout = { title: { text: name }, domain: [start_domain + domain_separator, start_domain + domain_size - domain_separator], zeroline: false, showticklabels: gen.show_tick_labels(), showgrid: gen.show_grid(), range: c.get_range() };
34
+ if (i == 1) {
35
+ this.yaxis.set(name, 'y');
36
+ this.layout['yaxis'] = layout;
37
+ }
38
+ else {
39
+ this.yaxis.set(name, `y${i}`);
40
+ this.layout[`yaxis${i}`] = layout;
41
+ }
42
+ const yaxis = this.yaxis.get(name);
43
+ for (const d of c.get_data()) {
44
+ d.yaxis = yaxis;
45
+ data.push(d);
46
+ }
47
+ i--;
48
+ start_domain -= domain_size;
49
+ }
50
+ Plotly.newPlot(this.element, data.flat(), this.layout, this.config);
51
+ }
52
+ unmounting() { this.payload.remove_item_listener(this); }
53
+ properties_updated(_) { }
54
+ values_updated(_) {
55
+ const values = new Map();
56
+ for (const val of this.payload.get_data())
57
+ for (const [name, v] of Object.entries(val.data)) {
58
+ if (!values.has(name))
59
+ values.set(name, []);
60
+ values.get(name).push({ value: v, timestamp: val.timestamp });
61
+ }
62
+ const data = [];
63
+ for (const [name, ch] of this.charts) {
64
+ ch.set_data(values.has(name) ? values.get(name) : []);
65
+ const yaxis = this.yaxis.get(name);
66
+ for (const d of ch.get_data()) {
67
+ d.yaxis = yaxis;
68
+ data.push(d);
69
+ }
70
+ }
71
+ Plotly.react(this.element, data.flat(), this.layout, this.config);
72
+ }
73
+ new_value(_, val) {
74
+ const data = [];
75
+ for (const [name, ch] of this.charts) {
76
+ if (name in val.data)
77
+ this.charts.get(name).set_datum({ value: val.data[name], timestamp: val.timestamp });
78
+ const yaxis = this.yaxis.get(name);
79
+ for (const d of ch.get_data()) {
80
+ d.yaxis = yaxis;
81
+ data.push(d);
82
+ }
83
+ }
84
+ Plotly.react(this.element, data.flat(), this.layout, this.config);
85
+ }
86
+ slots_updated(_) { }
87
+ }
88
+ //# sourceMappingURL=item_chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item_chart.js","sourceRoot":"","sources":["../../../src/coco/components/item_chart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Component } from "@ratiosolver/flick";
2
+ import { coco } from "../coco";
3
+ export declare class ItemProperties extends Component<coco.taxonomy.Item, HTMLDivElement> implements coco.taxonomy.ItemListener {
4
+ private readonly p_values;
5
+ constructor(item: coco.taxonomy.Item);
6
+ properties_updated(_: coco.taxonomy.Item): void;
7
+ values_updated(_: coco.taxonomy.Item): void;
8
+ new_value(_i: coco.taxonomy.Item, _v: coco.taxonomy.Datum): void;
9
+ slots_updated(_: coco.taxonomy.Item): void;
10
+ private set_properties;
11
+ }
@@ -0,0 +1,59 @@
1
+ import { blink, Component } from "@ratiosolver/flick";
2
+ export class ItemProperties extends Component {
3
+ constructor(item) {
4
+ super(item, document.createElement('div'));
5
+ this.p_values = new Map();
6
+ const p_table = document.createElement('table');
7
+ p_table.createCaption().textContent = 'Properties';
8
+ p_table.classList.add('table', 'caption-top');
9
+ const p_thead = p_table.createTHead();
10
+ const p_hrow = p_thead.insertRow();
11
+ const p_name = document.createElement('th');
12
+ p_name.scope = 'col';
13
+ p_name.textContent = 'Name';
14
+ p_name.classList.add('w-75');
15
+ p_hrow.appendChild(p_name);
16
+ const p_val = document.createElement('th');
17
+ p_val.scope = 'col';
18
+ p_val.textContent = 'Value';
19
+ p_val.classList.add('w-25');
20
+ p_hrow.appendChild(p_val);
21
+ const p_body = p_table.createTBody();
22
+ const props = item.get_properties();
23
+ for (const [name, prop] of item.get_type().get_all_static_properties()) {
24
+ const row = p_body.insertRow();
25
+ const p_name = document.createElement('th');
26
+ p_name.scope = 'col';
27
+ p_name.textContent = name;
28
+ row.appendChild(p_name);
29
+ const p_value = document.createElement('td');
30
+ this.p_values.set(name, p_value);
31
+ if (props && props[name])
32
+ p_value.textContent = prop.get_type().to_string(props[name]);
33
+ row.appendChild(p_value);
34
+ }
35
+ this.element.append(p_table);
36
+ this.set_properties();
37
+ item.add_item_listener(this);
38
+ }
39
+ properties_updated(_) { this.set_properties(); }
40
+ values_updated(_) { }
41
+ new_value(_i, _v) { }
42
+ slots_updated(_) { }
43
+ set_properties() {
44
+ const props = this.payload.get_type().get_all_static_properties();
45
+ if (props.size > 0) {
46
+ this.element.hidden = false;
47
+ const ps = this.payload.get_properties();
48
+ if (ps)
49
+ for (const [name, val] of Object.entries(ps)) {
50
+ const p_val = this.p_values.get(name);
51
+ blink(p_val);
52
+ p_val.textContent = props.get(name).get_type().to_string(val);
53
+ }
54
+ }
55
+ else
56
+ this.element.hidden = true;
57
+ }
58
+ }
59
+ //# sourceMappingURL=item_properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item_properties.js","sourceRoot":"","sources":["../../../src/coco/components/item_properties.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Component } from "@ratiosolver/flick";
2
+ import { coco } from "../coco";
3
+ export declare class ItemPublisher extends Component<coco.taxonomy.Item, HTMLDivElement> implements coco.taxonomy.ItemListener {
4
+ private readonly val;
5
+ private readonly v_sel_all_check;
6
+ private readonly v_checks;
7
+ private readonly v_values;
8
+ constructor(item: coco.taxonomy.Item);
9
+ unmounting(): void;
10
+ properties_updated(_: coco.taxonomy.Item): void;
11
+ values_updated(_: coco.taxonomy.Item): void;
12
+ new_value(_i: coco.taxonomy.Item, _v: coco.taxonomy.Datum): void;
13
+ slots_updated(_: coco.taxonomy.Item): void;
14
+ private set_value;
15
+ }