@push.rocks/taskbuffer 3.2.0 → 3.5.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/LICENSE +1 -1
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts_web/ts/index.d.ts +13 -0
- package/dist_ts_web/ts/index.js +12 -0
- package/dist_ts_web/ts/taskbuffer.classes.bufferrunner.d.ts +8 -0
- package/dist_ts_web/ts/taskbuffer.classes.bufferrunner.js +28 -0
- package/dist_ts_web/ts/taskbuffer.classes.cyclecounter.d.ts +13 -0
- package/dist_ts_web/ts/taskbuffer.classes.cyclecounter.js +31 -0
- package/dist_ts_web/ts/taskbuffer.classes.distributedcoordinator.d.ts +27 -0
- package/dist_ts_web/ts/taskbuffer.classes.distributedcoordinator.js +5 -0
- package/dist_ts_web/ts/taskbuffer.classes.task.d.ts +86 -0
- package/dist_ts_web/ts/taskbuffer.classes.task.js +257 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskchain.d.ts +14 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskchain.js +51 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskdebounced.d.ts +10 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskdebounced.js +20 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskmanager.d.ts +49 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskmanager.js +208 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskonce.d.ts +11 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskonce.js +20 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskparallel.d.ts +7 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskparallel.js +23 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskrunner.d.ts +30 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskrunner.js +54 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskstep.d.ts +27 -0
- package/dist_ts_web/ts/taskbuffer.classes.taskstep.js +37 -0
- package/dist_ts_web/ts/taskbuffer.interfaces.d.ts +36 -0
- package/dist_ts_web/ts/taskbuffer.interfaces.js +2 -0
- package/dist_ts_web/ts/taskbuffer.logging.d.ts +2 -0
- package/dist_ts_web/ts/taskbuffer.logging.js +3 -0
- package/dist_ts_web/ts/taskbuffer.plugins.d.ts +8 -0
- package/dist_ts_web/ts/taskbuffer.plugins.js +9 -0
- package/dist_ts_web/ts_web/00_commitinfo_data.d.ts +8 -0
- package/dist_ts_web/ts_web/00_commitinfo_data.js +9 -0
- package/dist_ts_web/ts_web/demorunner.d.ts +1 -0
- package/dist_ts_web/ts_web/demorunner.js +33 -0
- package/dist_ts_web/ts_web/elements/taskbuffer-dashboard.demo.d.ts +2 -0
- package/dist_ts_web/ts_web/elements/taskbuffer-dashboard.demo.js +285 -0
- package/dist_ts_web/ts_web/index.d.ts +2 -0
- package/dist_ts_web/ts_web/index.js +3 -0
- package/dist_ts_web/ts_web/taskbuffer-dashboard.d.ts +24 -0
- package/dist_ts_web/ts_web/taskbuffer-dashboard.js +549 -0
- package/package.json +13 -12
- package/readme.md +429 -930
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/taskbuffer-dashboard.demo.ts +311 -0
- package/ts_web/index.ts +12 -0
- package/ts_web/taskbuffer-dashboard.ts +541 -0
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { html, css, cssManager } from '@design.estate/dees-element';
|
|
2
|
+
import { TaskManager, Task } from '../../ts/index.js';
|
|
3
|
+
import '../taskbuffer-dashboard.js';
|
|
4
|
+
export const demoFunc = () => html `
|
|
5
|
+
<style>
|
|
6
|
+
${css `
|
|
7
|
+
.demoWrapper {
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
position: relative;
|
|
10
|
+
width: 100%;
|
|
11
|
+
min-height: 100vh;
|
|
12
|
+
padding: 48px;
|
|
13
|
+
background: ${cssManager.bdTheme('#f8f9fa', '#0a0a0a')};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
h1 {
|
|
17
|
+
font-size: 32px;
|
|
18
|
+
font-weight: 700;
|
|
19
|
+
color: ${cssManager.bdTheme('#09090b', '#fafafa')};
|
|
20
|
+
margin-bottom: 12px;
|
|
21
|
+
text-align: center;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
p {
|
|
25
|
+
font-size: 16px;
|
|
26
|
+
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
|
|
27
|
+
text-align: center;
|
|
28
|
+
margin-bottom: 48px;
|
|
29
|
+
}
|
|
30
|
+
`}
|
|
31
|
+
</style>
|
|
32
|
+
|
|
33
|
+
<div class="demoWrapper">
|
|
34
|
+
<h1>TaskBuffer Dashboard Demo</h1>
|
|
35
|
+
<p>Real-time visualization of task execution, progress tracking, and scheduling</p>
|
|
36
|
+
|
|
37
|
+
<dees-demowrapper
|
|
38
|
+
.title=${'Live Dashboard'}
|
|
39
|
+
.subtitle=${'Interactive task management dashboard with real-time updates'}
|
|
40
|
+
.runAfterRender=${async (element) => {
|
|
41
|
+
// Create TaskManager instance
|
|
42
|
+
const taskManager = new TaskManager();
|
|
43
|
+
// Get dashboard element
|
|
44
|
+
const dashboard = element.querySelector('taskbuffer-dashboard');
|
|
45
|
+
dashboard.taskManager = taskManager;
|
|
46
|
+
dashboard.refreshInterval = 500;
|
|
47
|
+
// Task counter for unique names
|
|
48
|
+
let taskCounter = 0;
|
|
49
|
+
// Helper to create random delay
|
|
50
|
+
const randomDelay = () => new Promise(resolve => setTimeout(resolve, Math.random() * 2000 + 500));
|
|
51
|
+
// Add initial demo tasks
|
|
52
|
+
const addDemoTasks = () => {
|
|
53
|
+
// Add simple task
|
|
54
|
+
const simpleTask = new Task({
|
|
55
|
+
name: `SimpleTask_${++taskCounter}`,
|
|
56
|
+
taskFunction: async () => {
|
|
57
|
+
console.log(`Executing SimpleTask_${taskCounter}`);
|
|
58
|
+
await randomDelay();
|
|
59
|
+
return `Result from SimpleTask_${taskCounter}`;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
taskManager.addTask(simpleTask);
|
|
63
|
+
// Add task with steps
|
|
64
|
+
const steppedTask = new Task({
|
|
65
|
+
name: `SteppedTask_${++taskCounter}`,
|
|
66
|
+
steps: [
|
|
67
|
+
{ name: 'init', description: 'Initializing', percentage: 20 },
|
|
68
|
+
{ name: 'fetch', description: 'Fetching data', percentage: 30 },
|
|
69
|
+
{ name: 'process', description: 'Processing', percentage: 35 },
|
|
70
|
+
{ name: 'save', description: 'Saving results', percentage: 15 }
|
|
71
|
+
],
|
|
72
|
+
taskFunction: async function () {
|
|
73
|
+
this.notifyStep('init');
|
|
74
|
+
await randomDelay();
|
|
75
|
+
this.notifyStep('fetch');
|
|
76
|
+
await randomDelay();
|
|
77
|
+
this.notifyStep('process');
|
|
78
|
+
await randomDelay();
|
|
79
|
+
this.notifyStep('save');
|
|
80
|
+
await randomDelay();
|
|
81
|
+
return `Completed SteppedTask_${taskCounter}`;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
taskManager.addTask(steppedTask);
|
|
85
|
+
// Add buffered task
|
|
86
|
+
const bufferedTask = new Task({
|
|
87
|
+
name: `BufferedTask_${++taskCounter}`,
|
|
88
|
+
buffered: true,
|
|
89
|
+
bufferMax: 3,
|
|
90
|
+
steps: [
|
|
91
|
+
{ name: 'buffer', description: 'Processing buffered item', percentage: 100 }
|
|
92
|
+
],
|
|
93
|
+
taskFunction: async function (item) {
|
|
94
|
+
this.notifyStep('buffer');
|
|
95
|
+
console.log(`Processing buffered item: ${item}`);
|
|
96
|
+
await randomDelay();
|
|
97
|
+
return `Buffered task ${taskCounter} processed: ${item}`;
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
taskManager.addTask(bufferedTask);
|
|
101
|
+
};
|
|
102
|
+
// Add initial tasks
|
|
103
|
+
addDemoTasks();
|
|
104
|
+
// Automatically trigger some tasks
|
|
105
|
+
setTimeout(() => {
|
|
106
|
+
const tasks = taskManager.getAllTasksMetadata();
|
|
107
|
+
tasks.forEach(taskMeta => {
|
|
108
|
+
const task = taskManager.getTaskByName(taskMeta.name);
|
|
109
|
+
if (task && !taskMeta.name.includes('Scheduled')) {
|
|
110
|
+
if (taskMeta.buffered) {
|
|
111
|
+
// Trigger buffered task multiple times
|
|
112
|
+
for (let i = 0; i < 5; i++) {
|
|
113
|
+
task.trigger(`Data_${i}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
task.trigger();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}, 2000);
|
|
122
|
+
}}
|
|
123
|
+
>
|
|
124
|
+
<taskbuffer-dashboard></taskbuffer-dashboard>
|
|
125
|
+
</dees-demowrapper>
|
|
126
|
+
|
|
127
|
+
<dees-demowrapper
|
|
128
|
+
.title=${'Scheduled Tasks'}
|
|
129
|
+
.subtitle=${'Tasks scheduled with cron expressions'}
|
|
130
|
+
.runAfterRender=${async (element) => {
|
|
131
|
+
// Create TaskManager instance
|
|
132
|
+
const taskManager = new TaskManager();
|
|
133
|
+
// Get dashboard element
|
|
134
|
+
const dashboard = element.querySelector('taskbuffer-dashboard');
|
|
135
|
+
dashboard.taskManager = taskManager;
|
|
136
|
+
dashboard.refreshInterval = 1000;
|
|
137
|
+
// Add scheduled tasks
|
|
138
|
+
const scheduledTask1 = new Task({
|
|
139
|
+
name: 'HourlyBackup',
|
|
140
|
+
steps: [
|
|
141
|
+
{ name: 'prepare', description: 'Preparing backup', percentage: 30 },
|
|
142
|
+
{ name: 'backup', description: 'Creating backup', percentage: 50 },
|
|
143
|
+
{ name: 'verify', description: 'Verifying backup', percentage: 20 }
|
|
144
|
+
],
|
|
145
|
+
taskFunction: async function () {
|
|
146
|
+
this.notifyStep('prepare');
|
|
147
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
148
|
+
this.notifyStep('backup');
|
|
149
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
150
|
+
this.notifyStep('verify');
|
|
151
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
152
|
+
return 'Backup completed';
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
const scheduledTask2 = new Task({
|
|
156
|
+
name: 'DailyReport',
|
|
157
|
+
steps: [
|
|
158
|
+
{ name: 'collect', description: 'Collecting data', percentage: 40 },
|
|
159
|
+
{ name: 'analyze', description: 'Analyzing data', percentage: 40 },
|
|
160
|
+
{ name: 'send', description: 'Sending report', percentage: 20 }
|
|
161
|
+
],
|
|
162
|
+
taskFunction: async function () {
|
|
163
|
+
this.notifyStep('collect');
|
|
164
|
+
await new Promise(resolve => setTimeout(resolve, 1500));
|
|
165
|
+
this.notifyStep('analyze');
|
|
166
|
+
await new Promise(resolve => setTimeout(resolve, 1500));
|
|
167
|
+
this.notifyStep('send');
|
|
168
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
169
|
+
return 'Report sent';
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
// Schedule tasks
|
|
173
|
+
taskManager.addAndScheduleTask(scheduledTask1, '0 * * * *'); // Every hour
|
|
174
|
+
taskManager.addAndScheduleTask(scheduledTask2, '0 0 * * *'); // Daily at midnight
|
|
175
|
+
// Also add them as regular tasks for demo
|
|
176
|
+
const demoTask = new Task({
|
|
177
|
+
name: 'DemoScheduledExecution',
|
|
178
|
+
steps: [
|
|
179
|
+
{ name: 'execute', description: 'Simulating scheduled execution', percentage: 100 }
|
|
180
|
+
],
|
|
181
|
+
taskFunction: async function () {
|
|
182
|
+
this.notifyStep('execute');
|
|
183
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
184
|
+
// Trigger scheduled tasks for demo
|
|
185
|
+
scheduledTask1.trigger();
|
|
186
|
+
scheduledTask2.trigger();
|
|
187
|
+
return 'Triggered scheduled tasks for demo';
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
taskManager.addTask(demoTask);
|
|
191
|
+
// Trigger demo after 2 seconds
|
|
192
|
+
setTimeout(() => {
|
|
193
|
+
demoTask.trigger();
|
|
194
|
+
}, 2000);
|
|
195
|
+
}}
|
|
196
|
+
>
|
|
197
|
+
<taskbuffer-dashboard></taskbuffer-dashboard>
|
|
198
|
+
</dees-demowrapper>
|
|
199
|
+
|
|
200
|
+
<dees-demowrapper
|
|
201
|
+
.title=${'Task Execution Control'}
|
|
202
|
+
.subtitle=${'Interactive controls for task management'}
|
|
203
|
+
.runAfterRender=${async (element) => {
|
|
204
|
+
// Create TaskManager instance
|
|
205
|
+
const taskManager = new TaskManager();
|
|
206
|
+
// Get dashboard element
|
|
207
|
+
const dashboard = element.querySelector('taskbuffer-dashboard');
|
|
208
|
+
dashboard.taskManager = taskManager;
|
|
209
|
+
dashboard.refreshInterval = 300;
|
|
210
|
+
// Add control buttons
|
|
211
|
+
const controlsDiv = document.createElement('div');
|
|
212
|
+
controlsDiv.style.cssText = `
|
|
213
|
+
display: flex;
|
|
214
|
+
gap: 8px;
|
|
215
|
+
margin-bottom: 16px;
|
|
216
|
+
flex-wrap: wrap;
|
|
217
|
+
`;
|
|
218
|
+
const createButton = (text, onClick, style = '') => {
|
|
219
|
+
const button = document.createElement('button');
|
|
220
|
+
button.textContent = text;
|
|
221
|
+
button.style.cssText = `
|
|
222
|
+
padding: 8px 16px;
|
|
223
|
+
border: none;
|
|
224
|
+
border-radius: 6px;
|
|
225
|
+
cursor: pointer;
|
|
226
|
+
font-size: 14px;
|
|
227
|
+
transition: all 0.2s;
|
|
228
|
+
${style}
|
|
229
|
+
`;
|
|
230
|
+
button.onclick = onClick;
|
|
231
|
+
return button;
|
|
232
|
+
};
|
|
233
|
+
let taskCounter = 0;
|
|
234
|
+
// Add task button
|
|
235
|
+
controlsDiv.appendChild(createButton('Add Task', () => {
|
|
236
|
+
const task = new Task({
|
|
237
|
+
name: `Task_${++taskCounter}`,
|
|
238
|
+
steps: [
|
|
239
|
+
{ name: 'step1', description: 'Step 1', percentage: 33 },
|
|
240
|
+
{ name: 'step2', description: 'Step 2', percentage: 33 },
|
|
241
|
+
{ name: 'step3', description: 'Step 3', percentage: 34 }
|
|
242
|
+
],
|
|
243
|
+
taskFunction: async function () {
|
|
244
|
+
for (const step of ['step1', 'step2', 'step3']) {
|
|
245
|
+
this.notifyStep(step);
|
|
246
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
247
|
+
}
|
|
248
|
+
return `Task_${taskCounter} completed`;
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
taskManager.addTask(task);
|
|
252
|
+
}, 'background: #3b82f6; color: white;'));
|
|
253
|
+
// Trigger all button
|
|
254
|
+
controlsDiv.appendChild(createButton('Trigger All', () => {
|
|
255
|
+
const tasks = taskManager.getAllTasksMetadata();
|
|
256
|
+
tasks.forEach(taskMeta => {
|
|
257
|
+
const task = taskManager.getTaskByName(taskMeta.name);
|
|
258
|
+
if (task) {
|
|
259
|
+
task.trigger();
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}, 'background: #22c55e; color: white;'));
|
|
263
|
+
// Clear all button
|
|
264
|
+
controlsDiv.appendChild(createButton('Clear All', () => {
|
|
265
|
+
const tasks = taskManager.getAllTasksMetadata();
|
|
266
|
+
tasks.forEach(taskMeta => {
|
|
267
|
+
const task = taskManager.getTaskByName(taskMeta.name);
|
|
268
|
+
if (task) {
|
|
269
|
+
taskManager.taskMap.remove(task);
|
|
270
|
+
taskManager.descheduleTaskByName(taskMeta.name);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
}, 'background: #ef4444; color: white;'));
|
|
274
|
+
element.insertBefore(controlsDiv, dashboard);
|
|
275
|
+
// Add some initial tasks
|
|
276
|
+
for (let i = 0; i < 3; i++) {
|
|
277
|
+
controlsDiv.querySelector('button').click();
|
|
278
|
+
}
|
|
279
|
+
}}
|
|
280
|
+
>
|
|
281
|
+
<taskbuffer-dashboard></taskbuffer-dashboard>
|
|
282
|
+
</dees-demowrapper>
|
|
283
|
+
</div>
|
|
284
|
+
`;
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci1kYXNoYm9hcmQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy90YXNrYnVmZmVyLWRhc2hib2FyZC5kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyw0QkFBNEIsQ0FBQztBQUVwQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOztNQUU1QixHQUFHLENBQUE7Ozs7Ozs7c0JBT2EsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7aUJBTTdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7OztpQkFPeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7O0tBSXBEOzs7Ozs7OztlQVFVLGdCQUFnQjtrQkFDYiw4REFBOEQ7d0JBQ3hELEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNsQyw4QkFBOEI7SUFDOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUV0Qyx3QkFBd0I7SUFDeEIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2hFLFNBQVMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ3BDLFNBQVMsQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDO0lBRWhDLGdDQUFnQztJQUNoQyxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFFcEIsZ0NBQWdDO0lBQ2hDLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxD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
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// Export web components
|
|
2
|
+
export * from './taskbuffer-dashboard.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0JBQXdCO0FBQ3hCLGNBQWMsMkJBQTJCLENBQUMifQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DeesElement } from '@design.estate/dees-element';
|
|
2
|
+
import type { TaskManager } from '../ts/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* A web component that displays TaskManager tasks with progress visualization
|
|
5
|
+
*/
|
|
6
|
+
export declare class TaskbufferDashboard extends DeesElement {
|
|
7
|
+
taskManager: TaskManager | null;
|
|
8
|
+
refreshInterval: number;
|
|
9
|
+
private tasks;
|
|
10
|
+
private scheduledTasks;
|
|
11
|
+
private isRunning;
|
|
12
|
+
private refreshTimer;
|
|
13
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
14
|
+
connectedCallback(): Promise<void>;
|
|
15
|
+
disconnectedCallback(): Promise<void>;
|
|
16
|
+
private startRefreshing;
|
|
17
|
+
private stopRefreshing;
|
|
18
|
+
private updateData;
|
|
19
|
+
private formatNextRun;
|
|
20
|
+
private formatDuration;
|
|
21
|
+
render(): import("@design.estate/dees-element").TemplateResult<1>;
|
|
22
|
+
private renderTaskCard;
|
|
23
|
+
private renderScheduledTaskCard;
|
|
24
|
+
}
|