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.
Files changed (140) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/array/index.d.ts +9 -23
  3. package/dist/cjs/array/index.d.ts.map +1 -1
  4. package/dist/cjs/array/index.js +4 -0
  5. package/dist/cjs/array/index.js.map +2 -2
  6. package/dist/cjs/drawing/bar-time.d.ts +24 -0
  7. package/dist/cjs/drawing/bar-time.d.ts.map +1 -0
  8. package/dist/cjs/drawing/bar-time.js +47 -0
  9. package/dist/cjs/drawing/bar-time.js.map +7 -0
  10. package/dist/cjs/drawing/output.d.ts +32 -0
  11. package/dist/cjs/drawing/output.d.ts.map +1 -0
  12. package/dist/cjs/drawing/output.js +184 -0
  13. package/dist/cjs/drawing/output.js.map +7 -0
  14. package/dist/cjs/drawing/registry.d.ts +5 -4
  15. package/dist/cjs/drawing/registry.d.ts.map +1 -1
  16. package/dist/cjs/drawing/registry.js +11 -2
  17. package/dist/cjs/drawing/registry.js.map +2 -2
  18. package/dist/cjs/index.d.ts +7 -3
  19. package/dist/cjs/index.d.ts.map +1 -1
  20. package/dist/cjs/index.js +11 -2
  21. package/dist/cjs/index.js.map +2 -2
  22. package/dist/cjs/polyline/index.d.ts +3 -5
  23. package/dist/cjs/polyline/index.d.ts.map +1 -1
  24. package/dist/cjs/polyline/index.js +0 -5
  25. package/dist/cjs/polyline/index.js.map +2 -2
  26. package/dist/cjs/runtime/index.d.ts +2 -1
  27. package/dist/cjs/runtime/index.d.ts.map +1 -1
  28. package/dist/cjs/runtime/index.js +2 -0
  29. package/dist/cjs/runtime/index.js.map +2 -2
  30. package/dist/cjs/runtime/input-active.d.ts +27 -0
  31. package/dist/cjs/runtime/input-active.d.ts.map +1 -0
  32. package/dist/cjs/runtime/input-active.js +44 -0
  33. package/dist/cjs/runtime/input-active.js.map +7 -0
  34. package/dist/cjs/runtime/types.d.ts +51 -2
  35. package/dist/cjs/runtime/types.d.ts.map +1 -1
  36. package/dist/cjs/runtime/types.js.map +1 -1
  37. package/dist/cjs/script/index.d.ts +104 -8
  38. package/dist/cjs/script/index.d.ts.map +1 -1
  39. package/dist/cjs/script/index.js +163 -28
  40. package/dist/cjs/script/index.js.map +3 -3
  41. package/dist/cjs/str/index.d.ts +9 -3
  42. package/dist/cjs/str/index.d.ts.map +1 -1
  43. package/dist/cjs/str/index.js +11 -6
  44. package/dist/cjs/str/index.js.map +2 -2
  45. package/dist/cjs/str/numberformat.d.ts +6 -0
  46. package/dist/cjs/str/numberformat.d.ts.map +1 -1
  47. package/dist/cjs/str/numberformat.js +9 -1
  48. package/dist/cjs/str/numberformat.js.map +2 -2
  49. package/dist/cjs/table/index.d.ts +87 -0
  50. package/dist/cjs/table/index.d.ts.map +1 -0
  51. package/dist/cjs/table/index.js +150 -0
  52. package/dist/cjs/table/index.js.map +7 -0
  53. package/dist/cjs/text/index.d.ts +17 -2
  54. package/dist/cjs/text/index.d.ts.map +1 -1
  55. package/dist/cjs/text/index.js +15 -1
  56. package/dist/cjs/text/index.js.map +2 -2
  57. package/dist/cjs/types/index.d.ts +30 -1
  58. package/dist/cjs/types/index.d.ts.map +1 -1
  59. package/dist/cjs/types/index.js +12 -0
  60. package/dist/cjs/types/index.js.map +2 -2
  61. package/dist/cjs/types/metadata.d.ts +258 -26
  62. package/dist/cjs/types/metadata.d.ts.map +1 -1
  63. package/dist/cjs/types/metadata.js.map +1 -1
  64. package/dist/esm/array/index.d.ts +9 -23
  65. package/dist/esm/array/index.d.ts.map +1 -1
  66. package/dist/esm/array/index.js +10 -22
  67. package/dist/esm/array/index.js.map +1 -1
  68. package/dist/esm/drawing/bar-time.d.ts +24 -0
  69. package/dist/esm/drawing/bar-time.d.ts.map +1 -0
  70. package/dist/esm/drawing/bar-time.js +44 -0
  71. package/dist/esm/drawing/bar-time.js.map +1 -0
  72. package/dist/esm/drawing/output.d.ts +32 -0
  73. package/dist/esm/drawing/output.d.ts.map +1 -0
  74. package/dist/esm/drawing/output.js +190 -0
  75. package/dist/esm/drawing/output.js.map +1 -0
  76. package/dist/esm/drawing/registry.d.ts +5 -4
  77. package/dist/esm/drawing/registry.d.ts.map +1 -1
  78. package/dist/esm/drawing/registry.js +12 -2
  79. package/dist/esm/drawing/registry.js.map +1 -1
  80. package/dist/esm/index.d.ts +7 -3
  81. package/dist/esm/index.d.ts.map +1 -1
  82. package/dist/esm/index.js +8 -3
  83. package/dist/esm/index.js.map +1 -1
  84. package/dist/esm/polyline/index.d.ts +3 -5
  85. package/dist/esm/polyline/index.d.ts.map +1 -1
  86. package/dist/esm/polyline/index.js +3 -9
  87. package/dist/esm/polyline/index.js.map +1 -1
  88. package/dist/esm/runtime/index.d.ts +2 -1
  89. package/dist/esm/runtime/index.d.ts.map +1 -1
  90. package/dist/esm/runtime/index.js +1 -0
  91. package/dist/esm/runtime/index.js.map +1 -1
  92. package/dist/esm/runtime/input-active.d.ts +27 -0
  93. package/dist/esm/runtime/input-active.d.ts.map +1 -0
  94. package/dist/esm/runtime/input-active.js +54 -0
  95. package/dist/esm/runtime/input-active.js.map +1 -0
  96. package/dist/esm/runtime/types.d.ts +51 -2
  97. package/dist/esm/runtime/types.d.ts.map +1 -1
  98. package/dist/esm/script/index.d.ts +104 -8
  99. package/dist/esm/script/index.d.ts.map +1 -1
  100. package/dist/esm/script/index.js +194 -24
  101. package/dist/esm/script/index.js.map +1 -1
  102. package/dist/esm/str/index.d.ts +9 -3
  103. package/dist/esm/str/index.d.ts.map +1 -1
  104. package/dist/esm/str/index.js +25 -10
  105. package/dist/esm/str/index.js.map +1 -1
  106. package/dist/esm/str/numberformat.d.ts +6 -0
  107. package/dist/esm/str/numberformat.d.ts.map +1 -1
  108. package/dist/esm/str/numberformat.js +12 -0
  109. package/dist/esm/str/numberformat.js.map +1 -1
  110. package/dist/esm/table/index.d.ts +87 -0
  111. package/dist/esm/table/index.d.ts.map +1 -0
  112. package/dist/esm/table/index.js +169 -0
  113. package/dist/esm/table/index.js.map +1 -0
  114. package/dist/esm/text/index.d.ts +17 -2
  115. package/dist/esm/text/index.d.ts.map +1 -1
  116. package/dist/esm/text/index.js +17 -2
  117. package/dist/esm/text/index.js.map +1 -1
  118. package/dist/esm/types/index.d.ts +30 -1
  119. package/dist/esm/types/index.d.ts.map +1 -1
  120. package/dist/esm/types/index.js +14 -0
  121. package/dist/esm/types/index.js.map +1 -1
  122. package/dist/esm/types/metadata.d.ts +258 -26
  123. package/dist/esm/types/metadata.d.ts.map +1 -1
  124. package/package.json +1 -1
  125. package/src/array/index.ts +12 -23
  126. package/src/drawing/bar-time.ts +42 -0
  127. package/src/drawing/output.ts +214 -0
  128. package/src/drawing/registry.ts +16 -6
  129. package/src/index.ts +11 -3
  130. package/src/polyline/index.ts +3 -12
  131. package/src/runtime/index.ts +3 -0
  132. package/src/runtime/input-active.ts +50 -0
  133. package/src/runtime/types.ts +48 -2
  134. package/src/script/index.ts +301 -30
  135. package/src/str/index.ts +23 -10
  136. package/src/str/numberformat.ts +13 -0
  137. package/src/table/index.ts +221 -0
  138. package/src/text/index.ts +18 -2
  139. package/src/types/index.ts +32 -1
  140. 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;AAE9E,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC;AAE7E,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;CACpB;AAED,+FAA+F;AAC/F,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAIpC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AA4BtF,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQ9F;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
+ {"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 = { line: [], label: [], box: [], polyline: [], linefill: [] };
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":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/drawing/registry.ts"],"names":[],"mappings":"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"}
@@ -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 type { OakScriptContext, ChartAdapter, InputAdapter, SeriesHandle, SeriesOptions, InputConfig, InputOptions, OhlcvData, PlotConfig, HLineConfig, FillConfig, ArrowConfig, } from './runtime/types.js';
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.9.6";
61
+ export declare const VERSION = "0.10.1";
58
62
  /**
59
63
  * Library information
60
64
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
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.9.6';
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
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. This implementation focuses on basic
8
- * polylines (straight lines) - curved polylines can be added in a future iteration.
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, NOT YET SUPPORTED)
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;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,CA4BV;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"}
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. This implementation focuses on basic
8
- * polylines (straight lines) - curved polylines can be added in a future iteration.
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, NOT YET SUPPORTED)
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;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,sDAAsD;IACtD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CACV,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IAED,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"}
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;AAGpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,YAAY,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,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;AAerB,kBAAkB;AAClB,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,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"}