oakscriptjs 0.10.0 → 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 (61) hide show
  1. package/dist/cjs/index.d.ts +3 -2
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +3 -1
  4. package/dist/cjs/index.js.map +2 -2
  5. package/dist/cjs/runtime/index.d.ts +2 -1
  6. package/dist/cjs/runtime/index.d.ts.map +1 -1
  7. package/dist/cjs/runtime/index.js +2 -0
  8. package/dist/cjs/runtime/index.js.map +2 -2
  9. package/dist/cjs/runtime/input-active.d.ts +27 -0
  10. package/dist/cjs/runtime/input-active.d.ts.map +1 -0
  11. package/dist/cjs/runtime/input-active.js +44 -0
  12. package/dist/cjs/runtime/input-active.js.map +7 -0
  13. package/dist/cjs/runtime/types.d.ts +29 -2
  14. package/dist/cjs/runtime/types.d.ts.map +1 -1
  15. package/dist/cjs/runtime/types.js.map +1 -1
  16. package/dist/cjs/script/index.d.ts +24 -5
  17. package/dist/cjs/script/index.d.ts.map +1 -1
  18. package/dist/cjs/script/index.js +22 -2
  19. package/dist/cjs/script/index.js.map +2 -2
  20. package/dist/cjs/str/index.d.ts +9 -3
  21. package/dist/cjs/str/index.d.ts.map +1 -1
  22. package/dist/cjs/str/index.js +11 -6
  23. package/dist/cjs/str/index.js.map +2 -2
  24. package/dist/cjs/str/numberformat.d.ts +6 -0
  25. package/dist/cjs/str/numberformat.d.ts.map +1 -1
  26. package/dist/cjs/str/numberformat.js +9 -1
  27. package/dist/cjs/str/numberformat.js.map +2 -2
  28. package/dist/esm/index.d.ts +3 -2
  29. package/dist/esm/index.d.ts.map +1 -1
  30. package/dist/esm/index.js +2 -1
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/runtime/index.d.ts +2 -1
  33. package/dist/esm/runtime/index.d.ts.map +1 -1
  34. package/dist/esm/runtime/index.js +1 -0
  35. package/dist/esm/runtime/index.js.map +1 -1
  36. package/dist/esm/runtime/input-active.d.ts +27 -0
  37. package/dist/esm/runtime/input-active.d.ts.map +1 -0
  38. package/dist/esm/runtime/input-active.js +54 -0
  39. package/dist/esm/runtime/input-active.js.map +1 -0
  40. package/dist/esm/runtime/types.d.ts +29 -2
  41. package/dist/esm/runtime/types.d.ts.map +1 -1
  42. package/dist/esm/script/index.d.ts +24 -5
  43. package/dist/esm/script/index.d.ts.map +1 -1
  44. package/dist/esm/script/index.js +27 -3
  45. package/dist/esm/script/index.js.map +1 -1
  46. package/dist/esm/str/index.d.ts +9 -3
  47. package/dist/esm/str/index.d.ts.map +1 -1
  48. package/dist/esm/str/index.js +25 -10
  49. package/dist/esm/str/index.js.map +1 -1
  50. package/dist/esm/str/numberformat.d.ts +6 -0
  51. package/dist/esm/str/numberformat.d.ts.map +1 -1
  52. package/dist/esm/str/numberformat.js +12 -0
  53. package/dist/esm/str/numberformat.js.map +1 -1
  54. package/package.json +1 -1
  55. package/src/index.ts +3 -1
  56. package/src/runtime/index.ts +3 -0
  57. package/src/runtime/input-active.ts +50 -0
  58. package/src/runtime/types.ts +25 -2
  59. package/src/script/index.ts +47 -6
  60. package/src/str/index.ts +23 -10
  61. package/src/str/numberformat.ts +13 -0
