oakscriptjs 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +31 -9
- package/dist/cjs/array/index.d.ts +701 -0
- package/dist/cjs/array/index.d.ts.map +1 -0
- package/dist/cjs/array/index.js +392 -0
- package/dist/cjs/array/index.js.map +7 -0
- package/dist/cjs/box/index.d.ts +444 -0
- package/dist/cjs/box/index.d.ts.map +1 -0
- package/dist/cjs/box/index.js +246 -0
- package/dist/cjs/box/index.js.map +7 -0
- package/dist/cjs/callsite/index.d.ts +61 -0
- package/dist/cjs/callsite/index.d.ts.map +1 -0
- package/dist/cjs/callsite/index.js +65 -0
- package/dist/cjs/callsite/index.js.map +7 -0
- package/dist/cjs/chartpoint/index.d.ts +90 -0
- package/dist/cjs/chartpoint/index.d.ts.map +1 -0
- package/dist/cjs/chartpoint/index.js +56 -0
- package/dist/cjs/chartpoint/index.js.map +7 -0
- package/dist/cjs/color/index.d.ts +285 -0
- package/dist/cjs/color/index.d.ts.map +1 -0
- package/dist/cjs/color/index.js +143 -0
- package/dist/cjs/color/index.js.map +7 -0
- package/dist/cjs/compare/index.d.ts +26 -0
- package/dist/cjs/compare/index.d.ts.map +1 -0
- package/dist/cjs/compare/index.js +50 -0
- package/dist/cjs/compare/index.js.map +7 -0
- package/dist/cjs/drawing/registry.d.ts +42 -0
- package/dist/cjs/drawing/registry.d.ts.map +1 -0
- package/dist/cjs/drawing/registry.js +87 -0
- package/dist/cjs/drawing/registry.js.map +7 -0
- package/dist/cjs/index.d.ts +85 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +184 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/indicator.d.ts +117 -0
- package/dist/cjs/indicator.d.ts.map +1 -0
- package/dist/cjs/indicator.js +74 -0
- package/dist/cjs/indicator.js.map +7 -0
- package/dist/cjs/input.d.ts +196 -0
- package/dist/cjs/input.d.ts.map +1 -0
- package/dist/cjs/input.js +197 -0
- package/dist/cjs/input.js.map +7 -0
- package/dist/cjs/label/index.d.ts +303 -0
- package/dist/cjs/label/index.d.ts.map +1 -0
- package/dist/cjs/label/index.js +190 -0
- package/dist/cjs/label/index.js.map +7 -0
- package/dist/cjs/lib/index.d.ts +8 -0
- package/dist/cjs/lib/index.d.ts.map +1 -0
- package/dist/cjs/lib/index.js +19 -0
- package/dist/cjs/lib/index.js.map +7 -0
- package/dist/{lib → cjs/lib}/zigzag/index.d.ts +4 -1
- package/dist/cjs/lib/zigzag/index.d.ts.map +1 -0
- package/dist/cjs/lib/zigzag/index.js +27 -0
- package/dist/cjs/lib/zigzag/index.js.map +7 -0
- package/dist/cjs/lib/zigzag/zigzag.d.ts +100 -0
- package/dist/cjs/lib/zigzag/zigzag.d.ts.map +1 -0
- package/dist/cjs/lib/zigzag/zigzag.js +207 -0
- package/dist/cjs/lib/zigzag/zigzag.js.map +7 -0
- package/dist/cjs/line/index.d.ts +342 -0
- package/dist/cjs/line/index.d.ts.map +1 -0
- package/dist/cjs/line/index.js +193 -0
- package/dist/cjs/line/index.js.map +7 -0
- package/dist/cjs/linefill/index.d.ts +124 -0
- package/dist/cjs/linefill/index.d.ts.map +1 -0
- package/dist/cjs/linefill/index.js +56 -0
- package/dist/cjs/linefill/index.js.map +7 -0
- package/dist/cjs/map/index.d.ts +69 -0
- package/dist/cjs/map/index.d.ts.map +1 -0
- package/dist/cjs/map/index.js +80 -0
- package/dist/cjs/map/index.js.map +7 -0
- package/dist/cjs/math/index.d.ts +560 -0
- package/dist/cjs/math/index.d.ts.map +1 -0
- package/dist/cjs/math/index.js +441 -0
- package/dist/cjs/math/index.js.map +7 -0
- package/dist/cjs/matrix/index.d.ts +1231 -0
- package/dist/cjs/matrix/index.d.ts.map +1 -0
- package/dist/cjs/matrix/index.js +1200 -0
- package/dist/cjs/matrix/index.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/plot.d.ts +76 -0
- package/dist/cjs/plot.d.ts.map +1 -0
- package/dist/cjs/plot.js +51 -0
- package/dist/cjs/plot.js.map +7 -0
- package/dist/cjs/polyline/index.d.ts +115 -0
- package/dist/cjs/polyline/index.d.ts.map +1 -0
- package/dist/cjs/polyline/index.js +76 -0
- package/dist/cjs/polyline/index.js.map +7 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.d.ts +86 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.d.ts.map +1 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.js +141 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.js.map +7 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.d.ts +59 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.d.ts.map +1 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.js +117 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.js.map +7 -0
- package/dist/{runtime → cjs/runtime}/index.d.ts +12 -5
- package/dist/cjs/runtime/index.d.ts.map +1 -0
- package/dist/cjs/runtime/index.js +49 -0
- package/dist/cjs/runtime/index.js.map +7 -0
- package/dist/cjs/runtime/inputs.d.ts +91 -0
- package/dist/cjs/runtime/inputs.d.ts.map +1 -0
- package/dist/cjs/runtime/inputs.js +262 -0
- package/dist/cjs/runtime/inputs.js.map +7 -0
- package/dist/cjs/runtime/runtime.d.ts +70 -0
- package/dist/cjs/runtime/runtime.d.ts.map +1 -0
- package/dist/cjs/runtime/runtime.js +148 -0
- package/dist/cjs/runtime/runtime.js.map +7 -0
- package/dist/cjs/runtime/series.d.ts +362 -0
- package/dist/cjs/runtime/series.d.ts.map +1 -0
- package/dist/cjs/runtime/series.js +560 -0
- package/dist/cjs/runtime/series.js.map +7 -0
- package/dist/cjs/runtime/types.d.ts +282 -0
- package/dist/cjs/runtime/types.d.ts.map +1 -0
- package/dist/cjs/runtime/types.js +17 -0
- package/dist/cjs/runtime/types.js.map +7 -0
- package/dist/cjs/script/index.d.ts +987 -0
- package/dist/cjs/script/index.d.ts.map +1 -0
- package/dist/cjs/script/index.js +1169 -0
- package/dist/cjs/script/index.js.map +7 -0
- package/dist/cjs/security/resample.d.ts +63 -0
- package/dist/cjs/security/resample.d.ts.map +1 -0
- package/dist/cjs/security/resample.js +84 -0
- package/dist/cjs/security/resample.js.map +7 -0
- package/dist/cjs/session/bars.d.ts +80 -0
- package/dist/cjs/session/bars.d.ts.map +1 -0
- package/dist/cjs/session/bars.js +219 -0
- package/dist/cjs/session/bars.js.map +7 -0
- package/dist/cjs/session/calendar.d.ts +70 -0
- package/dist/cjs/session/calendar.d.ts.map +1 -0
- package/dist/cjs/session/calendar.js +164 -0
- package/dist/cjs/session/calendar.js.map +7 -0
- package/dist/cjs/str/dateformat.d.ts +15 -0
- package/dist/cjs/str/dateformat.d.ts.map +1 -0
- package/dist/cjs/str/dateformat.js +149 -0
- package/dist/cjs/str/dateformat.js.map +7 -0
- package/dist/cjs/str/index.d.ts +459 -0
- package/dist/cjs/str/index.d.ts.map +1 -0
- package/dist/cjs/str/index.js +143 -0
- package/dist/cjs/str/index.js.map +7 -0
- package/dist/cjs/str/messageformat.d.ts +14 -0
- package/dist/cjs/str/messageformat.d.ts.map +1 -0
- package/dist/cjs/str/messageformat.js +114 -0
- package/dist/cjs/str/messageformat.js.map +7 -0
- package/dist/cjs/str/numberformat.d.ts +19 -0
- package/dist/cjs/str/numberformat.d.ts.map +1 -0
- package/dist/cjs/str/numberformat.js +170 -0
- package/dist/cjs/str/numberformat.js.map +7 -0
- package/dist/{strategy → cjs/strategy}/index.d.ts +50 -0
- package/dist/cjs/strategy/index.d.ts.map +1 -0
- package/dist/cjs/strategy/index.js +92 -0
- package/dist/cjs/strategy/index.js.map +7 -0
- package/dist/cjs/ta/index.d.ts +1397 -0
- package/dist/cjs/ta/index.d.ts.map +1 -0
- package/dist/cjs/ta/index.js +1715 -0
- package/dist/cjs/ta/index.js.map +7 -0
- package/dist/cjs/ta/running-sum.d.ts +30 -0
- package/dist/cjs/ta/running-sum.d.ts.map +1 -0
- package/dist/cjs/ta/running-sum.js +99 -0
- package/dist/cjs/ta/running-sum.js.map +7 -0
- package/dist/cjs/ta-series.d.ts +558 -0
- package/dist/cjs/ta-series.d.ts.map +1 -0
- package/dist/cjs/ta-series.js +606 -0
- package/dist/cjs/ta-series.js.map +7 -0
- package/dist/cjs/text/index.d.ts +14 -0
- package/dist/cjs/text/index.d.ts.map +1 -0
- package/dist/cjs/text/index.js +29 -0
- package/dist/cjs/text/index.js.map +7 -0
- package/dist/cjs/time/datestring.d.ts +23 -0
- package/dist/cjs/time/datestring.d.ts.map +1 -0
- package/dist/cjs/time/datestring.js +106 -0
- package/dist/cjs/time/datestring.js.map +7 -0
- package/dist/cjs/time/index.d.ts +89 -0
- package/dist/cjs/time/index.d.ts.map +1 -0
- package/dist/cjs/time/index.js +85 -0
- package/dist/cjs/time/index.js.map +7 -0
- package/dist/cjs/time/session.d.ts +17 -0
- package/dist/cjs/time/session.d.ts.map +1 -0
- package/dist/cjs/time/session.js +65 -0
- package/dist/cjs/time/session.js.map +7 -0
- package/dist/cjs/time/timezone.d.ts +40 -0
- package/dist/cjs/time/timezone.d.ts.map +1 -0
- package/dist/cjs/time/timezone.js +125 -0
- package/dist/cjs/time/timezone.js.map +7 -0
- package/dist/cjs/timeframe/index.d.ts +73 -0
- package/dist/cjs/timeframe/index.d.ts.map +1 -0
- package/dist/cjs/timeframe/index.js +85 -0
- package/dist/cjs/timeframe/index.js.map +7 -0
- package/dist/cjs/types/index.d.ts +343 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +32 -0
- package/dist/cjs/types/index.js.map +7 -0
- package/dist/cjs/types/metadata.d.ts +300 -0
- package/dist/cjs/types/metadata.d.ts.map +1 -0
- package/dist/cjs/types/metadata.js +17 -0
- package/dist/cjs/types/metadata.js.map +7 -0
- package/dist/cjs/utils/index.d.ts +167 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +209 -0
- package/dist/cjs/utils/index.js.map +7 -0
- package/dist/esm/array/index.d.ts +701 -0
- package/dist/esm/array/index.d.ts.map +1 -0
- package/dist/esm/array/index.js +983 -0
- package/dist/esm/array/index.js.map +1 -0
- package/dist/esm/box/index.d.ts +444 -0
- package/dist/esm/box/index.d.ts.map +1 -0
- package/dist/esm/box/index.js +602 -0
- package/dist/esm/box/index.js.map +1 -0
- package/dist/esm/callsite/index.d.ts +61 -0
- package/dist/esm/callsite/index.d.ts.map +1 -0
- package/dist/esm/callsite/index.js +97 -0
- package/dist/esm/callsite/index.js.map +1 -0
- package/dist/esm/chartpoint/index.d.ts +90 -0
- package/dist/esm/chartpoint/index.d.ts.map +1 -0
- package/dist/esm/chartpoint/index.js +113 -0
- package/dist/esm/chartpoint/index.js.map +1 -0
- package/dist/esm/color/index.d.ts +285 -0
- package/dist/esm/color/index.d.ts.map +1 -0
- package/dist/esm/color/index.js +373 -0
- package/dist/esm/color/index.js.map +1 -0
- package/dist/esm/compare/index.d.ts +26 -0
- package/dist/esm/compare/index.d.ts.map +1 -0
- package/dist/esm/compare/index.js +39 -0
- package/dist/esm/compare/index.js.map +1 -0
- package/dist/esm/drawing/registry.d.ts +42 -0
- package/dist/esm/drawing/registry.d.ts.map +1 -0
- package/dist/esm/drawing/registry.js +89 -0
- package/dist/esm/drawing/registry.js.map +1 -0
- package/dist/esm/index.d.ts +85 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +96 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/indicator.d.ts +117 -0
- package/dist/esm/indicator.d.ts.map +1 -0
- package/dist/esm/indicator.js +84 -0
- package/dist/esm/indicator.js.map +1 -0
- package/dist/esm/input.d.ts +196 -0
- package/dist/esm/input.d.ts.map +1 -0
- package/dist/esm/input.js +183 -0
- package/dist/esm/input.js.map +1 -0
- package/dist/esm/label/index.d.ts +303 -0
- package/dist/esm/label/index.d.ts.map +1 -0
- package/dist/esm/label/index.js +417 -0
- package/dist/esm/label/index.js.map +1 -0
- package/dist/esm/lib/index.d.ts +8 -0
- package/dist/esm/lib/index.d.ts.map +1 -0
- package/dist/esm/lib/index.js +8 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/lib/zigzag/index.d.ts +5 -0
- package/dist/esm/lib/zigzag/index.d.ts.map +1 -0
- package/dist/esm/lib/zigzag/index.js +5 -0
- package/dist/esm/lib/zigzag/index.js.map +1 -0
- package/dist/esm/lib/zigzag/zigzag.d.ts +100 -0
- package/dist/esm/lib/zigzag/zigzag.d.ts.map +1 -0
- package/dist/esm/lib/zigzag/zigzag.js +229 -0
- package/dist/esm/lib/zigzag/zigzag.js.map +1 -0
- package/dist/esm/line/index.d.ts +342 -0
- package/dist/esm/line/index.d.ts.map +1 -0
- package/dist/esm/line/index.js +470 -0
- package/dist/esm/line/index.js.map +1 -0
- package/dist/esm/linefill/index.d.ts +124 -0
- package/dist/esm/linefill/index.d.ts.map +1 -0
- package/dist/esm/linefill/index.js +144 -0
- package/dist/esm/linefill/index.js.map +1 -0
- package/dist/esm/map/index.d.ts +69 -0
- package/dist/esm/map/index.d.ts.map +1 -0
- package/dist/esm/map/index.js +106 -0
- package/dist/esm/map/index.js.map +1 -0
- package/dist/esm/math/index.d.ts +560 -0
- package/dist/esm/math/index.d.ts.map +1 -0
- package/dist/esm/math/index.js +495 -0
- package/dist/esm/math/index.js.map +1 -0
- package/dist/esm/matrix/index.d.ts +1231 -0
- package/dist/esm/matrix/index.d.ts.map +1 -0
- package/dist/esm/matrix/index.js +2450 -0
- package/dist/esm/matrix/index.js.map +1 -0
- package/dist/esm/plot.d.ts +76 -0
- package/dist/esm/plot.d.ts.map +1 -0
- package/dist/esm/plot.js +63 -0
- package/dist/esm/plot.js.map +1 -0
- package/dist/esm/polyline/index.d.ts +115 -0
- package/dist/esm/polyline/index.d.ts.map +1 -0
- package/dist/esm/polyline/index.js +157 -0
- package/dist/esm/polyline/index.js.map +1 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.d.ts +86 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.d.ts.map +1 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.js +140 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.js.map +1 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.d.ts +59 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.d.ts.map +1 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.js +115 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.js.map +1 -0
- package/dist/esm/runtime/index.d.ts +13 -0
- package/dist/esm/runtime/index.d.ts.map +1 -0
- package/dist/esm/runtime/index.js +14 -0
- package/dist/esm/runtime/index.js.map +1 -0
- package/dist/esm/runtime/inputs.d.ts +91 -0
- package/dist/esm/runtime/inputs.d.ts.map +1 -0
- package/dist/esm/runtime/inputs.js +334 -0
- package/dist/esm/runtime/inputs.js.map +1 -0
- package/dist/esm/runtime/runtime.d.ts +70 -0
- package/dist/esm/runtime/runtime.d.ts.map +1 -0
- package/dist/esm/runtime/runtime.js +193 -0
- package/dist/esm/runtime/runtime.js.map +1 -0
- package/dist/esm/runtime/series.d.ts +362 -0
- package/dist/esm/runtime/series.d.ts.map +1 -0
- package/dist/esm/runtime/series.js +583 -0
- package/dist/esm/runtime/series.js.map +1 -0
- package/dist/esm/runtime/types.d.ts +282 -0
- package/dist/esm/runtime/types.d.ts.map +1 -0
- package/dist/esm/runtime/types.js +7 -0
- package/dist/esm/runtime/types.js.map +1 -0
- package/dist/esm/script/index.d.ts +987 -0
- package/dist/esm/script/index.d.ts.map +1 -0
- package/dist/esm/script/index.js +1289 -0
- package/dist/esm/script/index.js.map +1 -0
- package/dist/esm/security/resample.d.ts +63 -0
- package/dist/esm/security/resample.d.ts.map +1 -0
- package/dist/esm/security/resample.js +110 -0
- package/dist/esm/security/resample.js.map +1 -0
- package/dist/esm/session/bars.d.ts +80 -0
- package/dist/esm/session/bars.d.ts.map +1 -0
- package/dist/esm/session/bars.js +232 -0
- package/dist/esm/session/bars.js.map +1 -0
- package/dist/esm/session/calendar.d.ts +70 -0
- package/dist/esm/session/calendar.d.ts.map +1 -0
- package/dist/esm/session/calendar.js +172 -0
- package/dist/esm/session/calendar.js.map +1 -0
- package/dist/esm/str/dateformat.d.ts +15 -0
- package/dist/esm/str/dateformat.d.ts.map +1 -0
- package/dist/esm/str/dateformat.js +136 -0
- package/dist/esm/str/dateformat.js.map +1 -0
- package/dist/esm/str/index.d.ts +459 -0
- package/dist/esm/str/index.d.ts.map +1 -0
- package/dist/esm/str/index.js +540 -0
- package/dist/esm/str/index.js.map +1 -0
- package/dist/esm/str/messageformat.d.ts +14 -0
- package/dist/esm/str/messageformat.d.ts.map +1 -0
- package/dist/esm/str/messageformat.js +111 -0
- package/dist/esm/str/messageformat.js.map +1 -0
- package/dist/esm/str/numberformat.d.ts +19 -0
- package/dist/esm/str/numberformat.d.ts.map +1 -0
- package/dist/esm/str/numberformat.js +189 -0
- package/dist/esm/str/numberformat.js.map +1 -0
- package/dist/esm/strategy/index.d.ts +245 -0
- package/dist/esm/strategy/index.d.ts.map +1 -0
- package/dist/esm/strategy/index.js +84 -0
- package/dist/esm/strategy/index.js.map +1 -0
- package/dist/esm/ta/index.d.ts +1397 -0
- package/dist/esm/ta/index.d.ts.map +1 -0
- package/dist/esm/ta/index.js +3227 -0
- package/dist/esm/ta/index.js.map +1 -0
- package/dist/esm/ta/running-sum.d.ts +30 -0
- package/dist/esm/ta/running-sum.d.ts.map +1 -0
- package/dist/esm/ta/running-sum.js +113 -0
- package/dist/esm/ta/running-sum.js.map +1 -0
- package/dist/esm/ta-series.d.ts +558 -0
- package/dist/esm/ta-series.d.ts.map +1 -0
- package/dist/esm/ta-series.js +910 -0
- package/dist/esm/ta-series.js.map +1 -0
- package/dist/esm/text/index.d.ts +14 -0
- package/dist/esm/text/index.d.ts.map +1 -0
- package/dist/esm/text/index.js +14 -0
- package/dist/esm/text/index.js.map +1 -0
- package/dist/esm/time/datestring.d.ts +23 -0
- package/dist/esm/time/datestring.d.ts.map +1 -0
- package/dist/esm/time/datestring.js +94 -0
- package/dist/esm/time/datestring.js.map +1 -0
- package/dist/esm/time/index.d.ts +89 -0
- package/dist/esm/time/index.d.ts.map +1 -0
- package/dist/esm/time/index.js +108 -0
- package/dist/esm/time/index.js.map +1 -0
- package/dist/esm/time/session.d.ts +17 -0
- package/dist/esm/time/session.d.ts.map +1 -0
- package/dist/esm/time/session.js +69 -0
- package/dist/esm/time/session.js.map +1 -0
- package/dist/esm/time/timezone.d.ts +40 -0
- package/dist/esm/time/timezone.d.ts.map +1 -0
- package/dist/esm/time/timezone.js +144 -0
- package/dist/esm/time/timezone.js.map +1 -0
- package/dist/esm/timeframe/index.d.ts +73 -0
- package/dist/esm/timeframe/index.d.ts.map +1 -0
- package/dist/esm/timeframe/index.js +131 -0
- package/dist/esm/timeframe/index.js.map +1 -0
- package/dist/esm/types/index.d.ts +343 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +17 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/metadata.d.ts +300 -0
- package/dist/esm/types/metadata.d.ts.map +1 -0
- package/dist/esm/types/metadata.js +7 -0
- package/dist/esm/types/metadata.js.map +1 -0
- package/dist/esm/utils/index.d.ts +167 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +295 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/package.json +53 -23
- package/src/array/index.ts +1056 -0
- package/src/box/index.ts +680 -0
- package/src/callsite/index.ts +104 -0
- package/src/chartpoint/index.ts +126 -0
- package/src/color/index.ts +411 -0
- package/src/compare/index.ts +46 -0
- package/src/drawing/registry.ts +106 -0
- package/src/index.ts +201 -0
- package/src/indicator.ts +185 -0
- package/src/input.ts +280 -0
- package/src/label/index.ts +490 -0
- package/src/lib/index.ts +8 -0
- package/src/lib/zigzag/index.ts +13 -0
- package/src/lib/zigzag/zigzag.ts +318 -0
- package/src/line/index.ts +530 -0
- package/src/linefill/index.ts +152 -0
- package/src/map/index.ts +115 -0
- package/src/math/index.ts +1071 -0
- package/src/matrix/index.ts +2697 -0
- package/src/plot.ts +121 -0
- package/src/polyline/index.ts +184 -0
- package/src/runtime/adapters/LightweightChartsAdapter.ts +201 -0
- package/src/runtime/adapters/SimpleInputAdapter.ts +132 -0
- package/src/runtime/index.ts +52 -0
- package/src/runtime/inputs.ts +377 -0
- package/src/runtime/runtime.ts +241 -0
- package/src/runtime/series.ts +644 -0
- package/src/runtime/types.ts +292 -0
- package/src/script/index.ts +1865 -0
- package/src/security/resample.ts +119 -0
- package/src/session/bars.ts +262 -0
- package/src/session/calendar.ts +199 -0
- package/src/str/dateformat.ts +104 -0
- package/src/str/index.ts +557 -0
- package/src/str/messageformat.ts +109 -0
- package/src/str/numberformat.ts +197 -0
- package/src/strategy/index.ts +281 -0
- package/src/ta/index.ts +3580 -0
- package/src/ta/running-sum.ts +117 -0
- package/src/ta-series.ts +1036 -0
- package/src/text/index.ts +14 -0
- package/src/time/datestring.ts +96 -0
- package/src/time/index.ts +161 -0
- package/src/time/session.ts +79 -0
- package/src/time/timezone.ts +180 -0
- package/src/timeframe/index.ts +144 -0
- package/src/types/index.ts +398 -0
- package/src/types/metadata.ts +334 -0
- package/src/utils/index.ts +334 -0
- package/dist/array/index.d.ts +0 -57
- package/dist/array/index.d.ts.map +0 -1
- package/dist/box/index.d.ts +0 -37
- package/dist/box/index.d.ts.map +0 -1
- package/dist/callsite/index.d.ts +0 -7
- package/dist/callsite/index.d.ts.map +0 -1
- package/dist/chartpoint/index.d.ts +0 -8
- package/dist/chartpoint/index.d.ts.map +0 -1
- package/dist/color/index.d.ts +0 -28
- package/dist/color/index.d.ts.map +0 -1
- package/dist/compare/index.d.ts +0 -8
- package/dist/compare/index.d.ts.map +0 -1
- package/dist/drawing/registry.d.ts +0 -19
- package/dist/drawing/registry.d.ts.map +0 -1
- package/dist/index.cjs +0 -7979
- package/dist/index.d.ts +0 -64
- package/dist/index.d.ts.map +0 -1
- package/dist/index.mjs +0 -7962
- package/dist/indicator.d.ts +0 -42
- package/dist/indicator.d.ts.map +0 -1
- package/dist/input.d.ts +0 -47
- package/dist/input.d.ts.map +0 -1
- package/dist/label/index.d.ts +0 -30
- package/dist/label/index.d.ts.map +0 -1
- package/dist/lib/index.d.ts +0 -2
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/zigzag/index.d.ts.map +0 -1
- package/dist/lib/zigzag/zigzag.d.ts +0 -47
- package/dist/lib/zigzag/zigzag.d.ts.map +0 -1
- package/dist/line/index.d.ts +0 -30
- package/dist/line/index.d.ts.map +0 -1
- package/dist/linefill/index.d.ts +0 -10
- package/dist/linefill/index.d.ts.map +0 -1
- package/dist/map/index.d.ts +0 -14
- package/dist/map/index.d.ts.map +0 -1
- package/dist/math/index.d.ts +0 -53
- package/dist/math/index.d.ts.map +0 -1
- package/dist/matrix/index.d.ts +0 -52
- package/dist/matrix/index.d.ts.map +0 -1
- package/dist/plot.d.ts +0 -20
- package/dist/plot.d.ts.map +0 -1
- package/dist/polyline/index.d.ts +0 -11
- package/dist/polyline/index.d.ts.map +0 -1
- package/dist/runtime/adapters/LightweightChartsAdapter.d.ts +0 -15
- package/dist/runtime/adapters/LightweightChartsAdapter.d.ts.map +0 -1
- package/dist/runtime/adapters/SimpleInputAdapter.d.ts +0 -16
- package/dist/runtime/adapters/SimpleInputAdapter.d.ts.map +0 -1
- package/dist/runtime/index.cjs +0 -600
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.mjs +0 -577
- package/dist/runtime/inputs.d.ts +0 -13
- package/dist/runtime/inputs.d.ts.map +0 -1
- package/dist/runtime/runtime.d.ts +0 -16
- package/dist/runtime/runtime.d.ts.map +0 -1
- package/dist/runtime/series.d.ts +0 -60
- package/dist/runtime/series.d.ts.map +0 -1
- package/dist/runtime/types.d.ts +0 -122
- package/dist/runtime/types.d.ts.map +0 -1
- package/dist/script/index.cjs +0 -6372
- package/dist/script/index.d.ts +0 -709
- package/dist/script/index.d.ts.map +0 -1
- package/dist/script/index.mjs +0 -6355
- package/dist/security/resample.d.ts +0 -13
- package/dist/security/resample.d.ts.map +0 -1
- package/dist/session/bars.d.ts +0 -34
- package/dist/session/bars.d.ts.map +0 -1
- package/dist/session/calendar.d.ts +0 -31
- package/dist/session/calendar.d.ts.map +0 -1
- package/dist/str/dateformat.d.ts +0 -2
- package/dist/str/dateformat.d.ts.map +0 -1
- package/dist/str/index.d.ts +0 -24
- package/dist/str/index.d.ts.map +0 -1
- package/dist/str/messageformat.d.ts +0 -2
- package/dist/str/messageformat.d.ts.map +0 -1
- package/dist/str/numberformat.d.ts +0 -3
- package/dist/str/numberformat.d.ts.map +0 -1
- package/dist/strategy/index.d.ts.map +0 -1
- package/dist/ta/index.d.ts +0 -72
- package/dist/ta/index.d.ts.map +0 -1
- package/dist/ta-series.d.ts +0 -143
- package/dist/ta-series.d.ts.map +0 -1
- package/dist/text/index.d.ts +0 -4
- package/dist/text/index.d.ts.map +0 -1
- package/dist/time/datestring.d.ts +0 -2
- package/dist/time/datestring.d.ts.map +0 -1
- package/dist/time/index.d.ts +0 -15
- package/dist/time/index.d.ts.map +0 -1
- package/dist/time/session.d.ts +0 -2
- package/dist/time/session.d.ts.map +0 -1
- package/dist/time/timezone.d.ts +0 -13
- package/dist/time/timezone.d.ts.map +0 -1
- package/dist/timeframe/index.d.ts +0 -17
- package/dist/timeframe/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -181
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/metadata.d.ts +0 -131
- package/dist/types/metadata.d.ts.map +0 -1
- package/dist/utils/index.d.ts +0 -26
- package/dist/utils/index.d.ts.map +0 -1
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Label namespace
|
|
3
|
+
* Functions for creating and manipulating label drawing objects.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Labels are primarily used for annotations and marking points on the chart.
|
|
7
|
+
* They have limited computational value compared to lines and boxes, but getters
|
|
8
|
+
* allow retrieving position and text for conditional logic.
|
|
9
|
+
*
|
|
10
|
+
* @version 6
|
|
11
|
+
*/
|
|
12
|
+
import { all as allDrawings, isDeleted, register, remove } from '../drawing/registry.js';
|
|
13
|
+
export function new_label(...args) {
|
|
14
|
+
let x, y, rest;
|
|
15
|
+
if (typeof args[0] === 'object' && args[0] !== null) {
|
|
16
|
+
const point = args[0];
|
|
17
|
+
rest = args.slice(1);
|
|
18
|
+
x = pointX(point, rest[1] ?? 'bar_index');
|
|
19
|
+
y = point.price;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
[x, y] = args;
|
|
23
|
+
rest = args.slice(2);
|
|
24
|
+
}
|
|
25
|
+
const [text, xloc, yloc, labelColor, style, textcolor, size, textalign, tooltip, text_font_family, force_overlay, text_formatting] = rest;
|
|
26
|
+
return register('label', {
|
|
27
|
+
x,
|
|
28
|
+
y,
|
|
29
|
+
xloc: xloc ?? 'bar_index',
|
|
30
|
+
yloc: yloc ?? 'price',
|
|
31
|
+
text,
|
|
32
|
+
tooltip,
|
|
33
|
+
color: labelColor,
|
|
34
|
+
style,
|
|
35
|
+
textcolor,
|
|
36
|
+
size,
|
|
37
|
+
textalign,
|
|
38
|
+
text_font_family,
|
|
39
|
+
force_overlay: force_overlay ?? false,
|
|
40
|
+
text_formatting,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns the x coordinate.
|
|
45
|
+
*
|
|
46
|
+
* @param id - Label object
|
|
47
|
+
* @returns X coordinate (bar index or timestamp)
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
52
|
+
* const x = label.get_x(label); // Returns 50
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function get_x(id) {
|
|
56
|
+
return id.x;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Returns the y coordinate (price level).
|
|
60
|
+
*
|
|
61
|
+
* @param id - Label object
|
|
62
|
+
* @returns Y coordinate (price)
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
67
|
+
* const y = label.get_y(label); // Returns 155.5
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export function get_y(id) {
|
|
71
|
+
return id.y;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Returns the label text content.
|
|
75
|
+
*
|
|
76
|
+
* @param id - Label object
|
|
77
|
+
* @returns Text content (or undefined if no text)
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const label = label.new(50, 155.5, 'Pivot High');
|
|
82
|
+
* const text = label.get_text(label); // Returns 'Pivot High'
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export function get_text(id) {
|
|
86
|
+
return id.text;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Creates a copy of the label object.
|
|
90
|
+
*
|
|
91
|
+
* @param id - Label object to copy
|
|
92
|
+
* @returns New label object with same properties
|
|
93
|
+
*
|
|
94
|
+
* @remarks
|
|
95
|
+
* Creates a shallow copy of the label. Modifications to the copy won't affect the original.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const original = label.new(50, 155.5, 'Pivot');
|
|
100
|
+
* const copied = label.copy(original);
|
|
101
|
+
*
|
|
102
|
+
* // Modify copy without affecting original
|
|
103
|
+
* copied.text = 'New Text';
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export function copy(id) {
|
|
107
|
+
return register('label', { ...id });
|
|
108
|
+
}
|
|
109
|
+
// =============================================================================
|
|
110
|
+
// POSITION SETTERS
|
|
111
|
+
// =============================================================================
|
|
112
|
+
/**
|
|
113
|
+
* Sets the x coordinate.
|
|
114
|
+
*
|
|
115
|
+
* @param id - Label object to modify
|
|
116
|
+
* @param x - New x coordinate
|
|
117
|
+
* @returns Modified label object
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```typescript
|
|
121
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
122
|
+
* label.set_x(label, 55); // Move to bar 55
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export function set_x(id, x) {
|
|
126
|
+
if (isDeleted(id))
|
|
127
|
+
return id;
|
|
128
|
+
id.x = x;
|
|
129
|
+
return id;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Sets the y coordinate (price level).
|
|
133
|
+
*
|
|
134
|
+
* @param id - Label object to modify
|
|
135
|
+
* @param y - New y coordinate
|
|
136
|
+
* @returns Modified label object
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
141
|
+
* label.set_y(label, 160); // Move to price 160
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export function set_y(id, y) {
|
|
145
|
+
if (isDeleted(id))
|
|
146
|
+
return id;
|
|
147
|
+
id.y = y;
|
|
148
|
+
return id;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Sets both x and y coordinates.
|
|
152
|
+
*
|
|
153
|
+
* @param id - Label object to modify
|
|
154
|
+
* @param x - New x coordinate
|
|
155
|
+
* @param y - New y coordinate
|
|
156
|
+
* @returns Modified label object
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
161
|
+
* label.set_xy(label, 60, 160); // Move to (60, 160)
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
export function set_xy(id, x, y) {
|
|
165
|
+
if (isDeleted(id))
|
|
166
|
+
return id;
|
|
167
|
+
id.x = x;
|
|
168
|
+
id.y = y;
|
|
169
|
+
return id;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Sets the x-axis coordinate system.
|
|
173
|
+
*
|
|
174
|
+
* @param id - Label object to modify
|
|
175
|
+
* @param x - New x coordinate
|
|
176
|
+
* @param xloc - New coordinate system
|
|
177
|
+
* @returns Modified label object
|
|
178
|
+
*
|
|
179
|
+
* @remarks
|
|
180
|
+
* When changing xloc, you must provide an appropriate x coordinate for the new system.
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
185
|
+
* label.set_xloc(label, 1609459200000, 'bar_time'); // Change to timestamp
|
|
186
|
+
* ```
|
|
187
|
+
*/
|
|
188
|
+
export function set_xloc(id, x, xloc) {
|
|
189
|
+
if (isDeleted(id))
|
|
190
|
+
return id;
|
|
191
|
+
id.x = x;
|
|
192
|
+
id.xloc = xloc;
|
|
193
|
+
return id;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Sets the y-location mode of the label (PineScript `label.set_yloc(id, yloc)`): `price` uses the
|
|
197
|
+
* label's y, `abovebar` / `belowbar` place it above / below the bar.
|
|
198
|
+
*/
|
|
199
|
+
export function set_yloc(id, yloc) {
|
|
200
|
+
if (isDeleted(id))
|
|
201
|
+
return id;
|
|
202
|
+
id.yloc = yloc;
|
|
203
|
+
return id;
|
|
204
|
+
}
|
|
205
|
+
// =============================================================================
|
|
206
|
+
// CONTENT SETTERS
|
|
207
|
+
// =============================================================================
|
|
208
|
+
/**
|
|
209
|
+
* Sets the text content.
|
|
210
|
+
*
|
|
211
|
+
* @param id - Label object to modify
|
|
212
|
+
* @param text - New text content
|
|
213
|
+
* @returns Modified label object
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
* ```typescript
|
|
217
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
218
|
+
* label.set_text(label, 'Updated Text');
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
export function set_text(id, text) {
|
|
222
|
+
if (isDeleted(id))
|
|
223
|
+
return id;
|
|
224
|
+
id.text = text;
|
|
225
|
+
return id;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Sets the tooltip text.
|
|
229
|
+
*
|
|
230
|
+
* @param id - Label object to modify
|
|
231
|
+
* @param tooltip - New tooltip text
|
|
232
|
+
* @returns Modified label object
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* ```typescript
|
|
236
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
237
|
+
* label.set_tooltip(label, 'Resistance level formed at 155.5');
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
export function set_tooltip(id, tooltip) {
|
|
241
|
+
if (isDeleted(id))
|
|
242
|
+
return id;
|
|
243
|
+
id.tooltip = tooltip;
|
|
244
|
+
return id;
|
|
245
|
+
}
|
|
246
|
+
// =============================================================================
|
|
247
|
+
// STYLING SETTERS
|
|
248
|
+
// =============================================================================
|
|
249
|
+
/**
|
|
250
|
+
* Sets the label color (border and arrow).
|
|
251
|
+
*
|
|
252
|
+
* @param id - Label object to modify
|
|
253
|
+
* @param labelColor - New color
|
|
254
|
+
* @returns Modified label object
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```typescript
|
|
258
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
259
|
+
* label.set_color(label, '#FF0000'); // Red label
|
|
260
|
+
* ```
|
|
261
|
+
*/
|
|
262
|
+
export function set_color(id, labelColor) {
|
|
263
|
+
if (isDeleted(id))
|
|
264
|
+
return id;
|
|
265
|
+
id.color = labelColor;
|
|
266
|
+
return id;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Sets the text color.
|
|
270
|
+
*
|
|
271
|
+
* @param id - Label object to modify
|
|
272
|
+
* @param textColor - New text color
|
|
273
|
+
* @returns Modified label object
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* ```typescript
|
|
277
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
278
|
+
* label.set_textcolor(label, '#FFFFFF'); // White text
|
|
279
|
+
* ```
|
|
280
|
+
*/
|
|
281
|
+
export function set_textcolor(id, textColor) {
|
|
282
|
+
if (isDeleted(id))
|
|
283
|
+
return id;
|
|
284
|
+
id.textcolor = textColor;
|
|
285
|
+
return id;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Sets the label style.
|
|
289
|
+
*
|
|
290
|
+
* @param id - Label object to modify
|
|
291
|
+
* @param style - New label style
|
|
292
|
+
* @returns Modified label object
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* ```typescript
|
|
296
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
297
|
+
* label.set_style(label, 'label_down'); // Arrow pointing down
|
|
298
|
+
* ```
|
|
299
|
+
*/
|
|
300
|
+
export function set_style(id, style) {
|
|
301
|
+
if (isDeleted(id))
|
|
302
|
+
return id;
|
|
303
|
+
id.style = style;
|
|
304
|
+
return id;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Sets the label size.
|
|
308
|
+
*
|
|
309
|
+
* @param id - Label object to modify
|
|
310
|
+
* @param size - New size
|
|
311
|
+
* @returns Modified label object
|
|
312
|
+
*
|
|
313
|
+
* @example
|
|
314
|
+
* ```typescript
|
|
315
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
316
|
+
* label.set_size(label, 'large'); // Larger label
|
|
317
|
+
* ```
|
|
318
|
+
*/
|
|
319
|
+
export function set_size(id, size) {
|
|
320
|
+
if (isDeleted(id))
|
|
321
|
+
return id;
|
|
322
|
+
id.size = size;
|
|
323
|
+
return id;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Sets the text alignment.
|
|
327
|
+
*
|
|
328
|
+
* @param id - Label object to modify
|
|
329
|
+
* @param align - New text alignment
|
|
330
|
+
* @returns Modified label object
|
|
331
|
+
*
|
|
332
|
+
* @example
|
|
333
|
+
* ```typescript
|
|
334
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
335
|
+
* label.set_textalign(label, 'center'); // Center-aligned text
|
|
336
|
+
* ```
|
|
337
|
+
*/
|
|
338
|
+
export function set_textalign(id, align) {
|
|
339
|
+
if (isDeleted(id))
|
|
340
|
+
return id;
|
|
341
|
+
id.textalign = align;
|
|
342
|
+
return id;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Sets the text font family.
|
|
346
|
+
*
|
|
347
|
+
* @param id - Label object to modify
|
|
348
|
+
* @param font - New font family
|
|
349
|
+
* @returns Modified label object
|
|
350
|
+
*
|
|
351
|
+
* @example
|
|
352
|
+
* ```typescript
|
|
353
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
354
|
+
* label.set_text_font_family(label, 'monospace');
|
|
355
|
+
* ```
|
|
356
|
+
*/
|
|
357
|
+
export function set_text_font_family(id, font) {
|
|
358
|
+
if (isDeleted(id))
|
|
359
|
+
return id;
|
|
360
|
+
id.text_font_family = font;
|
|
361
|
+
return id;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Deletes the label object.
|
|
365
|
+
*
|
|
366
|
+
* @param id - Label object to delete
|
|
367
|
+
*
|
|
368
|
+
* @remarks
|
|
369
|
+
* Removes the label from `label.all()`. As in PineScript, the deleted label is `na`: its getters
|
|
370
|
+
* return NaN and its setters do nothing. Deleting it twice has no effect.
|
|
371
|
+
*
|
|
372
|
+
* @example
|
|
373
|
+
* ```typescript
|
|
374
|
+
* const label = label.new(50, 155.5, 'Pivot');
|
|
375
|
+
* label.delete(label);
|
|
376
|
+
* // label.all() no longer contains it
|
|
377
|
+
* ```
|
|
378
|
+
*/
|
|
379
|
+
export function delete_label(id) {
|
|
380
|
+
remove('label', id);
|
|
381
|
+
}
|
|
382
|
+
/** x coordinate of a chart point for an object's xloc (`na` when the point has no such coordinate). */
|
|
383
|
+
function pointX(point, xloc) {
|
|
384
|
+
const x = xloc === 'bar_time' ? point.time : point.index;
|
|
385
|
+
return x ?? NaN;
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* All live labels, in creation order (PineScript `label.all`). A new array.
|
|
389
|
+
*/
|
|
390
|
+
export function all() {
|
|
391
|
+
return allDrawings('label');
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Sets the label position from a chart point: `point.index` for `bar_index` labels, `point.time`
|
|
395
|
+
* for `bar_time` labels, and `point.price`.
|
|
396
|
+
*/
|
|
397
|
+
export function set_point(id, point) {
|
|
398
|
+
if (isDeleted(id))
|
|
399
|
+
return id;
|
|
400
|
+
id.x = pointX(point, id.xloc);
|
|
401
|
+
id.y = point.price;
|
|
402
|
+
return id;
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Sets the text formatting: `text.format_none`, `text.format_bold`, `text.format_italic`,
|
|
406
|
+
* or `text.format_bold + text.format_italic`.
|
|
407
|
+
*/
|
|
408
|
+
export function set_text_formatting(id, formatting) {
|
|
409
|
+
if (isDeleted(id))
|
|
410
|
+
return id;
|
|
411
|
+
id.text_formatting = formatting;
|
|
412
|
+
return id;
|
|
413
|
+
}
|
|
414
|
+
// Alias to match PineScript API
|
|
415
|
+
export { new_label as new };
|
|
416
|
+
export { delete_label as delete };
|
|
417
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/label/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/zigzag/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,MAAM,EACN,eAAe,EACf,eAAe,IAAI,cAAc,EACjC,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/zigzag/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,MAAM,EACN,eAAe,EACf,eAAe,IAAI,cAAc,GAKlC,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZigZag Library
|
|
3
|
+
*
|
|
4
|
+
* Identifies trend reversals by connecting pivot highs and lows
|
|
5
|
+
* that exceed a specified percentage deviation threshold.
|
|
6
|
+
*
|
|
7
|
+
* Based on the PineScript ZigZag library v8.
|
|
8
|
+
*/
|
|
9
|
+
import type { Bar } from '../../types/index.js';
|
|
10
|
+
export interface ZigZagSettings {
|
|
11
|
+
/** Minimum percentage deviation from previous pivot to register reversal (default: 5.0) */
|
|
12
|
+
devThreshold: number;
|
|
13
|
+
/** Number of bars required for pivot point detection (default: 10) */
|
|
14
|
+
depth: number;
|
|
15
|
+
/** Line color for ZigZag drawing (default: '#2962FF') */
|
|
16
|
+
lineColor: string;
|
|
17
|
+
/** Extend line from last pivot to current bar (default: true) */
|
|
18
|
+
extendLast: boolean;
|
|
19
|
+
/** Display reversal price in labels (default: true) */
|
|
20
|
+
displayReversalPrice: boolean;
|
|
21
|
+
/** Display cumulative volume in labels (default: true) */
|
|
22
|
+
displayCumulativeVolume: boolean;
|
|
23
|
+
/** Display price change from previous pivot (default: true) */
|
|
24
|
+
displayReversalPriceChange: boolean;
|
|
25
|
+
/** Price change display mode: 'Absolute' or 'Percent' (default: 'Absolute') */
|
|
26
|
+
differencePriceMode: 'Absolute' | 'Percent';
|
|
27
|
+
/** Allow both pivot high and low on same bar (default: true) */
|
|
28
|
+
allowZigZagOnOneBar: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface ZigZagPoint {
|
|
31
|
+
/** Bar timestamp */
|
|
32
|
+
time: number;
|
|
33
|
+
/** Bar index position */
|
|
34
|
+
barIndex: number;
|
|
35
|
+
/** Price at this point */
|
|
36
|
+
price: number;
|
|
37
|
+
}
|
|
38
|
+
export interface ZigZagPivot {
|
|
39
|
+
/** True if this is a pivot high, false for pivot low */
|
|
40
|
+
isHigh: boolean;
|
|
41
|
+
/** Cumulative volume from start to end */
|
|
42
|
+
volume: number;
|
|
43
|
+
/** Starting point of this segment */
|
|
44
|
+
start: ZigZagPoint;
|
|
45
|
+
/** Ending point (the pivot) of this segment */
|
|
46
|
+
end: ZigZagPoint;
|
|
47
|
+
}
|
|
48
|
+
export interface ZigZagResult {
|
|
49
|
+
/** Array of confirmed pivots */
|
|
50
|
+
pivots: ZigZagPivot[];
|
|
51
|
+
/** Extension line to current bar (if extendLast enabled) */
|
|
52
|
+
extension: ZigZagPivot | null;
|
|
53
|
+
}
|
|
54
|
+
export declare const defaultSettings: ZigZagSettings;
|
|
55
|
+
export declare class ZigZag {
|
|
56
|
+
settings: ZigZagSettings;
|
|
57
|
+
pivots: ZigZagPivot[];
|
|
58
|
+
sumVol: number;
|
|
59
|
+
private highBuffer;
|
|
60
|
+
private lowBuffer;
|
|
61
|
+
private timeBuffer;
|
|
62
|
+
private barCount;
|
|
63
|
+
constructor(settings?: Partial<ZigZagSettings>);
|
|
64
|
+
/**
|
|
65
|
+
* Process a single bar, detecting pivots.
|
|
66
|
+
* Must be called sequentially for each bar.
|
|
67
|
+
* @returns true if a new pivot was detected or updated
|
|
68
|
+
*/
|
|
69
|
+
update(bar: Bar, barIndex: number): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Get the last confirmed pivot
|
|
72
|
+
*/
|
|
73
|
+
lastPivot(): ZigZagPivot | null;
|
|
74
|
+
/**
|
|
75
|
+
* Get extension line to current bar (if extendLast enabled)
|
|
76
|
+
*/
|
|
77
|
+
getExtension(currentBar: Bar, barIndex: number): ZigZagPivot | null;
|
|
78
|
+
private tryFindPivot;
|
|
79
|
+
/**
|
|
80
|
+
* Check if a bar from `depth` bars back is a pivot point.
|
|
81
|
+
* A pivot high has prices below it on both sides.
|
|
82
|
+
* A pivot low has prices above it on both sides.
|
|
83
|
+
*/
|
|
84
|
+
private findPivotPoint;
|
|
85
|
+
/**
|
|
86
|
+
* Calculate percentage deviation from base price to new price
|
|
87
|
+
*/
|
|
88
|
+
private calcDev;
|
|
89
|
+
/**
|
|
90
|
+
* Handle a newly detected pivot point.
|
|
91
|
+
* Either updates existing pivot (if same direction) or adds new pivot (if direction changed).
|
|
92
|
+
*/
|
|
93
|
+
private newPivotPointFound;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Convenience function to calculate ZigZag on an array of bars.
|
|
97
|
+
* Processes all bars and returns the resulting pivots and extension.
|
|
98
|
+
*/
|
|
99
|
+
export declare function calculateZigZag(bars: Bar[], settings?: Partial<ZigZagSettings>): ZigZagResult;
|
|
100
|
+
//# sourceMappingURL=zigzag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zigzag.d.ts","sourceRoot":"","sources":["../../../../src/lib/zigzag/zigzag.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAIhD,MAAM,WAAW,cAAc;IAC7B,2FAA2F;IAC3F,YAAY,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,UAAU,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,0DAA0D;IAC1D,uBAAuB,EAAE,OAAO,CAAC;IACjC,+DAA+D;IAC/D,0BAA0B,EAAE,OAAO,CAAC;IACpC,+EAA+E;IAC/E,mBAAmB,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5C,gEAAgE;IAChE,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,KAAK,EAAE,WAAW,CAAC;IACnB,+CAA+C;IAC/C,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,4DAA4D;IAC5D,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;CAC/B;AAID,eAAO,MAAM,eAAe,EAAE,cAU7B,CAAC;AAIF,qBAAa,MAAM;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,WAAW,EAAE,CAAM;IAC3B,MAAM,EAAE,MAAM,CAAK;IAEnB,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,QAAQ,CAAa;gBAEjB,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAI9C;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAwB3C;;OAEG;IACH,SAAS,IAAI,WAAW,GAAG,IAAI;IAM/B;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAoBnE,OAAO,CAAC,YAAY;IAWpB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAmDtB;;OAEG;IACH,OAAO,CAAC,OAAO;IAIf;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAsD3B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,GAAG,EAAE,EACX,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACjC,YAAY,CAwBd"}
|