@design.estate/dees-catalog 3.50.2 → 3.51.1
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 +453 -483
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-chart/dees-chart-area/component.d.ts +35 -27
- package/dist_ts_web/elements/00group-chart/dees-chart-area/component.js +394 -457
- package/dist_ts_web/elements/00group-chart/dees-chart-area/styles.js +51 -20
- package/dist_ts_web/elements/00group-chart/dees-chart-area/template.js +15 -1
- package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.js +2 -1
- package/dist_ts_web/services/DeesServiceLibLoader.d.ts +29 -7
- package/dist_ts_web/services/DeesServiceLibLoader.js +25 -18
- package/dist_ts_web/services/index.d.ts +1 -1
- package/dist_ts_web/services/versions.d.ts +1 -1
- package/dist_ts_web/services/versions.js +2 -2
- package/dist_watch/bundle.js +451 -481
- package/dist_watch/bundle.js.map +3 -3
- package/package.json +2 -2
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-chart/dees-chart-area/component.ts +421 -527
- package/ts_web/elements/00group-chart/dees-chart-area/styles.ts +50 -20
- package/ts_web/elements/00group-chart/dees-chart-area/template.ts +14 -1
- package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts +1 -0
- package/ts_web/services/DeesServiceLibLoader.ts +57 -19
- package/ts_web/services/index.ts +1 -1
- package/ts_web/services/versions.ts +1 -1
|
@@ -6,7 +6,6 @@ export const chartAreaStyles = [
|
|
|
6
6
|
:host {
|
|
7
7
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
|
|
8
8
|
color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};
|
|
9
|
-
font-weight: 400;
|
|
10
9
|
font-size: 14px;
|
|
11
10
|
}
|
|
12
11
|
.mainbox {
|
|
@@ -18,7 +17,6 @@ export const chartAreaStyles = [
|
|
|
18
17
|
border-radius: 8px;
|
|
19
18
|
overflow: hidden;
|
|
20
19
|
}
|
|
21
|
-
|
|
22
20
|
.chartTitle {
|
|
23
21
|
position: absolute;
|
|
24
22
|
top: 0;
|
|
@@ -34,27 +32,59 @@ export const chartAreaStyles = [
|
|
|
34
32
|
}
|
|
35
33
|
.chartContainer {
|
|
36
34
|
position: absolute;
|
|
37
|
-
top:
|
|
38
|
-
left:
|
|
39
|
-
bottom:
|
|
40
|
-
right:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
35
|
+
top: 44px;
|
|
36
|
+
left: 0;
|
|
37
|
+
bottom: 32px;
|
|
38
|
+
right: 0;
|
|
39
|
+
}
|
|
40
|
+
.statsBar {
|
|
41
|
+
position: absolute;
|
|
42
|
+
bottom: 0;
|
|
43
|
+
left: 0;
|
|
44
|
+
right: 0;
|
|
45
|
+
height: 32px;
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
gap: 24px;
|
|
49
|
+
padding: 0 16px;
|
|
50
|
+
border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
|
|
51
|
+
font-size: 11px;
|
|
52
|
+
color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 55%)')};
|
|
44
53
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
.statsSeries {
|
|
55
|
+
display: flex;
|
|
56
|
+
align-items: center;
|
|
57
|
+
gap: 8px;
|
|
49
58
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
59
|
+
.statsSeries + .statsSeries {
|
|
60
|
+
padding-left: 24px;
|
|
61
|
+
border-left: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
|
|
53
62
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
63
|
+
.statsColor {
|
|
64
|
+
width: 8px;
|
|
65
|
+
height: 8px;
|
|
66
|
+
border-radius: 2px;
|
|
67
|
+
flex-shrink: 0;
|
|
68
|
+
}
|
|
69
|
+
.statsName {
|
|
70
|
+
font-weight: 500;
|
|
71
|
+
color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};
|
|
72
|
+
margin-right: 4px;
|
|
73
|
+
}
|
|
74
|
+
.statsItem strong {
|
|
75
|
+
color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};
|
|
76
|
+
}
|
|
77
|
+
.lw-tooltip {
|
|
78
|
+
position: absolute;
|
|
79
|
+
z-index: 100;
|
|
80
|
+
pointer-events: none;
|
|
81
|
+
padding: 12px;
|
|
82
|
+
border-radius: 6px;
|
|
83
|
+
border: 1px solid;
|
|
84
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
85
|
+
font-size: 12px;
|
|
86
|
+
box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.15);
|
|
87
|
+
min-width: 140px;
|
|
57
88
|
}
|
|
58
89
|
`,
|
|
59
90
|
];
|
|
60
|
-
|
|
@@ -6,7 +6,20 @@ export const renderChartArea = (component: DeesChartArea): TemplateResult => {
|
|
|
6
6
|
<div class="mainbox">
|
|
7
7
|
<div class="chartTitle">${component.label}</div>
|
|
8
8
|
<div class="chartContainer"></div>
|
|
9
|
+
${component.seriesStats.length > 0 ? html`
|
|
10
|
+
<div class="statsBar">
|
|
11
|
+
${component.seriesStats.map(s => html`
|
|
12
|
+
<div class="statsSeries">
|
|
13
|
+
<span class="statsColor" style="background:${s.color}"></span>
|
|
14
|
+
<span class="statsName">${s.name}</span>
|
|
15
|
+
<span class="statsItem">latest <strong>${component.yAxisFormatter(s.latest)}</strong></span>
|
|
16
|
+
<span class="statsItem">min <strong>${component.yAxisFormatter(s.min)}</strong></span>
|
|
17
|
+
<span class="statsItem">max <strong>${component.yAxisFormatter(s.max)}</strong></span>
|
|
18
|
+
<span class="statsItem">avg <strong>${component.yAxisFormatter(s.avg)}</strong></span>
|
|
19
|
+
</div>
|
|
20
|
+
`)}
|
|
21
|
+
</div>
|
|
22
|
+
` : ''}
|
|
9
23
|
</div>
|
|
10
24
|
`;
|
|
11
|
-
|
|
12
25
|
};
|
|
@@ -710,6 +710,7 @@ export class DeesSimpleAppDash extends DeesElement {
|
|
|
710
710
|
terminal.style.top = 'var(--banner-area-height, 0px)';
|
|
711
711
|
terminal.style.left = '240px';
|
|
712
712
|
terminal.style.right = '0px';
|
|
713
|
+
terminal.style.height = 'auto';
|
|
713
714
|
terminal.style.bottom = '24px';
|
|
714
715
|
terminal.style.opacity = '0';
|
|
715
716
|
terminal.style.transform = 'translateY(8px) scale(0.99)';
|
|
@@ -4,7 +4,15 @@ import { CDN_BASE, CDN_VERSIONS } from './versions.js';
|
|
|
4
4
|
import type { Terminal, ITerminalOptions } from 'xterm';
|
|
5
5
|
import type { FitAddon } from 'xterm-addon-fit';
|
|
6
6
|
import type { HLJSApi } from 'highlight.js';
|
|
7
|
-
import type
|
|
7
|
+
import type {
|
|
8
|
+
createChart as createChartType,
|
|
9
|
+
IChartApi,
|
|
10
|
+
ISeriesApi,
|
|
11
|
+
UTCTimestamp,
|
|
12
|
+
MouseEventParams,
|
|
13
|
+
DeepPartial,
|
|
14
|
+
TimeChartOptions,
|
|
15
|
+
} from 'lightweight-charts';
|
|
8
16
|
import type { Editor, EditorOptions } from '@tiptap/core';
|
|
9
17
|
import type { StarterKitOptions } from '@tiptap/starter-kit';
|
|
10
18
|
import type { UnderlineOptions } from '@tiptap/extension-underline';
|
|
@@ -43,6 +51,29 @@ export interface IXtermSearchAddon {
|
|
|
43
51
|
findPrevious(term: string, searchOptions?: { regex?: boolean; wholeWord?: boolean; caseSensitive?: boolean; incremental?: boolean }): boolean;
|
|
44
52
|
}
|
|
45
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Bundle type for TradingView Lightweight Charts
|
|
56
|
+
*/
|
|
57
|
+
export interface ILightweightChartsBundle {
|
|
58
|
+
createChart: typeof createChartType;
|
|
59
|
+
AreaSeries: any;
|
|
60
|
+
LineSeries: any;
|
|
61
|
+
ColorType: {
|
|
62
|
+
Solid: string;
|
|
63
|
+
VerticalGradient: string;
|
|
64
|
+
};
|
|
65
|
+
LineType: {
|
|
66
|
+
Simple: number;
|
|
67
|
+
WithSteps: number;
|
|
68
|
+
Curved: number;
|
|
69
|
+
};
|
|
70
|
+
CrosshairMode: {
|
|
71
|
+
Normal: number;
|
|
72
|
+
Magnet: number;
|
|
73
|
+
Hidden: number;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
46
77
|
/**
|
|
47
78
|
* Bundle type for Tiptap editor and extensions
|
|
48
79
|
*/
|
|
@@ -76,7 +107,7 @@ export class DeesServiceLibLoader {
|
|
|
76
107
|
private xtermFitAddonLib: IXtermFitAddonBundle | null = null;
|
|
77
108
|
private xtermSearchAddonLib: IXtermSearchAddonBundle | null = null;
|
|
78
109
|
private highlightJsLib: HLJSApi | null = null;
|
|
79
|
-
private
|
|
110
|
+
private lightweightChartsLib: ILightweightChartsBundle | null = null;
|
|
80
111
|
private tiptapLib: ITiptapBundle | null = null;
|
|
81
112
|
|
|
82
113
|
// Loading promises to prevent duplicate concurrent loads
|
|
@@ -84,7 +115,7 @@ export class DeesServiceLibLoader {
|
|
|
84
115
|
private xtermFitAddonLoadingPromise: Promise<IXtermFitAddonBundle> | null = null;
|
|
85
116
|
private xtermSearchAddonLoadingPromise: Promise<IXtermSearchAddonBundle> | null = null;
|
|
86
117
|
private highlightJsLoadingPromise: Promise<HLJSApi> | null = null;
|
|
87
|
-
private
|
|
118
|
+
private lightweightChartsLoadingPromise: Promise<ILightweightChartsBundle> | null = null;
|
|
88
119
|
private tiptapLoadingPromise: Promise<ITiptapBundle> | null = null;
|
|
89
120
|
|
|
90
121
|
private constructor() {}
|
|
@@ -235,27 +266,34 @@ body > div[style*="top: -50000px"][style*="width: 50000px"] {
|
|
|
235
266
|
}
|
|
236
267
|
|
|
237
268
|
/**
|
|
238
|
-
* Load
|
|
239
|
-
* @returns Promise resolving to
|
|
269
|
+
* Load TradingView Lightweight Charts from CDN
|
|
270
|
+
* @returns Promise resolving to Lightweight Charts bundle
|
|
240
271
|
*/
|
|
241
|
-
public async
|
|
242
|
-
if (this.
|
|
243
|
-
return this.
|
|
272
|
+
public async loadLightweightCharts(): Promise<ILightweightChartsBundle> {
|
|
273
|
+
if (this.lightweightChartsLib) {
|
|
274
|
+
return this.lightweightChartsLib;
|
|
244
275
|
}
|
|
245
276
|
|
|
246
|
-
if (this.
|
|
247
|
-
return this.
|
|
277
|
+
if (this.lightweightChartsLoadingPromise) {
|
|
278
|
+
return this.lightweightChartsLoadingPromise;
|
|
248
279
|
}
|
|
249
280
|
|
|
250
|
-
this.
|
|
251
|
-
const url = `${CDN_BASE}/
|
|
281
|
+
this.lightweightChartsLoadingPromise = (async () => {
|
|
282
|
+
const url = `${CDN_BASE}/lightweight-charts@${CDN_VERSIONS.lightweightCharts}/+esm`;
|
|
252
283
|
const module = await import(/* @vite-ignore */ url);
|
|
253
284
|
|
|
254
|
-
this.
|
|
255
|
-
|
|
285
|
+
this.lightweightChartsLib = {
|
|
286
|
+
createChart: module.createChart,
|
|
287
|
+
AreaSeries: module.AreaSeries,
|
|
288
|
+
LineSeries: module.LineSeries,
|
|
289
|
+
ColorType: module.ColorType,
|
|
290
|
+
LineType: module.LineType,
|
|
291
|
+
CrosshairMode: module.CrosshairMode,
|
|
292
|
+
};
|
|
293
|
+
return this.lightweightChartsLib;
|
|
256
294
|
})();
|
|
257
295
|
|
|
258
|
-
return this.
|
|
296
|
+
return this.lightweightChartsLoadingPromise;
|
|
259
297
|
}
|
|
260
298
|
|
|
261
299
|
/**
|
|
@@ -316,7 +354,7 @@ body > div[style*="top: -50000px"][style*="width: 50000px"] {
|
|
|
316
354
|
this.loadXtermFitAddon(),
|
|
317
355
|
this.loadXtermSearchAddon(),
|
|
318
356
|
this.loadHighlightJs(),
|
|
319
|
-
this.
|
|
357
|
+
this.loadLightweightCharts(),
|
|
320
358
|
this.loadTiptap(),
|
|
321
359
|
]);
|
|
322
360
|
}
|
|
@@ -324,7 +362,7 @@ body > div[style*="top: -50000px"][style*="width: 50000px"] {
|
|
|
324
362
|
/**
|
|
325
363
|
* Check if a specific library is already loaded
|
|
326
364
|
*/
|
|
327
|
-
public isLoaded(library: 'xterm' | 'xtermFitAddon' | 'xtermSearchAddon' | 'highlightJs' | '
|
|
365
|
+
public isLoaded(library: 'xterm' | 'xtermFitAddon' | 'xtermSearchAddon' | 'highlightJs' | 'lightweightCharts' | 'tiptap'): boolean {
|
|
328
366
|
switch (library) {
|
|
329
367
|
case 'xterm':
|
|
330
368
|
return this.xtermLib !== null;
|
|
@@ -334,8 +372,8 @@ body > div[style*="top: -50000px"][style*="width: 50000px"] {
|
|
|
334
372
|
return this.xtermSearchAddonLib !== null;
|
|
335
373
|
case 'highlightJs':
|
|
336
374
|
return this.highlightJsLib !== null;
|
|
337
|
-
case '
|
|
338
|
-
return this.
|
|
375
|
+
case 'lightweightCharts':
|
|
376
|
+
return this.lightweightChartsLib !== null;
|
|
339
377
|
case 'tiptap':
|
|
340
378
|
return this.tiptapLib !== null;
|
|
341
379
|
default:
|
package/ts_web/services/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { DeesServiceLibLoader } from './DeesServiceLibLoader.js';
|
|
2
|
-
export type { IXtermBundle, IXtermFitAddonBundle, IXtermSearchAddonBundle, IXtermSearchAddon, ITiptapBundle } from './DeesServiceLibLoader.js';
|
|
2
|
+
export type { IXtermBundle, IXtermFitAddonBundle, IXtermSearchAddonBundle, IXtermSearchAddon, ITiptapBundle, ILightweightChartsBundle } from './DeesServiceLibLoader.js';
|
|
3
3
|
export { CDN_BASE, CDN_VERSIONS } from './versions.js';
|