@uptime.link/statuspage 1.0.74 → 1.2.0
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 +5019 -519
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts_web/00_commitinfo_data.js +2 -2
- package/dist_ts_web/elements/index.d.ts +3 -0
- package/dist_ts_web/elements/index.js +6 -1
- package/dist_ts_web/elements/internal/uplinternal-miniheading.d.ts +1 -0
- package/dist_ts_web/elements/internal/uplinternal-miniheading.js +78 -28
- package/dist_ts_web/elements/upl-statuspage-assetsselector.d.ts +14 -0
- package/dist_ts_web/elements/upl-statuspage-assetsselector.demo.d.ts +1 -0
- package/dist_ts_web/elements/upl-statuspage-assetsselector.demo.js +575 -0
- package/dist_ts_web/elements/upl-statuspage-assetsselector.js +679 -43
- package/dist_ts_web/elements/upl-statuspage-footer.d.ts +46 -2
- package/dist_ts_web/elements/upl-statuspage-footer.demo.d.ts +1 -0
- package/dist_ts_web/elements/upl-statuspage-footer.demo.js +679 -0
- package/dist_ts_web/elements/upl-statuspage-footer.js +846 -61
- package/dist_ts_web/elements/upl-statuspage-header.d.ts +5 -1
- package/dist_ts_web/elements/upl-statuspage-header.demo.d.ts +1 -0
- package/dist_ts_web/elements/upl-statuspage-header.demo.js +220 -0
- package/dist_ts_web/elements/upl-statuspage-header.js +373 -86
- package/dist_ts_web/elements/upl-statuspage-incidents.d.ts +22 -4
- package/dist_ts_web/elements/upl-statuspage-incidents.demo.d.ts +1 -0
- package/dist_ts_web/elements/upl-statuspage-incidents.demo.js +1147 -0
- package/dist_ts_web/elements/upl-statuspage-incidents.js +937 -74
- package/dist_ts_web/elements/upl-statuspage-pagetitle.d.ts +15 -0
- package/dist_ts_web/elements/upl-statuspage-pagetitle.demo.d.ts +1 -0
- package/dist_ts_web/elements/upl-statuspage-pagetitle.demo.js +25 -0
- package/dist_ts_web/elements/upl-statuspage-pagetitle.js +148 -0
- package/dist_ts_web/elements/upl-statuspage-statsgrid.d.ts +23 -0
- package/dist_ts_web/elements/upl-statuspage-statsgrid.demo.d.ts +1 -0
- package/dist_ts_web/elements/upl-statuspage-statsgrid.demo.js +295 -0
- package/dist_ts_web/elements/upl-statuspage-statsgrid.js +549 -0
- package/dist_ts_web/elements/upl-statuspage-statusbar.d.ts +4 -0
- package/dist_ts_web/elements/upl-statuspage-statusbar.demo.d.ts +1 -0
- package/dist_ts_web/elements/upl-statuspage-statusbar.demo.js +365 -0
- package/dist_ts_web/elements/upl-statuspage-statusbar.js +408 -44
- package/dist_ts_web/elements/upl-statuspage-statusdetails.d.ts +14 -0
- package/dist_ts_web/elements/upl-statuspage-statusdetails.demo.d.ts +1 -0
- package/dist_ts_web/elements/upl-statuspage-statusdetails.demo.js +706 -0
- package/dist_ts_web/elements/upl-statuspage-statusdetails.js +397 -62
- package/dist_ts_web/elements/upl-statuspage-statusmonth.d.ts +17 -0
- package/dist_ts_web/elements/upl-statuspage-statusmonth.demo.d.ts +1 -0
- package/dist_ts_web/elements/upl-statuspage-statusmonth.demo.js +798 -0
- package/dist_ts_web/elements/upl-statuspage-statusmonth.js +662 -103
- package/dist_ts_web/interfaces/index.d.ts +84 -0
- package/dist_ts_web/interfaces/index.js +4 -0
- package/dist_ts_web/pages/index.d.ts +4 -1
- package/dist_ts_web/pages/index.js +5 -2
- package/dist_ts_web/pages/statuspage-allgreen.d.ts +1 -0
- package/dist_ts_web/pages/statuspage-allgreen.js +386 -0
- package/dist_ts_web/pages/statuspage-demo.d.ts +1 -0
- package/dist_ts_web/pages/statuspage-demo.js +616 -0
- package/dist_ts_web/pages/statuspage-maintenance.d.ts +1 -0
- package/dist_ts_web/pages/statuspage-maintenance.js +544 -0
- package/dist_ts_web/pages/statuspage-outage.d.ts +1 -0
- package/dist_ts_web/pages/statuspage-outage.js +543 -0
- package/dist_ts_web/styles/shared.styles.d.ts +102 -0
- package/dist_ts_web/styles/shared.styles.js +494 -0
- package/dist_watch/bundle.js +52265 -32033
- package/dist_watch/bundle.js.map +4 -4
- package/dist_watch/index.html +1 -0
- package/npmextra.json +9 -3
- package/package.json +19 -19
- package/readme.hints.md +292 -0
- package/readme.md +326 -149
- package/readme.plan.md +261 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/index.ts +6 -0
- package/ts_web/elements/internal/uplinternal-miniheading.ts +24 -17
- package/ts_web/elements/upl-statuspage-assetsselector.demo.ts +607 -0
- package/ts_web/elements/upl-statuspage-assetsselector.ts +600 -18
- package/ts_web/elements/upl-statuspage-footer.demo.ts +744 -0
- package/ts_web/elements/upl-statuspage-footer.ts +662 -30
- package/ts_web/elements/upl-statuspage-header.demo.ts +241 -0
- package/ts_web/elements/upl-statuspage-header.ts +289 -52
- package/ts_web/elements/upl-statuspage-incidents.demo.ts +1216 -0
- package/ts_web/elements/upl-statuspage-incidents.ts +840 -26
- package/ts_web/elements/upl-statuspage-pagetitle.demo.ts +25 -0
- package/ts_web/elements/upl-statuspage-pagetitle.ts +89 -0
- package/ts_web/elements/upl-statuspage-statsgrid.demo.ts +315 -0
- package/ts_web/elements/upl-statuspage-statsgrid.ts +478 -0
- package/ts_web/elements/upl-statuspage-statusbar.demo.ts +393 -0
- package/ts_web/elements/upl-statuspage-statusbar.ts +332 -20
- package/ts_web/elements/upl-statuspage-statusdetails.demo.ts +754 -0
- package/ts_web/elements/upl-statuspage-statusdetails.ts +321 -37
- package/ts_web/elements/upl-statuspage-statusmonth.demo.ts +876 -0
- package/ts_web/elements/upl-statuspage-statusmonth.ts +584 -79
- package/ts_web/interfaces/index.ts +95 -0
- package/ts_web/pages/index.ts +4 -1
- package/ts_web/pages/statuspage-allgreen.ts +412 -0
- package/ts_web/pages/statuspage-demo.ts +653 -0
- package/ts_web/pages/statuspage-maintenance.ts +570 -0
- package/ts_web/pages/statuspage-outage.ts +568 -0
- package/ts_web/styles/shared.styles.ts +531 -0
- package/dist_ts_web/pages/page1.d.ts +0 -1
- package/dist_ts_web/pages/page1.js +0 -11
- package/ts_web/pages/page1.ts +0 -11
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
import { html } from '@design.estate/dees-element';
|
|
2
|
+
import type { IOverallStatus } from '../interfaces/index.js';
|
|
3
|
+
|
|
4
|
+
export const demoFunc = () => html`
|
|
5
|
+
<style>
|
|
6
|
+
.demo-container {
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
gap: 20px;
|
|
10
|
+
}
|
|
11
|
+
.demo-section {
|
|
12
|
+
border: 1px solid #ddd;
|
|
13
|
+
border-radius: 8px;
|
|
14
|
+
padding: 20px;
|
|
15
|
+
background: #f5f5f5;
|
|
16
|
+
}
|
|
17
|
+
.demo-title {
|
|
18
|
+
font-size: 14px;
|
|
19
|
+
font-weight: 600;
|
|
20
|
+
margin-bottom: 16px;
|
|
21
|
+
color: #333;
|
|
22
|
+
}
|
|
23
|
+
.demo-controls {
|
|
24
|
+
display: flex;
|
|
25
|
+
gap: 10px;
|
|
26
|
+
margin-top: 16px;
|
|
27
|
+
flex-wrap: wrap;
|
|
28
|
+
}
|
|
29
|
+
.demo-button {
|
|
30
|
+
padding: 6px 12px;
|
|
31
|
+
border: 1px solid #ddd;
|
|
32
|
+
background: white;
|
|
33
|
+
border-radius: 4px;
|
|
34
|
+
cursor: pointer;
|
|
35
|
+
font-size: 13px;
|
|
36
|
+
}
|
|
37
|
+
.demo-button:hover {
|
|
38
|
+
background: #f0f0f0;
|
|
39
|
+
}
|
|
40
|
+
.status-info {
|
|
41
|
+
margin-top: 12px;
|
|
42
|
+
padding: 12px;
|
|
43
|
+
background: white;
|
|
44
|
+
border-radius: 4px;
|
|
45
|
+
font-size: 13px;
|
|
46
|
+
line-height: 1.6;
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
49
|
+
|
|
50
|
+
<div class="demo-container">
|
|
51
|
+
<!-- Cycling Through All States -->
|
|
52
|
+
<div class="demo-section">
|
|
53
|
+
<div class="demo-title">Automatic Status Cycling</div>
|
|
54
|
+
<dees-demowrapper
|
|
55
|
+
.runAfterRender=${async (wrapperElement: any) => {
|
|
56
|
+
const statusBar = wrapperElement.querySelector('upl-statuspage-statusbar') as any;
|
|
57
|
+
|
|
58
|
+
const statusStates: IOverallStatus[] = [
|
|
59
|
+
{
|
|
60
|
+
status: 'operational',
|
|
61
|
+
message: 'All Systems Operational',
|
|
62
|
+
lastUpdated: Date.now(),
|
|
63
|
+
affectedServices: 0,
|
|
64
|
+
totalServices: 12
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
status: 'degraded',
|
|
68
|
+
message: 'Minor Service Degradation',
|
|
69
|
+
lastUpdated: Date.now(),
|
|
70
|
+
affectedServices: 2,
|
|
71
|
+
totalServices: 12
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
status: 'partial_outage',
|
|
75
|
+
message: 'Partial System Outage',
|
|
76
|
+
lastUpdated: Date.now(),
|
|
77
|
+
affectedServices: 4,
|
|
78
|
+
totalServices: 12
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
status: 'major_outage',
|
|
82
|
+
message: 'Major Service Disruption',
|
|
83
|
+
lastUpdated: Date.now(),
|
|
84
|
+
affectedServices: 8,
|
|
85
|
+
totalServices: 12
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
status: 'maintenance',
|
|
89
|
+
message: 'Scheduled Maintenance in Progress',
|
|
90
|
+
lastUpdated: Date.now(),
|
|
91
|
+
affectedServices: 3,
|
|
92
|
+
totalServices: 12
|
|
93
|
+
}
|
|
94
|
+
];
|
|
95
|
+
|
|
96
|
+
let statusIndex = 0;
|
|
97
|
+
|
|
98
|
+
// Initial loading demo
|
|
99
|
+
statusBar.loading = true;
|
|
100
|
+
setTimeout(() => {
|
|
101
|
+
statusBar.loading = false;
|
|
102
|
+
statusBar.overallStatus = statusStates[0];
|
|
103
|
+
}, 1500);
|
|
104
|
+
|
|
105
|
+
// Cycle through states
|
|
106
|
+
setInterval(() => {
|
|
107
|
+
statusIndex = (statusIndex + 1) % statusStates.length;
|
|
108
|
+
statusBar.overallStatus = statusStates[statusIndex];
|
|
109
|
+
statusBar.overallStatus = { ...statusBar.overallStatus, lastUpdated: Date.now() };
|
|
110
|
+
}, 3000);
|
|
111
|
+
|
|
112
|
+
// Handle clicks
|
|
113
|
+
statusBar.addEventListener('statusClick', (event: CustomEvent) => {
|
|
114
|
+
console.log('Status bar clicked:', event.detail);
|
|
115
|
+
alert(`Status Details:\n\nStatus: ${event.detail.status.status}\nMessage: ${event.detail.status.message}\nAffected Services: ${event.detail.status.affectedServices}`);
|
|
116
|
+
});
|
|
117
|
+
}}
|
|
118
|
+
>
|
|
119
|
+
<upl-statuspage-statusbar></upl-statuspage-statusbar>
|
|
120
|
+
</dees-demowrapper>
|
|
121
|
+
</div>
|
|
122
|
+
|
|
123
|
+
<!-- Manual Status Control -->
|
|
124
|
+
<div class="demo-section">
|
|
125
|
+
<div class="demo-title">Manual Status Control</div>
|
|
126
|
+
<dees-demowrapper
|
|
127
|
+
.runAfterRender=${async (wrapperElement: any) => {
|
|
128
|
+
const statusBar = wrapperElement.querySelector('upl-statuspage-statusbar') as any;
|
|
129
|
+
|
|
130
|
+
// Initial state
|
|
131
|
+
statusBar.overallStatus = {
|
|
132
|
+
status: 'operational',
|
|
133
|
+
message: 'All Systems Operational',
|
|
134
|
+
lastUpdated: Date.now(),
|
|
135
|
+
affectedServices: 0,
|
|
136
|
+
totalServices: 15
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
// Create controls
|
|
140
|
+
const controls = document.createElement('div');
|
|
141
|
+
controls.className = 'demo-controls';
|
|
142
|
+
controls.innerHTML = `
|
|
143
|
+
<button class="demo-button" data-status="operational">Operational</button>
|
|
144
|
+
<button class="demo-button" data-status="degraded">Degraded</button>
|
|
145
|
+
<button class="demo-button" data-status="partial_outage">Partial Outage</button>
|
|
146
|
+
<button class="demo-button" data-status="major_outage">Major Outage</button>
|
|
147
|
+
<button class="demo-button" data-status="maintenance">Maintenance</button>
|
|
148
|
+
`;
|
|
149
|
+
wrapperElement.appendChild(controls);
|
|
150
|
+
|
|
151
|
+
// Status messages
|
|
152
|
+
const statusMessages = {
|
|
153
|
+
operational: 'All Systems Operational',
|
|
154
|
+
degraded: 'Performance Issues Detected',
|
|
155
|
+
partial_outage: 'Some Services Unavailable',
|
|
156
|
+
major_outage: 'Critical System Failure',
|
|
157
|
+
maintenance: 'Planned Maintenance Window'
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
const affectedCounts = {
|
|
161
|
+
operational: 0,
|
|
162
|
+
degraded: 3,
|
|
163
|
+
partial_outage: 7,
|
|
164
|
+
major_outage: 12,
|
|
165
|
+
maintenance: 5
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
// Handle button clicks
|
|
169
|
+
controls.querySelectorAll('.demo-button').forEach(button => {
|
|
170
|
+
button.addEventListener('click', () => {
|
|
171
|
+
const status = button.getAttribute('data-status') as keyof typeof statusMessages;
|
|
172
|
+
statusBar.overallStatus = {
|
|
173
|
+
status: status as any,
|
|
174
|
+
message: statusMessages[status],
|
|
175
|
+
lastUpdated: Date.now(),
|
|
176
|
+
affectedServices: affectedCounts[status],
|
|
177
|
+
totalServices: 15
|
|
178
|
+
};
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
}}
|
|
182
|
+
>
|
|
183
|
+
<upl-statuspage-statusbar></upl-statuspage-statusbar>
|
|
184
|
+
</dees-demowrapper>
|
|
185
|
+
</div>
|
|
186
|
+
|
|
187
|
+
<!-- Loading States -->
|
|
188
|
+
<div class="demo-section">
|
|
189
|
+
<div class="demo-title">Loading and Refresh States</div>
|
|
190
|
+
<dees-demowrapper
|
|
191
|
+
.runAfterRender=${async (wrapperElement: any) => {
|
|
192
|
+
const statusBar = wrapperElement.querySelector('upl-statuspage-statusbar') as any;
|
|
193
|
+
|
|
194
|
+
// Initial loading
|
|
195
|
+
statusBar.loading = true;
|
|
196
|
+
|
|
197
|
+
const controls = document.createElement('div');
|
|
198
|
+
controls.className = 'demo-controls';
|
|
199
|
+
controls.innerHTML = `
|
|
200
|
+
<button class="demo-button" id="toggleLoading">Toggle Loading</button>
|
|
201
|
+
<button class="demo-button" id="refresh">Refresh Status</button>
|
|
202
|
+
<button class="demo-button" id="simulateError">Simulate Error</button>
|
|
203
|
+
`;
|
|
204
|
+
wrapperElement.appendChild(controls);
|
|
205
|
+
|
|
206
|
+
// Set initial status after loading
|
|
207
|
+
setTimeout(() => {
|
|
208
|
+
statusBar.loading = false;
|
|
209
|
+
statusBar.overallStatus = {
|
|
210
|
+
status: 'operational',
|
|
211
|
+
message: 'All Systems Operational',
|
|
212
|
+
lastUpdated: Date.now(),
|
|
213
|
+
affectedServices: 0,
|
|
214
|
+
totalServices: 10
|
|
215
|
+
};
|
|
216
|
+
}, 2000);
|
|
217
|
+
|
|
218
|
+
// Toggle loading
|
|
219
|
+
controls.querySelector('#toggleLoading')?.addEventListener('click', () => {
|
|
220
|
+
statusBar.loading = !statusBar.loading;
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
// Refresh simulation
|
|
224
|
+
controls.querySelector('#refresh')?.addEventListener('click', () => {
|
|
225
|
+
statusBar.loading = true;
|
|
226
|
+
setTimeout(() => {
|
|
227
|
+
statusBar.loading = false;
|
|
228
|
+
// Simulate random status after refresh
|
|
229
|
+
const statuses = ['operational', 'degraded', 'partial_outage'];
|
|
230
|
+
const randomStatus = statuses[Math.floor(Math.random() * statuses.length)];
|
|
231
|
+
statusBar.overallStatus = {
|
|
232
|
+
status: randomStatus as any,
|
|
233
|
+
message: 'Status refreshed at ' + new Date().toLocaleTimeString(),
|
|
234
|
+
lastUpdated: Date.now(),
|
|
235
|
+
affectedServices: randomStatus === 'operational' ? 0 : Math.floor(Math.random() * 5) + 1,
|
|
236
|
+
totalServices: 10
|
|
237
|
+
};
|
|
238
|
+
}, 1000);
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
// Error simulation
|
|
242
|
+
controls.querySelector('#simulateError')?.addEventListener('click', () => {
|
|
243
|
+
statusBar.loading = true;
|
|
244
|
+
setTimeout(() => {
|
|
245
|
+
statusBar.loading = false;
|
|
246
|
+
statusBar.overallStatus = {
|
|
247
|
+
status: 'major_outage',
|
|
248
|
+
message: 'Unable to fetch status - Connection Error',
|
|
249
|
+
lastUpdated: Date.now(),
|
|
250
|
+
affectedServices: -1, // Unknown
|
|
251
|
+
totalServices: -1
|
|
252
|
+
};
|
|
253
|
+
}, 1500);
|
|
254
|
+
});
|
|
255
|
+
}}
|
|
256
|
+
>
|
|
257
|
+
<upl-statuspage-statusbar></upl-statuspage-statusbar>
|
|
258
|
+
</dees-demowrapper>
|
|
259
|
+
</div>
|
|
260
|
+
|
|
261
|
+
<!-- Edge Cases -->
|
|
262
|
+
<div class="demo-section">
|
|
263
|
+
<div class="demo-title">Edge Cases and Special States</div>
|
|
264
|
+
<dees-demowrapper
|
|
265
|
+
.runAfterRender=${async (wrapperElement: any) => {
|
|
266
|
+
const statusBar = wrapperElement.querySelector('upl-statuspage-statusbar') as any;
|
|
267
|
+
|
|
268
|
+
const edgeCases = [
|
|
269
|
+
{
|
|
270
|
+
label: 'No Services',
|
|
271
|
+
status: {
|
|
272
|
+
status: 'operational',
|
|
273
|
+
message: 'No services to monitor',
|
|
274
|
+
lastUpdated: Date.now(),
|
|
275
|
+
affectedServices: 0,
|
|
276
|
+
totalServices: 0
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
label: 'All Services Down',
|
|
281
|
+
status: {
|
|
282
|
+
status: 'major_outage',
|
|
283
|
+
message: 'Complete System Failure',
|
|
284
|
+
lastUpdated: Date.now(),
|
|
285
|
+
affectedServices: 25,
|
|
286
|
+
totalServices: 25
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
label: 'Very Long Message',
|
|
291
|
+
status: {
|
|
292
|
+
status: 'degraded',
|
|
293
|
+
message: 'Multiple services experiencing degraded performance due to increased load from seasonal traffic surge',
|
|
294
|
+
lastUpdated: Date.now(),
|
|
295
|
+
affectedServices: 7,
|
|
296
|
+
totalServices: 20
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
label: 'Old Timestamp',
|
|
301
|
+
status: {
|
|
302
|
+
status: 'operational',
|
|
303
|
+
message: 'Status data may be stale',
|
|
304
|
+
lastUpdated: Date.now() - 24 * 60 * 60 * 1000, // 24 hours ago
|
|
305
|
+
affectedServices: 0,
|
|
306
|
+
totalServices: 10
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
label: 'Future Maintenance',
|
|
311
|
+
status: {
|
|
312
|
+
status: 'maintenance',
|
|
313
|
+
message: 'Scheduled maintenance starting in 2 hours',
|
|
314
|
+
lastUpdated: Date.now(),
|
|
315
|
+
affectedServices: 0,
|
|
316
|
+
totalServices: 15
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
];
|
|
320
|
+
|
|
321
|
+
let currentCase = 0;
|
|
322
|
+
statusBar.overallStatus = edgeCases[0].status;
|
|
323
|
+
|
|
324
|
+
// Create info display
|
|
325
|
+
const info = document.createElement('div');
|
|
326
|
+
info.className = 'status-info';
|
|
327
|
+
info.innerHTML = `<strong>Current Case:</strong> ${edgeCases[0].label}`;
|
|
328
|
+
wrapperElement.appendChild(info);
|
|
329
|
+
|
|
330
|
+
// Create controls
|
|
331
|
+
const controls = document.createElement('div');
|
|
332
|
+
controls.className = 'demo-controls';
|
|
333
|
+
controls.innerHTML = `
|
|
334
|
+
<button class="demo-button" id="prevCase">← Previous Case</button>
|
|
335
|
+
<button class="demo-button" id="nextCase">Next Case →</button>
|
|
336
|
+
`;
|
|
337
|
+
wrapperElement.appendChild(controls);
|
|
338
|
+
|
|
339
|
+
const updateCase = (index: number) => {
|
|
340
|
+
currentCase = index;
|
|
341
|
+
statusBar.overallStatus = edgeCases[currentCase].status;
|
|
342
|
+
info.innerHTML = `<strong>Current Case:</strong> ${edgeCases[currentCase].label}`;
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
controls.querySelector('#prevCase')?.addEventListener('click', () => {
|
|
346
|
+
const newIndex = (currentCase - 1 + edgeCases.length) % edgeCases.length;
|
|
347
|
+
updateCase(newIndex);
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
controls.querySelector('#nextCase')?.addEventListener('click', () => {
|
|
351
|
+
const newIndex = (currentCase + 1) % edgeCases.length;
|
|
352
|
+
updateCase(newIndex);
|
|
353
|
+
});
|
|
354
|
+
}}
|
|
355
|
+
>
|
|
356
|
+
<upl-statuspage-statusbar></upl-statuspage-statusbar>
|
|
357
|
+
</dees-demowrapper>
|
|
358
|
+
</div>
|
|
359
|
+
|
|
360
|
+
<!-- Non-Expandable Status Bar -->
|
|
361
|
+
<div class="demo-section">
|
|
362
|
+
<div class="demo-title">Non-Expandable Status Bar</div>
|
|
363
|
+
<dees-demowrapper
|
|
364
|
+
.runAfterRender=${async (wrapperElement: any) => {
|
|
365
|
+
const statusBar = wrapperElement.querySelector('upl-statuspage-statusbar') as any;
|
|
366
|
+
|
|
367
|
+
// Disable expandable behavior
|
|
368
|
+
statusBar.expandable = false;
|
|
369
|
+
|
|
370
|
+
statusBar.overallStatus = {
|
|
371
|
+
status: 'operational',
|
|
372
|
+
message: 'This status bar cannot be clicked',
|
|
373
|
+
lastUpdated: Date.now(),
|
|
374
|
+
affectedServices: 0,
|
|
375
|
+
totalServices: 8
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
// This event won't fire since expandable is false
|
|
379
|
+
statusBar.addEventListener('statusClick', (event: CustomEvent) => {
|
|
380
|
+
console.log('This should not fire');
|
|
381
|
+
});
|
|
382
|
+
|
|
383
|
+
const info = document.createElement('div');
|
|
384
|
+
info.className = 'status-info';
|
|
385
|
+
info.innerHTML = 'Try clicking the status bar - it should not respond to clicks when expandable=false';
|
|
386
|
+
wrapperElement.appendChild(info);
|
|
387
|
+
}}
|
|
388
|
+
>
|
|
389
|
+
<upl-statuspage-statusbar></upl-statuspage-statusbar>
|
|
390
|
+
</dees-demowrapper>
|
|
391
|
+
</div>
|
|
392
|
+
</div>
|
|
393
|
+
`;
|