oakscriptjs 0.9.6 → 0.10.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/README.md +1 -1
- package/dist/cjs/array/index.d.ts +9 -23
- package/dist/cjs/array/index.d.ts.map +1 -1
- package/dist/cjs/array/index.js +4 -0
- package/dist/cjs/array/index.js.map +2 -2
- package/dist/cjs/drawing/bar-time.d.ts +24 -0
- package/dist/cjs/drawing/bar-time.d.ts.map +1 -0
- package/dist/cjs/drawing/bar-time.js +47 -0
- package/dist/cjs/drawing/bar-time.js.map +7 -0
- package/dist/cjs/drawing/output.d.ts +32 -0
- package/dist/cjs/drawing/output.d.ts.map +1 -0
- package/dist/cjs/drawing/output.js +184 -0
- package/dist/cjs/drawing/output.js.map +7 -0
- package/dist/cjs/drawing/registry.d.ts +5 -4
- package/dist/cjs/drawing/registry.d.ts.map +1 -1
- package/dist/cjs/drawing/registry.js +11 -2
- package/dist/cjs/drawing/registry.js.map +2 -2
- package/dist/cjs/index.d.ts +7 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +11 -2
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/polyline/index.d.ts +3 -5
- package/dist/cjs/polyline/index.d.ts.map +1 -1
- package/dist/cjs/polyline/index.js +0 -5
- package/dist/cjs/polyline/index.js.map +2 -2
- package/dist/cjs/runtime/index.d.ts +2 -1
- package/dist/cjs/runtime/index.d.ts.map +1 -1
- package/dist/cjs/runtime/index.js +2 -0
- package/dist/cjs/runtime/index.js.map +2 -2
- package/dist/cjs/runtime/input-active.d.ts +27 -0
- package/dist/cjs/runtime/input-active.d.ts.map +1 -0
- package/dist/cjs/runtime/input-active.js +44 -0
- package/dist/cjs/runtime/input-active.js.map +7 -0
- package/dist/cjs/runtime/types.d.ts +51 -2
- package/dist/cjs/runtime/types.d.ts.map +1 -1
- package/dist/cjs/runtime/types.js.map +1 -1
- package/dist/cjs/script/index.d.ts +104 -8
- package/dist/cjs/script/index.d.ts.map +1 -1
- package/dist/cjs/script/index.js +163 -28
- package/dist/cjs/script/index.js.map +3 -3
- package/dist/cjs/str/index.d.ts +9 -3
- package/dist/cjs/str/index.d.ts.map +1 -1
- package/dist/cjs/str/index.js +11 -6
- package/dist/cjs/str/index.js.map +2 -2
- package/dist/cjs/str/numberformat.d.ts +6 -0
- package/dist/cjs/str/numberformat.d.ts.map +1 -1
- package/dist/cjs/str/numberformat.js +9 -1
- package/dist/cjs/str/numberformat.js.map +2 -2
- package/dist/cjs/table/index.d.ts +87 -0
- package/dist/cjs/table/index.d.ts.map +1 -0
- package/dist/cjs/table/index.js +150 -0
- package/dist/cjs/table/index.js.map +7 -0
- package/dist/cjs/text/index.d.ts +17 -2
- package/dist/cjs/text/index.d.ts.map +1 -1
- package/dist/cjs/text/index.js +15 -1
- package/dist/cjs/text/index.js.map +2 -2
- package/dist/cjs/types/index.d.ts +30 -1
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +12 -0
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/types/metadata.d.ts +258 -26
- package/dist/cjs/types/metadata.d.ts.map +1 -1
- package/dist/cjs/types/metadata.js.map +1 -1
- package/dist/esm/array/index.d.ts +9 -23
- package/dist/esm/array/index.d.ts.map +1 -1
- package/dist/esm/array/index.js +10 -22
- package/dist/esm/array/index.js.map +1 -1
- package/dist/esm/drawing/bar-time.d.ts +24 -0
- package/dist/esm/drawing/bar-time.d.ts.map +1 -0
- package/dist/esm/drawing/bar-time.js +44 -0
- package/dist/esm/drawing/bar-time.js.map +1 -0
- package/dist/esm/drawing/output.d.ts +32 -0
- package/dist/esm/drawing/output.d.ts.map +1 -0
- package/dist/esm/drawing/output.js +190 -0
- package/dist/esm/drawing/output.js.map +1 -0
- package/dist/esm/drawing/registry.d.ts +5 -4
- package/dist/esm/drawing/registry.d.ts.map +1 -1
- package/dist/esm/drawing/registry.js +12 -2
- package/dist/esm/drawing/registry.js.map +1 -1
- package/dist/esm/index.d.ts +7 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +8 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/polyline/index.d.ts +3 -5
- package/dist/esm/polyline/index.d.ts.map +1 -1
- package/dist/esm/polyline/index.js +3 -9
- package/dist/esm/polyline/index.js.map +1 -1
- package/dist/esm/runtime/index.d.ts +2 -1
- package/dist/esm/runtime/index.d.ts.map +1 -1
- package/dist/esm/runtime/index.js +1 -0
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/input-active.d.ts +27 -0
- package/dist/esm/runtime/input-active.d.ts.map +1 -0
- package/dist/esm/runtime/input-active.js +54 -0
- package/dist/esm/runtime/input-active.js.map +1 -0
- package/dist/esm/runtime/types.d.ts +51 -2
- package/dist/esm/runtime/types.d.ts.map +1 -1
- package/dist/esm/script/index.d.ts +104 -8
- package/dist/esm/script/index.d.ts.map +1 -1
- package/dist/esm/script/index.js +194 -24
- package/dist/esm/script/index.js.map +1 -1
- package/dist/esm/str/index.d.ts +9 -3
- package/dist/esm/str/index.d.ts.map +1 -1
- package/dist/esm/str/index.js +25 -10
- package/dist/esm/str/index.js.map +1 -1
- package/dist/esm/str/numberformat.d.ts +6 -0
- package/dist/esm/str/numberformat.d.ts.map +1 -1
- package/dist/esm/str/numberformat.js +12 -0
- package/dist/esm/str/numberformat.js.map +1 -1
- package/dist/esm/table/index.d.ts +87 -0
- package/dist/esm/table/index.d.ts.map +1 -0
- package/dist/esm/table/index.js +169 -0
- package/dist/esm/table/index.js.map +1 -0
- package/dist/esm/text/index.d.ts +17 -2
- package/dist/esm/text/index.d.ts.map +1 -1
- package/dist/esm/text/index.js +17 -2
- package/dist/esm/text/index.js.map +1 -1
- package/dist/esm/types/index.d.ts +30 -1
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +14 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/metadata.d.ts +258 -26
- package/dist/esm/types/metadata.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/array/index.ts +12 -23
- package/src/drawing/bar-time.ts +42 -0
- package/src/drawing/output.ts +214 -0
- package/src/drawing/registry.ts +16 -6
- package/src/index.ts +11 -3
- package/src/polyline/index.ts +3 -12
- package/src/runtime/index.ts +3 -0
- package/src/runtime/input-active.ts +50 -0
- package/src/runtime/types.ts +48 -2
- package/src/script/index.ts +301 -30
- package/src/str/index.ts +23 -10
- package/src/str/numberformat.ts +13 -0
- package/src/table/index.ts +221 -0
- package/src/text/index.ts +18 -2
- package/src/types/index.ts +32 -1
- package/src/types/metadata.ts +325 -26
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renderable form of the live drawing objects (labels, lines, boxes, linefills, polylines, tables): the
|
|
3
|
+
* `IndicatorResult` fields `labels`, `lines`, `boxes`, `linefills`, `polylines` and `tables`.
|
|
4
|
+
*
|
|
5
|
+
* Conversion rules:
|
|
6
|
+
* - x coordinates become bar times: a `bar_index` x is the time of that bar, or of a future bar after the last bar
|
|
7
|
+
* (see {@link barTime}); a `bar_time` x (UNIX ms, as PineScript) is converted to the unit of the bar times
|
|
8
|
+
* - an object with an `na` coordinate (or a bar index before the first bar) is not drawn, as in PineScript
|
|
9
|
+
* - a property the script did not set is omitted (the renderer uses the PineScript default); a colour set to `na`
|
|
10
|
+
* is 'transparent'
|
|
11
|
+
* - `force_overlay` is kept only when true
|
|
12
|
+
*
|
|
13
|
+
* @module drawing/output
|
|
14
|
+
*/
|
|
15
|
+
import { all } from './registry.js';
|
|
16
|
+
import { barInterval, barTime } from './bar-time.js';
|
|
17
|
+
/** A colour of the result: 'transparent' for na (null), '#rrggbb' for a numeric colour. */
|
|
18
|
+
function colorOut(c) {
|
|
19
|
+
if (c === undefined)
|
|
20
|
+
return undefined;
|
|
21
|
+
if (c === null || (typeof c === 'number' && Number.isNaN(c)))
|
|
22
|
+
return 'transparent';
|
|
23
|
+
return typeof c === 'number' ? `#${(c & 0xffffff).toString(16).padStart(6, '0')}` : c;
|
|
24
|
+
}
|
|
25
|
+
/** The object without its undefined fields (so that the result has only the properties that were set). */
|
|
26
|
+
function compact(obj) {
|
|
27
|
+
for (const k of Object.keys(obj))
|
|
28
|
+
if (obj[k] === undefined)
|
|
29
|
+
delete obj[k];
|
|
30
|
+
return obj;
|
|
31
|
+
}
|
|
32
|
+
const overlay = (flag) => (flag ? true : undefined);
|
|
33
|
+
/**
|
|
34
|
+
* Converts the live drawing objects of the registry. `bars` are the chart bars (their `time` in `timeUnit`, 's' by
|
|
35
|
+
* default as lightweight-charts); they give the time of a bar index.
|
|
36
|
+
*/
|
|
37
|
+
export function drawingOutputs(bars, timeUnit = 's') {
|
|
38
|
+
const interval = barInterval(bars);
|
|
39
|
+
const msUnit = timeUnit === 'ms' ? 1 : 1000;
|
|
40
|
+
const xTime = (x, xloc) => xloc === 'bar_time' ? x / msUnit : barTime(bars, x, interval);
|
|
41
|
+
const ok = (...values) => values.every(Number.isFinite);
|
|
42
|
+
const lineData = (l) => {
|
|
43
|
+
const time1 = xTime(l.x1, l.xloc);
|
|
44
|
+
const time2 = xTime(l.x2, l.xloc);
|
|
45
|
+
if (!ok(time1, time2, l.y1, l.y2))
|
|
46
|
+
return undefined;
|
|
47
|
+
return compact({
|
|
48
|
+
time1,
|
|
49
|
+
price1: l.y1,
|
|
50
|
+
time2,
|
|
51
|
+
price2: l.y2,
|
|
52
|
+
color: colorOut(l.color),
|
|
53
|
+
width: l.width,
|
|
54
|
+
style: l.style,
|
|
55
|
+
extend: l.extend,
|
|
56
|
+
forceOverlay: overlay(l.force_overlay),
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const labelData = (l) => {
|
|
60
|
+
const time = xTime(l.x, l.xloc);
|
|
61
|
+
// abovebar / belowbar labels are placed at the bar, not at y
|
|
62
|
+
if (!ok(time) || (l.yloc === 'price' && !ok(l.y)))
|
|
63
|
+
return undefined;
|
|
64
|
+
return compact({
|
|
65
|
+
time,
|
|
66
|
+
price: l.y,
|
|
67
|
+
text: l.text ?? '',
|
|
68
|
+
color: colorOut(l.color),
|
|
69
|
+
textColor: colorOut(l.textcolor),
|
|
70
|
+
style: l.style,
|
|
71
|
+
size: l.size,
|
|
72
|
+
yloc: l.yloc,
|
|
73
|
+
textAlign: l.textalign,
|
|
74
|
+
tooltip: l.tooltip,
|
|
75
|
+
fontFamily: l.text_font_family,
|
|
76
|
+
textFormatting: l.text_formatting,
|
|
77
|
+
forceOverlay: overlay(l.force_overlay),
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
const boxData = (b) => {
|
|
81
|
+
const time1 = xTime(b.left, b.xloc);
|
|
82
|
+
const time2 = xTime(b.right, b.xloc);
|
|
83
|
+
if (!ok(time1, time2, b.top, b.bottom))
|
|
84
|
+
return undefined;
|
|
85
|
+
return compact({
|
|
86
|
+
time1,
|
|
87
|
+
price1: b.top,
|
|
88
|
+
time2,
|
|
89
|
+
price2: b.bottom,
|
|
90
|
+
bgColor: colorOut(b.bgcolor),
|
|
91
|
+
borderColor: colorOut(b.border_color),
|
|
92
|
+
borderWidth: b.border_width,
|
|
93
|
+
borderStyle: b.border_style,
|
|
94
|
+
text: b.text,
|
|
95
|
+
textColor: colorOut(b.text_color),
|
|
96
|
+
textSize: b.text_size,
|
|
97
|
+
textHAlign: b.text_halign,
|
|
98
|
+
textVAlign: b.text_valign,
|
|
99
|
+
textWrap: b.text_wrap,
|
|
100
|
+
fontFamily: b.text_font_family,
|
|
101
|
+
textFormatting: b.text_formatting,
|
|
102
|
+
extend: b.extend,
|
|
103
|
+
forceOverlay: overlay(b.force_overlay),
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
const polylineData = (p) => {
|
|
107
|
+
const points = [];
|
|
108
|
+
for (const point of p.points) {
|
|
109
|
+
const x = p.xloc === 'bar_time' ? point.time : point.index;
|
|
110
|
+
const time = x === null ? NaN : xTime(x, p.xloc);
|
|
111
|
+
if (ok(time, point.price))
|
|
112
|
+
points.push({ time, price: point.price });
|
|
113
|
+
}
|
|
114
|
+
if (points.length === 0)
|
|
115
|
+
return undefined;
|
|
116
|
+
return compact({
|
|
117
|
+
points,
|
|
118
|
+
curved: p.curved,
|
|
119
|
+
closed: p.closed,
|
|
120
|
+
lineColor: colorOut(p.line_color),
|
|
121
|
+
fillColor: p.fill_color === null ? undefined : colorOut(p.fill_color),
|
|
122
|
+
lineStyle: p.line_style,
|
|
123
|
+
lineWidth: p.line_width,
|
|
124
|
+
forceOverlay: overlay(p.force_overlay),
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
const tableData = (t) => {
|
|
128
|
+
const cells = [];
|
|
129
|
+
for (const [key, c] of t.cells ?? []) {
|
|
130
|
+
const [column, row] = key.split(',').map(Number);
|
|
131
|
+
cells.push(compact({
|
|
132
|
+
row,
|
|
133
|
+
column,
|
|
134
|
+
text: c.text ?? '',
|
|
135
|
+
bgColor: colorOut(c.bgcolor),
|
|
136
|
+
textColor: colorOut(c.text_color),
|
|
137
|
+
textSize: c.text_size,
|
|
138
|
+
width: c.width,
|
|
139
|
+
height: c.height,
|
|
140
|
+
textHAlign: c.text_halign,
|
|
141
|
+
textVAlign: c.text_valign,
|
|
142
|
+
tooltip: c.tooltip,
|
|
143
|
+
fontFamily: c.text_font_family,
|
|
144
|
+
textFormatting: c.text_formatting,
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
cells.sort((a, b) => a.row - b.row || a.column - b.column);
|
|
148
|
+
const merges = (t.merges ?? []).map((m) => ({
|
|
149
|
+
startColumn: m.start_column,
|
|
150
|
+
startRow: m.start_row,
|
|
151
|
+
endColumn: m.end_column,
|
|
152
|
+
endRow: m.end_row,
|
|
153
|
+
}));
|
|
154
|
+
return compact({
|
|
155
|
+
position: t.position,
|
|
156
|
+
columns: t.columns,
|
|
157
|
+
rows: t.rows,
|
|
158
|
+
cells,
|
|
159
|
+
merges: merges.length ? merges : undefined,
|
|
160
|
+
bgColor: colorOut(t.bgcolor),
|
|
161
|
+
frameColor: colorOut(t.frame_color),
|
|
162
|
+
frameWidth: t.frame_width,
|
|
163
|
+
borderColor: colorOut(t.border_color),
|
|
164
|
+
borderWidth: t.border_width,
|
|
165
|
+
forceOverlay: overlay(t.force_overlay),
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
const convert = (items, fn) => {
|
|
169
|
+
const out = [];
|
|
170
|
+
for (const item of items) {
|
|
171
|
+
const r = fn(item);
|
|
172
|
+
if (r !== undefined)
|
|
173
|
+
out.push(r);
|
|
174
|
+
}
|
|
175
|
+
return out.length ? out : undefined;
|
|
176
|
+
};
|
|
177
|
+
return {
|
|
178
|
+
labels: convert(all('label'), labelData),
|
|
179
|
+
lines: convert(all('line'), lineData),
|
|
180
|
+
boxes: convert(all('box'), boxData),
|
|
181
|
+
linefills: convert(all('linefill'), (f) => {
|
|
182
|
+
const line1 = lineData(f.line1);
|
|
183
|
+
const line2 = lineData(f.line2);
|
|
184
|
+
return line1 && line2 ? compact({ line1, line2, color: colorOut(f.color) }) : undefined;
|
|
185
|
+
}),
|
|
186
|
+
polylines: convert(all('polyline'), polylineData),
|
|
187
|
+
tables: convert(all('table'), tableData),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/drawing/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Registry of the live drawing objects (lines, labels, boxes, polylines, linefills), as PineScript
|
|
2
|
+
* Registry of the live drawing objects (lines, labels, boxes, polylines, linefills, tables), as PineScript
|
|
3
3
|
* keeps them. PineScript rules:
|
|
4
4
|
*
|
|
5
5
|
* - `line.all`, `label.all`, ... list the live objects in creation order (a copy of the list)
|
|
@@ -14,18 +14,19 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @module drawing/registry
|
|
16
16
|
*/
|
|
17
|
-
import type { Box, Label, Line, Linefill, Polyline } from '../types/index.js';
|
|
18
|
-
export type DrawingKind = 'line' | 'label' | 'box' | 'polyline' | 'linefill';
|
|
17
|
+
import type { Box, Label, Line, Linefill, Polyline, Table } from '../types/index.js';
|
|
18
|
+
export type DrawingKind = 'line' | 'label' | 'box' | 'polyline' | 'linefill' | 'table';
|
|
19
19
|
interface DrawingTypes {
|
|
20
20
|
line: Line;
|
|
21
21
|
label: Label;
|
|
22
22
|
box: Box;
|
|
23
23
|
polyline: Polyline;
|
|
24
24
|
linefill: Linefill;
|
|
25
|
+
table: Table;
|
|
25
26
|
}
|
|
26
27
|
/** Default `max_lines_count`, `max_labels_count`, `max_boxes_count`, `max_polylines_count`. */
|
|
27
28
|
export declare const DEFAULT_MAX_COUNT = 50;
|
|
28
|
-
export type DrawingLimits = Partial<Record<Exclude<DrawingKind, 'linefill'>, number>>;
|
|
29
|
+
export type DrawingLimits = Partial<Record<Exclude<DrawingKind, 'linefill' | 'table'>, number>>;
|
|
29
30
|
/** Records a new object and deletes the oldest objects of its kind when the count is too high. */
|
|
30
31
|
export declare function register<K extends DrawingKind>(kind: K, obj: DrawingTypes[K]): DrawingTypes[K];
|
|
31
32
|
/** Deletes an object (no effect when it is already deleted). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/drawing/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/drawing/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAErF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAEvF,UAAU,YAAY;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,+FAA+F;AAC/F,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAIpC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAoChG,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAS9F;AAED,gEAAgE;AAChE,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAKjF;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE/C;AAED,mEAAmE;AACnE,wBAAgB,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAE1E;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,SAAS,GAAE,aAAkB,GAAG,IAAI,CAQjE;AAED,uGAAuG;AACvG,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAE/D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Registry of the live drawing objects (lines, labels, boxes, polylines, linefills), as PineScript
|
|
2
|
+
* Registry of the live drawing objects (lines, labels, boxes, polylines, linefills, tables), as PineScript
|
|
3
3
|
* keeps them. PineScript rules:
|
|
4
4
|
*
|
|
5
5
|
* - `line.all`, `label.all`, ... list the live objects in creation order (a copy of the list)
|
|
@@ -18,7 +18,14 @@
|
|
|
18
18
|
export const DEFAULT_MAX_COUNT = 50;
|
|
19
19
|
/** Objects above the maximum that PineScript keeps before it deletes the oldest ones. */
|
|
20
20
|
const SLACK = 5;
|
|
21
|
-
const live = {
|
|
21
|
+
const live = {
|
|
22
|
+
line: [],
|
|
23
|
+
label: [],
|
|
24
|
+
box: [],
|
|
25
|
+
polyline: [],
|
|
26
|
+
linefill: [],
|
|
27
|
+
table: [],
|
|
28
|
+
};
|
|
22
29
|
let limits = {
|
|
23
30
|
line: DEFAULT_MAX_COUNT,
|
|
24
31
|
label: DEFAULT_MAX_COUNT,
|
|
@@ -33,6 +40,7 @@ const COORDINATES = {
|
|
|
33
40
|
box: ['left', 'top', 'right', 'bottom'],
|
|
34
41
|
polyline: [],
|
|
35
42
|
linefill: [],
|
|
43
|
+
table: [],
|
|
36
44
|
};
|
|
37
45
|
function markDeleted(kind, obj, explicit) {
|
|
38
46
|
deleted.add(obj);
|
|
@@ -47,6 +55,8 @@ function markDeleted(kind, obj, explicit) {
|
|
|
47
55
|
export function register(kind, obj) {
|
|
48
56
|
const list = live[kind];
|
|
49
57
|
list.push(obj);
|
|
58
|
+
if (kind === 'table')
|
|
59
|
+
return obj; // tables have no maximum count
|
|
50
60
|
const max = limits[kind === 'linefill' ? 'line' : kind];
|
|
51
61
|
if (list.length > max + SLACK) {
|
|
52
62
|
for (const old of list.splice(0, list.length - max))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/drawing/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/drawing/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -28,10 +28,13 @@ import * as label from './label/index.js';
|
|
|
28
28
|
import * as linefill from './linefill/index.js';
|
|
29
29
|
import * as chartPoint from './chartpoint/index.js';
|
|
30
30
|
import * as polyline from './polyline/index.js';
|
|
31
|
+
import * as table from './table/index.js';
|
|
31
32
|
import * as text from './text/index.js';
|
|
32
33
|
import * as compare from './compare/index.js';
|
|
33
34
|
import * as callsite from './callsite/index.js';
|
|
34
|
-
export { taCore, math, array, map, str, color, time, timeframe, matrix, line, box, label, linefill, chartPoint, polyline, text, compare, callsite };
|
|
35
|
+
export { taCore, math, array, map, str, color, time, timeframe, matrix, line, box, label, linefill, chartPoint, polyline, table, text, compare, callsite };
|
|
36
|
+
export { drawingOutputs, type DrawingOutputs } from './drawing/output.js';
|
|
37
|
+
export { barInterval, barTime } from './drawing/bar-time.js';
|
|
35
38
|
export { Series, BarData } from './runtime/series.js';
|
|
36
39
|
export type { SeriesExtractor } from './runtime/series.js';
|
|
37
40
|
import * as ta from './ta-series.js';
|
|
@@ -48,13 +51,14 @@ export { input, type InputValue, type IntInputOptions, type FloatInputOptions, t
|
|
|
48
51
|
export { plot as plotHelper, createPlot, type Time, type TimeValuePair, type PlotOptions as PlotHelperOptions, type PlotResult, } from './plot.js';
|
|
49
52
|
export { setContext, clearContext, getContext, registerCalculate, recalculate, plot, hline, clearPlots, } from './runtime/runtime.js';
|
|
50
53
|
export { input_int, input_float, input_bool, input_string, input_source, input_timeframe, input_session, input_time, } from './runtime/inputs.js';
|
|
51
|
-
export
|
|
54
|
+
export { isInputActive } from './runtime/input-active.js';
|
|
55
|
+
export type { OakScriptContext, ChartAdapter, InputAdapter, SeriesHandle, SeriesOptions, InputConfig, InputCondition, InputOptions, OhlcvData, PlotConfig, HLineConfig, FillConfig, ArrowConfig, CandleConfig, } from './runtime/types.js';
|
|
52
56
|
export { STRATEGY_CONSTANTS, STRATEGY_DEFAULTS, STRATEGY_NUMBER_VARIABLES, STRATEGY_TEXT_VARIABLES, } from './strategy/index.js';
|
|
53
57
|
export type * from './strategy/index.js';
|
|
54
58
|
export { LightweightChartsAdapter } from './runtime/adapters/LightweightChartsAdapter.js';
|
|
55
59
|
export type { LightweightSeriesDefinitions } from './runtime/adapters/LightweightChartsAdapter.js';
|
|
56
60
|
export { SimpleInputAdapter } from './runtime/adapters/SimpleInputAdapter.js';
|
|
57
|
-
export declare const VERSION = "0.
|
|
61
|
+
export declare const VERSION = "0.10.1";
|
|
58
62
|
/**
|
|
59
63
|
* Library information
|
|
60
64
|
*/
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAGpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAGpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAG3J,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,CAAC;AAGd,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACV,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAE,GAAG,EAAE,QAAQ,IAAI,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAGzH,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EACL,SAAS,EACT,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,IAAI,IAAI,UAAU,EAClB,UAAU,EACV,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,KAAK,WAAW,IAAI,iBAAiB,EACrC,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,IAAI,EACJ,KAAK,EACL,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,mBAAmB,qBAAqB,CAAC;AAEzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,YAAY,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;CAiBhB,CAAC;AAKF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAE5F"}
|
package/dist/esm/index.js
CHANGED
|
@@ -30,10 +30,14 @@ import * as label from './label/index.js';
|
|
|
30
30
|
import * as linefill from './linefill/index.js';
|
|
31
31
|
import * as chartPoint from './chartpoint/index.js';
|
|
32
32
|
import * as polyline from './polyline/index.js';
|
|
33
|
+
import * as table from './table/index.js';
|
|
33
34
|
import * as text from './text/index.js';
|
|
34
35
|
import * as compare from './compare/index.js';
|
|
35
36
|
import * as callsite from './callsite/index.js';
|
|
36
|
-
export { taCore, math, array, map, str, color, time, timeframe, matrix, line, box, label, linefill, chartPoint, polyline, text, compare, callsite };
|
|
37
|
+
export { taCore, math, array, map, str, color, time, timeframe, matrix, line, box, label, linefill, chartPoint, polyline, table, text, compare, callsite };
|
|
38
|
+
// Renderable drawings (IndicatorResult labels, lines, boxes, linefills, polylines, tables) and future bar times
|
|
39
|
+
export { drawingOutputs } from './drawing/output.js';
|
|
40
|
+
export { barInterval, barTime } from './drawing/bar-time.js';
|
|
37
41
|
// Export Series class (self-contained, no context)
|
|
38
42
|
export { Series, BarData } from './runtime/series.js';
|
|
39
43
|
// Export TA-Series namespace (Series-based wrappers)
|
|
@@ -56,12 +60,13 @@ export { plot as plotHelper, createPlot, } from './plot.js';
|
|
|
56
60
|
// Runtime exports - global context runtime (setContext, plot, hline) drawing through a ChartAdapter
|
|
57
61
|
export { setContext, clearContext, getContext, registerCalculate, recalculate, plot, hline, clearPlots, } from './runtime/runtime.js';
|
|
58
62
|
export { input_int, input_float, input_bool, input_string, input_source, input_timeframe, input_session, input_time, } from './runtime/inputs.js';
|
|
63
|
+
export { isInputActive } from './runtime/input-active.js';
|
|
59
64
|
// Strategy types and constants (the script API forwards strategy.* calls to a host engine)
|
|
60
65
|
export { STRATEGY_CONSTANTS, STRATEGY_DEFAULTS, STRATEGY_NUMBER_VARIABLES, STRATEGY_TEXT_VARIABLES, } from './strategy/index.js';
|
|
61
66
|
export { LightweightChartsAdapter } from './runtime/adapters/LightweightChartsAdapter.js';
|
|
62
67
|
export { SimpleInputAdapter } from './runtime/adapters/SimpleInputAdapter.js';
|
|
63
68
|
// Version
|
|
64
|
-
export const VERSION = '0.
|
|
69
|
+
export const VERSION = '0.10.1';
|
|
65
70
|
/**
|
|
66
71
|
* Library information
|
|
67
72
|
*/
|
|
@@ -78,7 +83,7 @@ export const info = {
|
|
|
78
83
|
},
|
|
79
84
|
namespaces: {
|
|
80
85
|
core: ['ta', 'math', 'array', 'map', 'str', 'color', 'time', 'timeframe', 'matrix'],
|
|
81
|
-
drawing: ['line', 'box', 'label', 'linefill', 'chartPoint', 'polyline', 'text'],
|
|
86
|
+
drawing: ['line', 'box', 'label', 'linefill', 'chartPoint', 'polyline', 'table', 'text'],
|
|
82
87
|
runtime: ['setContext', 'plot', 'hline', 'input_*'],
|
|
83
88
|
indicator: ['indicator', 'input', 'plotHelper', 'createPlot']
|
|
84
89
|
}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,mBAAmB;AACnB,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAEpC,iDAAiD;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
6
|
* Polylines allow connecting multiple points with line segments, enabling complex chart drawings
|
|
7
|
-
* like trend channels, patterns, and custom shapes.
|
|
8
|
-
* polylines
|
|
7
|
+
* like trend channels, patterns, and custom shapes. The `curved` flag goes to the renderer
|
|
8
|
+
* (`result.polylines` of the script API), which draws the curve.
|
|
9
9
|
*
|
|
10
10
|
* @version 6
|
|
11
11
|
*/
|
|
@@ -15,7 +15,7 @@ export type { Polyline };
|
|
|
15
15
|
* Creates a new polyline connecting all points.
|
|
16
16
|
*
|
|
17
17
|
* @param points - Array of chart.point objects to connect
|
|
18
|
-
* @param curved - If true, use curved line segments (default: false
|
|
18
|
+
* @param curved - If true, use curved line segments (default: false)
|
|
19
19
|
* @param closed - If true, connect first point to last point (default: false)
|
|
20
20
|
* @param xloc - X-coordinate mode: 'bar_index' or 'bar_time' (default: 'bar_index')
|
|
21
21
|
* @param line_color - Color of line segments (default: '#2196F3' - blue)
|
|
@@ -26,8 +26,6 @@ export type { Polyline };
|
|
|
26
26
|
* @returns New Polyline object
|
|
27
27
|
*
|
|
28
28
|
* @remarks
|
|
29
|
-
* - The curved parameter is accepted but currently logs a warning as curved lines
|
|
30
|
-
* are not yet supported. Straight-line connections are used instead.
|
|
31
29
|
* - For meaningful polylines, provide at least 2 points.
|
|
32
30
|
* - Closed polylines can be filled with a color by setting fill_color.
|
|
33
31
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/polyline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAIrE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAYzB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/polyline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAIrE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAYzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,EAAE,EACpB,MAAM,GAAE,OAAe,EACvB,MAAM,GAAE,OAAe,EACvB,IAAI,GAAE,WAAW,GAAG,UAAwB,EAC5C,UAAU,GAAE,KAAiB,EAC7B,UAAU,GAAE,KAAK,GAAG,IAAW,EAC/B,UAAU,GAAE,OAAO,GAAG,QAAQ,GAAG,QAAkB,EACnD,UAAU,GAAE,MAAU,EACtB,aAAa,GAAE,OAAe,GAC7B,QAAQ,CAqBV;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAElD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,OAAO,IAAI,SAAS,QAAQ,EAAE,CAE7C;AAED;;GAEG;AACH,wBAAgB,GAAG,IAAI,QAAQ,EAAE,CAEhC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAGD,OAAO,EAAE,YAAY,IAAI,GAAG,EAAE,CAAC;AAC/B,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
6
|
* Polylines allow connecting multiple points with line segments, enabling complex chart drawings
|
|
7
|
-
* like trend channels, patterns, and custom shapes.
|
|
8
|
-
* polylines
|
|
7
|
+
* like trend channels, patterns, and custom shapes. The `curved` flag goes to the renderer
|
|
8
|
+
* (`result.polylines` of the script API), which draws the curve.
|
|
9
9
|
*
|
|
10
10
|
* @version 6
|
|
11
11
|
*/
|
|
@@ -22,7 +22,7 @@ function generateId() {
|
|
|
22
22
|
* Creates a new polyline connecting all points.
|
|
23
23
|
*
|
|
24
24
|
* @param points - Array of chart.point objects to connect
|
|
25
|
-
* @param curved - If true, use curved line segments (default: false
|
|
25
|
+
* @param curved - If true, use curved line segments (default: false)
|
|
26
26
|
* @param closed - If true, connect first point to last point (default: false)
|
|
27
27
|
* @param xloc - X-coordinate mode: 'bar_index' or 'bar_time' (default: 'bar_index')
|
|
28
28
|
* @param line_color - Color of line segments (default: '#2196F3' - blue)
|
|
@@ -33,8 +33,6 @@ function generateId() {
|
|
|
33
33
|
* @returns New Polyline object
|
|
34
34
|
*
|
|
35
35
|
* @remarks
|
|
36
|
-
* - The curved parameter is accepted but currently logs a warning as curved lines
|
|
37
|
-
* are not yet supported. Straight-line connections are used instead.
|
|
38
36
|
* - For meaningful polylines, provide at least 2 points.
|
|
39
37
|
* - Closed polylines can be filled with a color by setting fill_color.
|
|
40
38
|
*
|
|
@@ -64,10 +62,6 @@ function generateId() {
|
|
|
64
62
|
* ```
|
|
65
63
|
*/
|
|
66
64
|
export function new_polyline(points, curved = false, closed = false, xloc = 'bar_index', line_color = '#2196F3', fill_color = null, line_style = 'solid', line_width = 1, force_overlay = false) {
|
|
67
|
-
// Warn about curved polylines not being supported yet
|
|
68
|
-
if (curved) {
|
|
69
|
-
console.warn('polyline.new(): curved polylines are not yet supported. Using straight-line connections.');
|
|
70
|
-
}
|
|
71
65
|
// Validate line_width is positive
|
|
72
66
|
if (line_width < 1) {
|
|
73
67
|
console.warn('polyline.new(): line_width must be at least 1. Using 1.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/polyline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAK9E,6CAA6C;AAC7C,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B;;GAEG;AACH,SAAS,UAAU;IACjB,OAAO,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAC3C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/polyline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAK9E,6CAA6C;AAC7C,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B;;GAEG;AACH,SAAS,UAAU;IACjB,OAAO,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAoB,EACpB,SAAkB,KAAK,EACvB,SAAkB,KAAK,EACvB,OAAiC,WAAW,EAC5C,aAAoB,SAAS,EAC7B,aAA2B,IAAI,EAC/B,aAA4C,OAAO,EACnD,aAAqB,CAAC,EACtB,gBAAyB,KAAK;IAE9B,kCAAkC;IAClC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACxE,UAAU,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAa;QACzB,EAAE,EAAE,UAAU,EAAE;QAChB,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,oCAAoC;QACzD,MAAM;QACN,MAAM;QACN,IAAI;QACJ,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,aAAa;KACd,CAAC;IAEF,OAAO,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,EAAY;IAC1C,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG;IACjB,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS;IACvB,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC;QAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB;IAC9B,iBAAiB,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,kCAAkC;AAClC,OAAO,EAAE,YAAY,IAAI,GAAG,EAAE,CAAC;AAC/B,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { setContext, clearContext, getContext, registerCalculate, recalculate, plot, hline, clearPlots, getActivePlots, } from './runtime.js';
|
|
8
8
|
export { input_int, input_float, input_bool, input_string, input_source, input_timeframe, input_session, input_time, enableAutoRecalculate, disableAutoRecalculate, resetInputs, } from './inputs.js';
|
|
9
|
-
export type { OakScriptContext, ChartAdapter, InputAdapter, SeriesHandle, SeriesOptions, InputConfig, InputOptions, OhlcvData, PlotConfig, } from './types.js';
|
|
9
|
+
export type { OakScriptContext, ChartAdapter, InputAdapter, SeriesHandle, SeriesOptions, InputConfig, InputCondition, InputOptions, OhlcvData, PlotConfig, } from './types.js';
|
|
10
|
+
export { isInputActive } from './input-active.js';
|
|
10
11
|
export { LightweightChartsAdapter } from './adapters/LightweightChartsAdapter.js';
|
|
11
12
|
export type { LightweightSeriesDefinitions } from './adapters/LightweightChartsAdapter.js';
|
|
12
13
|
export { SimpleInputAdapter } from './adapters/SimpleInputAdapter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,IAAI,EACJ,KAAK,EACL,UAAU,EACV,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,GACZ,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,SAAS,EACP,UAAU,GACb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,IAAI,EACJ,KAAK,EACL,UAAU,EACV,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,GACZ,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACZ,SAAS,EACP,UAAU,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,YAAY,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
export { setContext, clearContext, getContext, registerCalculate, recalculate, plot, hline, clearPlots, getActivePlots, } from './runtime.js';
|
|
9
9
|
// Input function exports
|
|
10
10
|
export { input_int, input_float, input_bool, input_string, input_source, input_timeframe, input_session, input_time, enableAutoRecalculate, disableAutoRecalculate, resetInputs, } from './inputs.js';
|
|
11
|
+
export { isInputActive } from './input-active.js';
|
|
11
12
|
// Adapter exports
|
|
12
13
|
export { LightweightChartsAdapter } from './adapters/LightweightChartsAdapter.js';
|
|
13
14
|
export { SimpleInputAdapter } from './adapters/SimpleInputAdapter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uBAAuB;AACvB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,IAAI,EACJ,KAAK,EACL,UAAU,EACV,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,yBAAyB;AACzB,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,GACZ,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uBAAuB;AACvB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,IAAI,EACJ,KAAK,EACL,UAAU,EACV,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,yBAAyB;AACzB,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,GACZ,MAAM,aAAa,CAAC;AAgBrB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,kBAAkB;AAClB,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview PineScript `active` of an input: whether the settings dialog lets the user edit it
|
|
3
|
+
* @module runtime/input-active
|
|
4
|
+
*/
|
|
5
|
+
import type { InputConfig } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Whether an input is active (PineScript `active`): an inactive input is shown greyed out in the settings and
|
|
8
|
+
* cannot be edited. It still gives its value to the script.
|
|
9
|
+
*
|
|
10
|
+
* @param config - The input
|
|
11
|
+
* @param inputs - Current input values by id
|
|
12
|
+
* @param configs - All the inputs of the indicator: gives the default of an input that has no value in `inputs`
|
|
13
|
+
* @returns true when `config.active` is not set, is true, or is a condition that holds
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const configs: InputConfig[] = [
|
|
18
|
+
* { id: 'showMa1', type: 'bool', defval: true, title: 'MA #1' },
|
|
19
|
+
* { id: 'ma1Length', type: 'int', defval: 20, active: 'showMa1' },
|
|
20
|
+
* { id: 'bbMult', type: 'float', defval: 2, active: { input: 'maType', eq: 'SMA + Bollinger Bands' } },
|
|
21
|
+
* ];
|
|
22
|
+
* isInputActive(configs[1], { showMa1: false }) // false
|
|
23
|
+
* isInputActive(configs[1], {}, configs) // true: the default of showMa1
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function isInputActive(config: InputConfig, inputs?: Record<string, unknown>, configs?: readonly InputConfig[]): boolean;
|
|
27
|
+
//# sourceMappingURL=input-active.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-active.d.ts","sourceRoot":"","sources":["../../../src/runtime/input-active.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAC;AAmB9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAKlI"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview PineScript `active` of an input: whether the settings dialog lets the user edit it
|
|
3
|
+
* @module runtime/input-active
|
|
4
|
+
*/
|
|
5
|
+
/** Current value of an input: the host value, else the default of its config. */
|
|
6
|
+
function inputValue(id, inputs, configs) {
|
|
7
|
+
const value = inputs[id];
|
|
8
|
+
if (value !== undefined)
|
|
9
|
+
return value;
|
|
10
|
+
return configs?.find((c) => c.id === id)?.defval;
|
|
11
|
+
}
|
|
12
|
+
function holds(condition, inputs, configs) {
|
|
13
|
+
if (typeof condition === 'string')
|
|
14
|
+
return inputValue(condition, inputs, configs) === true;
|
|
15
|
+
if ('not' in condition)
|
|
16
|
+
return !holds(condition.not, inputs, configs);
|
|
17
|
+
if ('any' in condition)
|
|
18
|
+
return condition.any.some((c) => holds(c, inputs, configs));
|
|
19
|
+
if ('all' in condition)
|
|
20
|
+
return condition.all.every((c) => holds(c, inputs, configs));
|
|
21
|
+
const value = inputValue(condition.input, inputs, configs);
|
|
22
|
+
if (!('eq' in condition) && !('ne' in condition))
|
|
23
|
+
return value === true;
|
|
24
|
+
return (!('eq' in condition) || value === condition.eq) && (!('ne' in condition) || value !== condition.ne);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Whether an input is active (PineScript `active`): an inactive input is shown greyed out in the settings and
|
|
28
|
+
* cannot be edited. It still gives its value to the script.
|
|
29
|
+
*
|
|
30
|
+
* @param config - The input
|
|
31
|
+
* @param inputs - Current input values by id
|
|
32
|
+
* @param configs - All the inputs of the indicator: gives the default of an input that has no value in `inputs`
|
|
33
|
+
* @returns true when `config.active` is not set, is true, or is a condition that holds
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const configs: InputConfig[] = [
|
|
38
|
+
* { id: 'showMa1', type: 'bool', defval: true, title: 'MA #1' },
|
|
39
|
+
* { id: 'ma1Length', type: 'int', defval: 20, active: 'showMa1' },
|
|
40
|
+
* { id: 'bbMult', type: 'float', defval: 2, active: { input: 'maType', eq: 'SMA + Bollinger Bands' } },
|
|
41
|
+
* ];
|
|
42
|
+
* isInputActive(configs[1], { showMa1: false }) // false
|
|
43
|
+
* isInputActive(configs[1], {}, configs) // true: the default of showMa1
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export function isInputActive(config, inputs = {}, configs) {
|
|
47
|
+
const { active } = config;
|
|
48
|
+
if (active === undefined)
|
|
49
|
+
return true;
|
|
50
|
+
if (typeof active === 'boolean')
|
|
51
|
+
return active;
|
|
52
|
+
return holds(active, inputs, configs);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=input-active.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-active.js","sourceRoot":"","sources":["../../../src/runtime/input-active.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,iFAAiF;AACjF,SAAS,UAAU,CAAC,EAAU,EAAE,MAA+B,EAAE,OAAgC;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC;AACnD,CAAC;AAED,SAAS,KAAK,CAAC,SAAyB,EAAE,MAA+B,EAAE,OAAgC;IACzG,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC1F,IAAI,KAAK,IAAI,SAAS;QAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,KAAK,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpF,IAAI,KAAK,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC;QAAE,OAAO,KAAK,KAAK,IAAI,CAAC;IACxE,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC;AAC9G,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAAC,MAAmB,EAAE,SAAkC,EAAE,EAAE,OAAgC;IACvH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,OAAO,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC/C,OAAO,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
|