@design.estate/dees-catalog 1.8.3 → 1.8.4

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.
@@ -9,10 +9,16 @@ export declare class DeesChartArea extends DeesElement {
9
9
  static demo: () => TemplateResult<1>;
10
10
  chart: ApexCharts;
11
11
  label: string;
12
+ series: ApexAxisChartSeries;
13
+ yAxisFormatter: (value: number) => string;
12
14
  private resizeObserver;
15
+ private resizeTimeout;
13
16
  constructor();
14
17
  static styles: CSSResult[];
15
18
  render(): TemplateResult;
16
19
  firstUpdated(): Promise<void>;
20
+ updated(changedProperties: Map<string, any>): Promise<void>;
21
+ updateSeries(newSeries: ApexAxisChartSeries): Promise<void>;
22
+ appendData(seriesIndex: number, newData: any[]): Promise<void>;
17
23
  resizeChart(): Promise<void>;
18
24
  }
@@ -1,21 +1,270 @@
1
- import { html } from '@design.estate/dees-element';
1
+ import { html, css } from '@design.estate/dees-element';
2
2
  export const demoFunc = () => {
3
+ let chartElement;
4
+ let intervalId;
5
+ let currentDataset = 'system';
6
+ // Get element reference after render
7
+ setTimeout(() => {
8
+ const charts = document.querySelectorAll('dees-chart-area');
9
+ if (charts.length > 0) {
10
+ chartElement = charts[charts.length - 1];
11
+ }
12
+ }, 100);
13
+ // Y-axis formatters for different datasets
14
+ const formatters = {
15
+ system: (val) => `${val}%`,
16
+ network: (val) => `${val} Mbps`,
17
+ sales: (val) => `$${val.toLocaleString()}`,
18
+ };
19
+ // Different datasets to showcase
20
+ const datasets = {
21
+ system: {
22
+ label: 'System Usage (%)',
23
+ series: [
24
+ {
25
+ name: 'CPU',
26
+ data: [
27
+ { x: new Date(Date.now() - 300000).toISOString(), y: 25 },
28
+ { x: new Date(Date.now() - 240000).toISOString(), y: 30 },
29
+ { x: new Date(Date.now() - 180000).toISOString(), y: 28 },
30
+ { x: new Date(Date.now() - 120000).toISOString(), y: 35 },
31
+ { x: new Date(Date.now() - 60000).toISOString(), y: 32 },
32
+ { x: new Date().toISOString(), y: 38 },
33
+ ],
34
+ },
35
+ {
36
+ name: 'Memory',
37
+ data: [
38
+ { x: new Date(Date.now() - 300000).toISOString(), y: 45 },
39
+ { x: new Date(Date.now() - 240000).toISOString(), y: 48 },
40
+ { x: new Date(Date.now() - 180000).toISOString(), y: 46 },
41
+ { x: new Date(Date.now() - 120000).toISOString(), y: 52 },
42
+ { x: new Date(Date.now() - 60000).toISOString(), y: 50 },
43
+ { x: new Date().toISOString(), y: 55 },
44
+ ],
45
+ },
46
+ ],
47
+ },
48
+ network: {
49
+ label: 'Network Traffic (Mbps)',
50
+ series: [
51
+ {
52
+ name: 'Download',
53
+ data: [
54
+ { x: new Date(Date.now() - 300000).toISOString(), y: 120 },
55
+ { x: new Date(Date.now() - 240000).toISOString(), y: 150 },
56
+ { x: new Date(Date.now() - 180000).toISOString(), y: 180 },
57
+ { x: new Date(Date.now() - 120000).toISOString(), y: 165 },
58
+ { x: new Date(Date.now() - 60000).toISOString(), y: 190 },
59
+ { x: new Date().toISOString(), y: 175 },
60
+ ],
61
+ },
62
+ {
63
+ name: 'Upload',
64
+ data: [
65
+ { x: new Date(Date.now() - 300000).toISOString(), y: 25 },
66
+ { x: new Date(Date.now() - 240000).toISOString(), y: 30 },
67
+ { x: new Date(Date.now() - 180000).toISOString(), y: 35 },
68
+ { x: new Date(Date.now() - 120000).toISOString(), y: 28 },
69
+ { x: new Date(Date.now() - 60000).toISOString(), y: 32 },
70
+ { x: new Date().toISOString(), y: 40 },
71
+ ],
72
+ },
73
+ ],
74
+ },
75
+ sales: {
76
+ label: 'Sales Analytics',
77
+ series: [
78
+ {
79
+ name: 'Revenue',
80
+ data: [
81
+ { x: '2025-01-01', y: 45000 },
82
+ { x: '2025-01-02', y: 52000 },
83
+ { x: '2025-01-03', y: 48000 },
84
+ { x: '2025-01-04', y: 61000 },
85
+ { x: '2025-01-05', y: 58000 },
86
+ { x: '2025-01-06', y: 65000 },
87
+ ],
88
+ },
89
+ {
90
+ name: 'Profit',
91
+ data: [
92
+ { x: '2025-01-01', y: 12000 },
93
+ { x: '2025-01-02', y: 14000 },
94
+ { x: '2025-01-03', y: 11000 },
95
+ { x: '2025-01-04', y: 18000 },
96
+ { x: '2025-01-05', y: 16000 },
97
+ { x: '2025-01-06', y: 20000 },
98
+ ],
99
+ },
100
+ ],
101
+ },
102
+ };
103
+ // Generate random value within range
104
+ const getRandomValue = (min, max) => {
105
+ return Math.floor(Math.random() * (max - min + 1)) + min;
106
+ };
107
+ // Add real-time data
108
+ const addRealtimeData = () => {
109
+ if (!chartElement)
110
+ return;
111
+ const dataset = datasets[currentDataset];
112
+ const newTimestamp = new Date().toISOString();
113
+ // Generate new data points based on dataset type
114
+ let newData = [];
115
+ if (currentDataset === 'system') {
116
+ newData = [
117
+ [{ x: newTimestamp, y: getRandomValue(25, 45) }], // CPU
118
+ [{ x: newTimestamp, y: getRandomValue(45, 65) }], // Memory
119
+ ];
120
+ }
121
+ else if (currentDataset === 'network') {
122
+ newData = [
123
+ [{ x: newTimestamp, y: getRandomValue(100, 250) }], // Download
124
+ [{ x: newTimestamp, y: getRandomValue(20, 50) }], // Upload
125
+ ];
126
+ }
127
+ // Keep only last 10 data points
128
+ const currentSeries = chartElement.series.map((series, index) => ({
129
+ ...series,
130
+ data: [...series.data.slice(-9), ...(newData[index] || [])],
131
+ }));
132
+ chartElement.series = currentSeries;
133
+ };
134
+ // Switch dataset
135
+ const switchDataset = (name) => {
136
+ currentDataset = name;
137
+ if (chartElement) {
138
+ const dataset = datasets[name];
139
+ chartElement.label = dataset.label;
140
+ chartElement.series = dataset.series;
141
+ chartElement.yAxisFormatter = formatters[name];
142
+ }
143
+ };
144
+ // Start/stop real-time updates
145
+ const startRealtime = () => {
146
+ if (!intervalId && (currentDataset === 'system' || currentDataset === 'network')) {
147
+ intervalId = window.setInterval(() => addRealtimeData(), 2000);
148
+ }
149
+ };
150
+ const stopRealtime = () => {
151
+ if (intervalId) {
152
+ window.clearInterval(intervalId);
153
+ intervalId = null;
154
+ }
155
+ };
156
+ // Randomize current data
157
+ const randomizeData = () => {
158
+ if (!chartElement)
159
+ return;
160
+ const currentSeries = chartElement.series.map(series => ({
161
+ ...series,
162
+ data: series.data.map(point => ({
163
+ ...point,
164
+ y: typeof point.y === 'number'
165
+ ? point.y * (0.8 + Math.random() * 0.4) // +/- 20% variation
166
+ : point.y,
167
+ })),
168
+ }));
169
+ chartElement.series = currentSeries;
170
+ };
3
171
  return html `
4
172
  <style>
5
- .demoBox {
6
- position: relative;
7
- background: #000000;
8
- height: 100%;
9
- width: 100%;
10
- padding: 40px;
11
- box-sizing: border-box;
12
- }
173
+ ${css `
174
+ .demoBox {
175
+ position: relative;
176
+ background: #000000;
177
+ height: 100%;
178
+ width: 100%;
179
+ padding: 40px;
180
+ box-sizing: border-box;
181
+ display: flex;
182
+ flex-direction: column;
183
+ gap: 24px;
184
+ }
185
+
186
+ .controls {
187
+ display: flex;
188
+ flex-wrap: wrap;
189
+ gap: 12px;
190
+ margin-bottom: 8px;
191
+ }
192
+
193
+ .control-section {
194
+ display: flex;
195
+ gap: 8px;
196
+ align-items: center;
197
+ padding: 8px;
198
+ background: rgba(255, 255, 255, 0.05);
199
+ border-radius: 6px;
200
+ }
201
+
202
+ .section-label {
203
+ color: #999;
204
+ font-size: 12px;
205
+ font-family: 'Geist Sans', sans-serif;
206
+ margin-right: 8px;
207
+ }
208
+
209
+ .chart-container {
210
+ flex: 1;
211
+ min-height: 400px;
212
+ }
213
+
214
+ .info {
215
+ color: #666;
216
+ font-size: 11px;
217
+ font-family: 'Geist Sans', sans-serif;
218
+ text-align: center;
219
+ margin-top: 8px;
220
+ }
221
+ `}
13
222
  </style>
14
223
  <div class="demoBox">
15
- <dees-chart-area
16
- .label=${'System Usage'}
17
- ></dees-chart-area>
224
+ <div class="controls">
225
+ <div class="control-section">
226
+ <span class="section-label">Dataset:</span>
227
+ <dees-button
228
+ @clicked=${() => switchDataset('system')}
229
+ type=${currentDataset === 'system' ? 'highlighted' : 'normal'}
230
+ >System Usage</dees-button>
231
+ <dees-button
232
+ @clicked=${() => switchDataset('network')}
233
+ type=${currentDataset === 'network' ? 'highlighted' : 'normal'}
234
+ >Network Traffic</dees-button>
235
+ <dees-button
236
+ @clicked=${() => switchDataset('sales')}
237
+ type=${currentDataset === 'sales' ? 'highlighted' : 'normal'}
238
+ >Sales Data</dees-button>
239
+ </div>
240
+
241
+ <div class="control-section">
242
+ <span class="section-label">Real-time:</span>
243
+ <dees-button @clicked=${() => startRealtime()}>Start Live</dees-button>
244
+ <dees-button @clicked=${() => stopRealtime()}>Stop Live</dees-button>
245
+ </div>
246
+
247
+ <div class="control-section">
248
+ <span class="section-label">Actions:</span>
249
+ <dees-button @clicked=${() => randomizeData()}>Randomize Values</dees-button>
250
+ <dees-button @clicked=${() => addRealtimeData()}>Add Point</dees-button>
251
+ </div>
252
+ </div>
253
+
254
+ <div class="chart-container">
255
+ <dees-chart-area
256
+ .label=${datasets[currentDataset].label}
257
+ .series=${datasets[currentDataset].series}
258
+ .yAxisFormatter=${formatters[currentDataset]}
259
+ ></dees-chart-area>
260
+ </div>
261
+
262
+ <div class="info">
263
+ Real-time updates work with System Usage and Network Traffic datasets •
264
+ Chart updates every 2 seconds when live mode is active •
265
+ Try switching datasets and randomizing values
266
+ </div>
18
267
  </div>
19
268
  `;
20
269
  };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1jaGFydC1hcmVhLmRlbW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvZGVlcy1jaGFydC1hcmVhLmRlbW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7SUFDM0IsT0FBTyxJQUFJLENBQUE7Ozs7Ozs7Ozs7Ozs7aUJBYUksY0FBYzs7O0dBRzVCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1jaGFydC1hcmVhLmRlbW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvZGVlcy1jaGFydC1hcmVhLmRlbW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd4RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO0lBQzNCLElBQUksWUFBMkIsQ0FBQztJQUNoQyxJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxjQUFjLEdBQUcsUUFBUSxDQUFDO0lBRTlCLHFDQUFxQztJQUNyQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQWtCLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVSLDJDQUEyQztJQUMzQyxNQUFNLFVBQVUsR0FBRztRQUNqQixNQUFNLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHO1FBQ2xDLE9BQU8sRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU87UUFDdkMsS0FBSyxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxjQUFjLEVBQUUsRUFBRTtLQUNuRCxDQUFDO0lBRUYsaUNBQWlDO0lBQ2pDLE1BQU0sUUFBUSxHQUFHO1FBQ2YsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFLGtCQUFrQjtZQUN6QixNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsSUFBSSxFQUFFLEtBQUs7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QkFDMUQsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUU7d0JBQzFELEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFO3dCQUN6RCxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUU7cUJBQ3hDO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLElBQUksRUFBRTt3QkFDSixFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTt3QkFDekQsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7d0JBQ3pELEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO3dCQUN6RCxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTt3QkFDekQsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7d0JBQ3hELEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtxQkFDdkM7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFO3dCQUNKLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO3dCQUM3QixFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTt3QkFDN0IsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7d0JBQzdCLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO3dCQUM3QixFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTt3QkFDN0IsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7cUJBQzlCO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLElBQUksRUFBRTt3QkFDSixFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTt3QkFDN0IsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7d0JBQzdCLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO3dCQUM3QixFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTt3QkFDN0IsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7d0JBQzdCLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO3FCQUM5QjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYscUNBQXFDO0lBQ3JDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxFQUFFO1FBQ2xELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzNELENBQUMsQ0FBQztJQUVGLHFCQUFxQjtJQUNyQixNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7UUFDM0IsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBRTFCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6QyxNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTlDLGlEQUFpRDtRQUNqRCxJQUFJLE9BQU8sR0FBWSxFQUFFLENBQUM7UUFFMUIsSUFBSSxjQUFjLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEMsT0FBTyxHQUFHO2dCQUNSLENBQUMsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNO2dCQUN4RCxDQUFDLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUzthQUM1RCxDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sR0FBRztnQkFDUixDQUFDLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsY0FBYyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVztnQkFDL0QsQ0FBQyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVM7YUFDNUQsQ0FBQztRQUNKLENBQUM7UUFFRCxnQ0FBZ0M7UUFDaEMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzVELENBQUMsQ0FBQyxDQUFDO1FBRUosWUFBWSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7SUFDdEMsQ0FBQyxDQUFDO0lBRUYsaUJBQWlCO0lBQ2pCLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDckMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixZQUFZLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDbkMsWUFBWSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3JDLFlBQVksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRiwrQkFBK0I7SUFDL0IsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO1FBQ3pCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxjQUFjLEtBQUssUUFBUSxJQUFJLGNBQWMsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2pGLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7UUFDeEIsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYseUJBQXlCO0lBQ3pCLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtRQUN6QixJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFMUIsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzlCLEdBQUcsS0FBSztnQkFDUixDQUFDLEVBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxLQUFLLFFBQVE7b0JBQzVCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxvQkFBb0I7b0JBQzVELENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNaLENBQUMsQ0FBQztTQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUosWUFBWSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7SUFDdEMsQ0FBQyxDQUFDO0lBRUYsT0FBTyxJQUFJLENBQUE7O1FBRUwsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnREo7Ozs7Ozs7dUJBT2dCLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7bUJBQ2pDLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUTs7O3VCQUdsRCxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO21CQUNsQyxjQUFjLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVE7Ozt1QkFHbkQsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQzttQkFDaEMsY0FBYyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxRQUFROzs7Ozs7a0NBTXRDLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRTtrQ0FDckIsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFOzs7OztrQ0FLcEIsR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFO2tDQUNyQixHQUFHLEVBQUUsQ0FBQyxlQUFlLEVBQUU7Ozs7OzttQkFNdEMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUs7b0JBQzdCLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNOzRCQUN2QixVQUFVLENBQUMsY0FBYyxDQUFDOzs7Ozs7Ozs7O0dBVW5ELENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -16,23 +16,34 @@ let DeesChartArea = class DeesChartArea extends DeesElement {
16
16
  constructor() {
17
17
  super();
18
18
  this.label = 'Untitled Chart';
19
+ this.series = [];
20
+ this.yAxisFormatter = (val) => `${val} Mbps`;
19
21
  domtools.elementBasic.setup();
20
22
  this.resizeObserver = new ResizeObserver((entries) => {
21
- for (let entry of entries) {
22
- if (entry.target.classList.contains('mainbox')) {
23
- this.resizeChart(); // Call resizeChart when the .mainbox size changes
24
- }
23
+ // Debounce resize calls to prevent excessive updates
24
+ if (this.resizeTimeout) {
25
+ clearTimeout(this.resizeTimeout);
25
26
  }
27
+ this.resizeTimeout = window.setTimeout(() => {
28
+ for (let entry of entries) {
29
+ if (entry.target.classList.contains('mainbox') && this.chart) {
30
+ this.resizeChart();
31
+ }
32
+ }
33
+ }, 100); // 100ms debounce
26
34
  });
27
35
  this.registerStartupFunction(async () => {
28
36
  this.updateComplete.then(() => {
29
37
  const mainbox = this.shadowRoot.querySelector('.mainbox');
30
38
  if (mainbox) {
31
- this.resizeObserver.observe(mainbox); // Start observing the .mainbox element
39
+ this.resizeObserver.observe(mainbox);
32
40
  }
33
41
  });
34
42
  });
35
43
  this.registerGarbageFunction(async () => {
44
+ if (this.resizeTimeout) {
45
+ clearTimeout(this.resizeTimeout);
46
+ }
36
47
  this.resizeObserver.disconnect();
37
48
  });
38
49
  }
@@ -51,6 +62,7 @@ let DeesChartArea = class DeesChartArea extends DeesElement {
51
62
  height: 400px;
52
63
  background: #111;
53
64
  border-radius: 8px;
65
+ overflow: hidden;
54
66
  }
55
67
 
56
68
  .chartTitle {
@@ -60,6 +72,7 @@ let DeesChartArea = class DeesChartArea extends DeesElement {
60
72
  width: 100%;
61
73
  text-align: center;
62
74
  padding-top: 16px;
75
+ z-index: 10;
63
76
  }
64
77
  .chartContainer {
65
78
  position: absolute;
@@ -68,6 +81,7 @@ let DeesChartArea = class DeesChartArea extends DeesElement {
68
81
  bottom: 0px;
69
82
  right: 0px;
70
83
  padding: 32px 16px 16px 0px;
84
+ overflow: hidden;
71
85
  }
72
86
  `,
73
87
  ]; }
@@ -80,37 +94,64 @@ let DeesChartArea = class DeesChartArea extends DeesElement {
80
94
  `;
81
95
  }
82
96
  async firstUpdated() {
83
- const domtoolsInstance = await this.domtoolsPromise;
97
+ await this.domtoolsPromise;
98
+ // Wait for next animation frame to ensure layout is complete
99
+ await new Promise(resolve => requestAnimationFrame(resolve));
100
+ // Get actual dimensions of the container
101
+ const mainbox = this.shadowRoot.querySelector('.mainbox');
102
+ const chartContainer = this.shadowRoot.querySelector('.chartContainer');
103
+ if (!mainbox || !chartContainer) {
104
+ console.error('Chart containers not found');
105
+ return;
106
+ }
107
+ // Calculate initial dimensions
108
+ const styleChartContainer = window.getComputedStyle(chartContainer);
109
+ const paddingTop = parseInt(styleChartContainer.paddingTop, 10);
110
+ const paddingBottom = parseInt(styleChartContainer.paddingBottom, 10);
111
+ const paddingLeft = parseInt(styleChartContainer.paddingLeft, 10);
112
+ const paddingRight = parseInt(styleChartContainer.paddingRight, 10);
113
+ const initialWidth = mainbox.clientWidth - paddingLeft - paddingRight;
114
+ const initialHeight = mainbox.offsetHeight - paddingTop - paddingBottom;
115
+ // Use provided series data or default demo data
116
+ const chartSeries = this.series.length > 0 ? this.series : [
117
+ {
118
+ name: 'cpu',
119
+ data: [
120
+ { x: '2025-01-15T03:00:00', y: 25 },
121
+ { x: '2025-01-15T07:00:00', y: 30 },
122
+ { x: '2025-01-15T11:00:00', y: 20 },
123
+ { x: '2025-01-15T15:00:00', y: 35 },
124
+ { x: '2025-01-15T19:00:00', y: 25 },
125
+ ],
126
+ },
127
+ {
128
+ name: 'memory',
129
+ data: [
130
+ { x: '2025-01-15T03:00:00', y: 10 },
131
+ { x: '2025-01-15T07:00:00', y: 12 },
132
+ { x: '2025-01-15T11:00:00', y: 10 },
133
+ { x: '2025-01-15T15:00:00', y: 30 },
134
+ { x: '2025-01-15T19:00:00', y: 40 },
135
+ ],
136
+ },
137
+ ];
84
138
  var options = {
85
- series: [
86
- {
87
- name: 'cpu',
88
- data: [
89
- { x: '2025-01-15T03:00:00', y: 25 },
90
- { x: '2025-01-15T07:00:00', y: 30 },
91
- { x: '2025-01-15T11:00:00', y: 20 },
92
- { x: '2025-01-15T15:00:00', y: 35 },
93
- { x: '2025-01-15T19:00:00', y: 25 },
94
- ],
95
- },
96
- {
97
- name: 'memory',
98
- data: [
99
- { x: '2025-01-15T03:00:00', y: 10 },
100
- { x: '2025-01-15T07:00:00', y: 12 },
101
- { x: '2025-01-15T11:00:00', y: 10 },
102
- { x: '2025-01-15T15:00:00', y: 30 },
103
- { x: '2025-01-15T19:00:00', y: 40 },
104
- ],
105
- },
106
- ],
139
+ series: chartSeries,
107
140
  chart: {
108
- width: 0, // Adjusted for responsive width
109
- height: 0, // Adjusted for responsive height
141
+ width: initialWidth || 100, // Use actual width or fallback
142
+ height: initialHeight || 100, // Use actual height or fallback
110
143
  type: 'area',
111
144
  toolbar: {
112
145
  show: false, // This line disables the toolbar
113
146
  },
147
+ animations: {
148
+ enabled: true,
149
+ speed: 400,
150
+ animateGradually: {
151
+ enabled: true,
152
+ delay: 150
153
+ },
154
+ },
114
155
  },
115
156
  dataLabels: {
116
157
  enabled: false,
@@ -138,9 +179,7 @@ let DeesChartArea = class DeesChartArea extends DeesElement {
138
179
  yaxis: {
139
180
  min: 0,
140
181
  labels: {
141
- formatter: function (val) {
142
- return `${val} Mbps`; // Format Y-axis labels
143
- },
182
+ formatter: this.yAxisFormatter,
144
183
  style: {
145
184
  colors: '#9e9e9e', // Label color
146
185
  fontSize: '12px',
@@ -160,12 +199,9 @@ let DeesChartArea = class DeesChartArea extends DeesElement {
160
199
  x: {
161
200
  format: 'dd/MM/yy HH:mm',
162
201
  },
163
- custom: function ({ series, seriesIndex, dataPointIndex, w }) {
164
- // Get the x value
165
- const xValue = w.globals.labels[dataPointIndex];
202
+ custom: function ({ series, dataPointIndex, w }) {
166
203
  // Iterate through each series and get its value
167
204
  let tooltipContent = `<div style="padding: 10px; background: #1e1e2f; color: white; border-radius: 5px;">`;
168
- tooltipContent += ``; // `<strong>Time:</strong> ${xValue}<br/>`;
169
205
  series.forEach((s, index) => {
170
206
  const label = w.globals.seriesNames[index]; // Get series label
171
207
  const value = s[dataPointIndex]; // Get value at data point
@@ -209,13 +245,53 @@ let DeesChartArea = class DeesChartArea extends DeesElement {
209
245
  };
210
246
  this.chart = new ApexCharts(this.shadowRoot.querySelector('.chartContainer'), options);
211
247
  await this.chart.render();
248
+ // Give the chart a moment to fully initialize before resizing
249
+ await new Promise(resolve => setTimeout(resolve, 100));
212
250
  await this.resizeChart();
213
251
  }
252
+ async updated(changedProperties) {
253
+ super.updated(changedProperties);
254
+ // Update chart if series data changes
255
+ if (changedProperties.has('series') && this.chart && this.series.length > 0) {
256
+ await this.updateSeries(this.series);
257
+ }
258
+ // Update y-axis formatter if it changes
259
+ if (changedProperties.has('yAxisFormatter') && this.chart) {
260
+ await this.chart.updateOptions({
261
+ yaxis: {
262
+ labels: {
263
+ formatter: this.yAxisFormatter,
264
+ },
265
+ },
266
+ });
267
+ }
268
+ }
269
+ async updateSeries(newSeries) {
270
+ if (!this.chart) {
271
+ return;
272
+ }
273
+ await this.chart.updateSeries(newSeries, true);
274
+ }
275
+ async appendData(seriesIndex, newData) {
276
+ if (!this.chart) {
277
+ return;
278
+ }
279
+ const currentSeries = [...this.series];
280
+ if (currentSeries[seriesIndex]) {
281
+ currentSeries[seriesIndex].data = [...currentSeries[seriesIndex].data, ...newData];
282
+ await this.updateSeries(currentSeries);
283
+ }
284
+ }
214
285
  async resizeChart() {
286
+ if (!this.chart) {
287
+ return;
288
+ }
215
289
  const mainbox = this.shadowRoot.querySelector('.mainbox');
216
290
  const chartContainer = this.shadowRoot.querySelector('.chartContainer');
291
+ if (!mainbox || !chartContainer) {
292
+ return;
293
+ }
217
294
  // Get computed style of the element
218
- const styleMainbox = window.getComputedStyle(mainbox);
219
295
  const styleChartContainer = window.getComputedStyle(chartContainer);
220
296
  // Extract padding values
221
297
  const paddingTop = parseInt(styleChartContainer.paddingTop, 10);
@@ -241,9 +317,17 @@ __decorate([
241
317
  property(),
242
318
  __metadata("design:type", String)
243
319
  ], DeesChartArea.prototype, "label", void 0);
320
+ __decorate([
321
+ property({ type: Array }),
322
+ __metadata("design:type", Array)
323
+ ], DeesChartArea.prototype, "series", void 0);
324
+ __decorate([
325
+ property({ type: Function }),
326
+ __metadata("design:type", Function)
327
+ ], DeesChartArea.prototype, "yAxisFormatter", void 0);
244
328
  DeesChartArea = __decorate([
245
329
  customElement('dees-chart-area'),
246
330
  __metadata("design:paramtypes", [])
247
331
  ], DeesChartArea);
248
332
  export { DeesChartArea };
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1jaGFydC1hcmVhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2RlZXMtY2hhcnQtYXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLEdBQUcsRUFDSCxVQUFVLEVBQ1YsYUFBYSxFQUNiLElBQUksRUFDSixRQUFRLEVBQ1IsS0FBSyxHQUdOLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxLQUFLLFFBQVEsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFckQsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBUzdCLElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWMsU0FBUSxXQUFXO2FBQzlCLFNBQUksR0FBRyxRQUFRLEFBQVgsQ0FBWTtJQVc5QjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBTEgsVUFBSyxHQUFXLGdCQUFnQixDQUFDO1FBTXRDLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ25ELEtBQUssSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzFCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7b0JBQy9DLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLGtEQUFrRDtnQkFDeEUsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUks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
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1jaGFydC1hcmVhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2RlZXMtY2hhcnQtYXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLEdBQUcsRUFDSCxVQUFVLEVBQ1YsYUFBYSxFQUNiLElBQUksRUFDSixRQUFRLEVBQ1IsS0FBSyxHQUdOLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxLQUFLLFFBQVEsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFckQsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBUzdCLElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWMsU0FBUSxXQUFXO2FBQzlCLFNBQUksR0FBRyxRQUFRLEFBQVgsQ0FBWTtJQWtCOUI7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQVpILFVBQUssR0FBVyxnQkFBZ0IsQ0FBQztRQUdqQyxXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUdqQyxtQkFBYyxHQUE4QixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQztRQU94RSxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTlCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNuRCxxREFBcUQ7WUFDckQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3ZCLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQzFDLEtBQUssSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQzFCLElBQUksS0FBSyxDQUFDLE1B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
@@ -1,17 +1,29 @@
1
- import { DeesElement, type CSSResult, type TemplateResult } from '@design.estate/dees-element';
2
- import ApexCharts from 'apexcharts';
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
3
2
  declare global {
4
3
  interface HTMLElementTagNameMap {
5
4
  'dees-chart-log': DeesChartLog;
6
5
  }
7
6
  }
7
+ export interface ILogEntry {
8
+ timestamp: string;
9
+ level: 'debug' | 'info' | 'warn' | 'error' | 'success';
10
+ message: string;
11
+ source?: string;
12
+ }
8
13
  export declare class DeesChartLog extends DeesElement {
9
14
  static demo: () => TemplateResult<1>;
10
- chart: ApexCharts;
11
15
  label: string;
16
+ logEntries: ILogEntry[];
17
+ autoScroll: boolean;
18
+ maxEntries: number;
19
+ private logContainer;
12
20
  constructor();
13
- static styles: CSSResult[];
21
+ static styles: import("@design.estate/dees-element").CSSResult[];
14
22
  render(): TemplateResult;
23
+ private renderLogEntry;
15
24
  firstUpdated(): Promise<void>;
16
- updateLog(): Promise<void>;
25
+ updateLog(entries?: ILogEntry[]): Promise<void>;
26
+ clearLogs(): void;
27
+ private scrollToBottom;
28
+ addLog(level: ILogEntry['level'], message: string, source?: string): void;
17
29
  }