@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.
- package/dist_bundle/bundle.js +235 -235
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts_web/elements/dees-chart-area.d.ts +6 -0
- package/dist_ts_web/elements/dees-chart-area.demo.js +262 -13
- package/dist_ts_web/elements/dees-chart-area.js +123 -39
- package/dist_ts_web/elements/dees-chart-log.d.ts +17 -5
- package/dist_ts_web/elements/dees-chart-log.demo.js +127 -2
- package/dist_ts_web/elements/dees-chart-log.js +252 -28
- package/dist_ts_web/elements/dees-toast.d.ts +22 -0
- package/dist_ts_web/elements/dees-toast.demo.d.ts +1 -0
- package/dist_ts_web/elements/dees-toast.demo.js +258 -3
- package/dist_ts_web/elements/dees-toast.js +284 -6
- package/package.json +2 -2
|
@@ -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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
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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QkFDMUQsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUU7d0JBQzFELEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFO3dCQUN6RCxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUU7cUJBQ3hDO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLElBQUksRUFBRTt3QkFDSixFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTt3QkFDekQsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7d0JBQ3pELEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO3dCQUN6RCxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTt3QkFDekQsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMs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
|
|
@@ -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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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);
|
|
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
|
-
|
|
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:
|
|
109
|
-
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:
|
|
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,
|
|
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
|
|
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
|
}
|