@@ -56,6 +56,7 @@ __export(script_exports, {
56
56
  inSession: () => inSession,
57
57
  indicator: () => indicator,
58
58
  input: () => input,
59
+ isInputActive: () => import_input_active.isInputActive,
59
60
  label: () => label,
60
61
  line: () => line,
61
62
  linefill: () => linefill,
@@ -116,6 +117,7 @@ var timeframeCore = __toESM(require("../timeframe/index.js"), 1);
116
117
  var timeCore = __toESM(require("../time/index.js"), 1);
117
118
  var strCore = __toESM(require("../str/index.js"), 1);
118
119
  var import_messageformat = require("../str/messageformat.js");
120
+ var import_numberformat = require("../str/numberformat.js");
119
121
  var import_calendar = require("../session/calendar.js");
120
122
  var import_bars = require("../session/bars.js");
121
123
  var import_resample = require("../security/resample.js");
@@ -124,6 +126,7 @@ var import_strategy = require("../strategy/index.js");
124
126
  var import_session = require("../time/session.js");
125
127
  var import_strategy2 = require("../strategy/index.js");
126
128
  var compare = __toESM(require("../compare/index.js"), 1);
129
+ var import_input_active = require("../runtime/input-active.js");
127
130
  const ctxBars = new import_series.BarData([]);
128
131
  let ctx = null;
129
132
  function collector() {
@@ -244,6 +247,7 @@ function common(opts) {
244
247
  if (opts.tooltip !== void 0) out.tooltip = opts.tooltip;
245
248
  if (opts.confirm !== void 0) out.confirm = opts.confirm;
246
249
  if (opts.display !== void 0) out.display = opts.display;
250
+ if (opts.active !== void 0) out.active = opts.active;
247
251
  return out;
248
252
  }
249
253
  function registerInput(config, fallbackId) {
@@ -977,14 +981,30 @@ function symbolProperty(key) {
977
981
  collector();
978
982
  const value = chartCtx[key];
979
983
  if (value === void 0) {
984
+ if (key === "mintick" && chartCtx.minmove !== void 0 && chartCtx.pricescale !== void 0) {
985
+ return chartCtx.minmove / chartCtx.pricescale;
986
+ }
980
987
  throw new Error(`syminfo.${key} is not known: pass it as executeScript(body, bars, inputs, { ${key} }).`);
981
988
  }
982
989
  return value;
983
990
  }
991
+ function symbolScale() {
992
+ collector();
993
+ const { minmove, pricescale } = chartCtx;
994
+ if (minmove !== void 0 && pricescale !== void 0) return [minmove, pricescale];
995
+ const [move, scale] = (0, import_numberformat.tickScale)(symbolProperty("mintick"), pricescale);
996
+ return [minmove ?? move, scale];
997
+ }
984
998
  const syminfo = {
985
999
  get mintick() {
986
1000
  return symbolProperty("mintick");
987
1001
  },
1002
+ get minmove() {
1003
+ return symbolScale()[0];
1004
+ },
1005
+ get pricescale() {
1006
+ return symbolScale()[1];
1007
+ },
988
1008
  get pointvalue() {
989
1009
  return symbolProperty("pointvalue");
990
1010
  },
@@ -1034,8 +1054,8 @@ function inSession(time2, session2, timezone) {
1034
1054
  }
1035
1055
  const str = {
1036
1056
  ...strCore,
1037
- // format.mintick rounds to the chart symbol's tick (syminfo.mintick)
1038
- tostring: ((value, format, mintick) => strCore.tostring(value, format, format === "mintick" ? mintick ?? syminfo.mintick : mintick)),
1057
+ // format.mintick uses the chart symbol's tick and price scale (syminfo.mintick, syminfo.pricescale)
1058
+ tostring: ((value, format, mintick, pricescale) => format === "mintick" && mintick === void 0 ? strCore.tostring(value, format, syminfo.mintick, pricescale ?? syminfo.pricescale) : strCore.tostring(value, format, mintick, pricescale)),
1039
1059
  format_time(time2, format = "yyyy-MM-dd'T'HH:mm:ssZ", timezone) {
1040
1060
  return strCore.format_time(time2, format, timezone ?? exchangeTimezone());
1041
1061
  },