@forgecharts/sdk 1.5.35 → 1.5.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/Chart.d.ts.map +1 -1
- package/dist/index.js +101 -78
- package/dist/index.js.map +1 -1
- package/dist/internal.js +101 -78
- package/dist/internal.js.map +1 -1
- package/dist/pixi/PixiLastPriceRenderer.d.ts.map +1 -1
- package/dist/react/index.js +102 -79
- package/dist/react/index.js.map +1 -1
- package/dist/react/internal.js +102 -79
- package/dist/react/internal.js.map +1 -1
- package/package.json +1 -1
package/dist/core/Chart.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/core/Chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA2C,OAAO,EAAE,WAAW,EAAuB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtJ,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAa,MAAM,yBAAyB,CAAC;AACpF,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/core/Chart.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,103 @@ import { forwardRef, useRef, useState, useEffect, useImperativeHandle, useCallba
|
|
|
3
3
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import ReactDOM from 'react-dom';
|
|
5
5
|
|
|
6
|
+
// ../shared/src/time/timeframeRegistry.ts
|
|
7
|
+
function isCalendarTimeframe(key) {
|
|
8
|
+
return key === "1w" || key === "1M" || key === "3M" || key === "6M" || key === "12M";
|
|
9
|
+
}
|
|
10
|
+
function isTickTimeframe(key) {
|
|
11
|
+
return /^\d+t$/i.test(key);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// ../shared/src/time/timeUtils.ts
|
|
15
|
+
var MONDAY_EPOCH_OFFSET_MS = 3456e5;
|
|
16
|
+
var WEEK_MS = 6048e5;
|
|
17
|
+
function timeframeToMs(tf) {
|
|
18
|
+
if (isCalendarTimeframe(tf)) return null;
|
|
19
|
+
if (isTickTimeframe(tf)) return null;
|
|
20
|
+
const secs = parseTfSeconds(tf);
|
|
21
|
+
return secs !== null ? secs * 1e3 : null;
|
|
22
|
+
}
|
|
23
|
+
function parseTfSeconds(tf) {
|
|
24
|
+
const m = /^(\d+)(s|m|h|d|w|M)$/.exec(tf);
|
|
25
|
+
if (!m) return null;
|
|
26
|
+
const n = parseInt(m[1], 10);
|
|
27
|
+
const unit = m[2];
|
|
28
|
+
const UNIT_SECONDS = {
|
|
29
|
+
s: 1,
|
|
30
|
+
m: 60,
|
|
31
|
+
h: 3600,
|
|
32
|
+
d: 86400,
|
|
33
|
+
w: 604800,
|
|
34
|
+
M: 2592e3
|
|
35
|
+
};
|
|
36
|
+
const unitSec = UNIT_SECONDS[unit];
|
|
37
|
+
return unitSec !== void 0 ? n * unitSec : null;
|
|
38
|
+
}
|
|
39
|
+
function getBucketStart(timeMs, timeframe) {
|
|
40
|
+
if (timeframe === "1w") return getWeekBucketStart(timeMs);
|
|
41
|
+
if (timeframe === "1M") return getMonthBucketStart(timeMs);
|
|
42
|
+
if (timeframe === "3M") return getQuarterBucketStart(timeMs);
|
|
43
|
+
if (timeframe === "6M") return getHalfYearBucketStart(timeMs);
|
|
44
|
+
if (timeframe === "12M") return getYearBucketStart(timeMs);
|
|
45
|
+
const secs = parseTfSeconds(timeframe);
|
|
46
|
+
if (secs && secs > 0) return Math.floor(timeMs / (secs * 1e3)) * (secs * 1e3);
|
|
47
|
+
return Math.floor(timeMs / 6e4) * 6e4;
|
|
48
|
+
}
|
|
49
|
+
function getWeekBucketStart(timeMs) {
|
|
50
|
+
return Math.floor((timeMs - MONDAY_EPOCH_OFFSET_MS) / WEEK_MS) * WEEK_MS + MONDAY_EPOCH_OFFSET_MS;
|
|
51
|
+
}
|
|
52
|
+
function getMonthBucketStart(timeMs) {
|
|
53
|
+
const d = new Date(timeMs);
|
|
54
|
+
return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), 1);
|
|
55
|
+
}
|
|
56
|
+
function getQuarterBucketStart(timeMs) {
|
|
57
|
+
const d = new Date(timeMs);
|
|
58
|
+
const quarterMonth = Math.floor(d.getUTCMonth() / 3) * 3;
|
|
59
|
+
return Date.UTC(d.getUTCFullYear(), quarterMonth, 1);
|
|
60
|
+
}
|
|
61
|
+
function getHalfYearBucketStart(timeMs) {
|
|
62
|
+
const d = new Date(timeMs);
|
|
63
|
+
const halfMonth = d.getUTCMonth() < 6 ? 0 : 6;
|
|
64
|
+
return Date.UTC(d.getUTCFullYear(), halfMonth, 1);
|
|
65
|
+
}
|
|
66
|
+
function getYearBucketStart(timeMs) {
|
|
67
|
+
return Date.UTC(new Date(timeMs).getUTCFullYear(), 0, 1);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// ../shared/src/marketHours.ts
|
|
71
|
+
function isGLBXWeekend(nowMs = Date.now()) {
|
|
72
|
+
const d = new Date(nowMs);
|
|
73
|
+
const day = d.getUTCDay();
|
|
74
|
+
const hour = d.getUTCHours();
|
|
75
|
+
if (day === 6) return true;
|
|
76
|
+
if (day === 0 && hour < 22) return true;
|
|
77
|
+
if (day === 5 && hour >= 21) return true;
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
function centralParts(nowMs) {
|
|
81
|
+
const parts = new Intl.DateTimeFormat("en-US", {
|
|
82
|
+
timeZone: "America/Chicago",
|
|
83
|
+
weekday: "short",
|
|
84
|
+
hour: "2-digit",
|
|
85
|
+
minute: "2-digit",
|
|
86
|
+
// h23 rather than hour12:false — the latter yields '24' for midnight in
|
|
87
|
+
// some ICU builds, which would parse as an hour that never matches.
|
|
88
|
+
hourCycle: "h23"
|
|
89
|
+
}).formatToParts(new Date(nowMs));
|
|
90
|
+
const get = (t) => parts.find((p) => p.type === t)?.value ?? "";
|
|
91
|
+
return {
|
|
92
|
+
weekday: get("weekday"),
|
|
93
|
+
hour: parseInt(get("hour"), 10),
|
|
94
|
+
minute: parseInt(get("minute"), 10)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function isGLBXDailyBreak(nowMs = Date.now()) {
|
|
98
|
+
const { weekday, hour } = centralParts(nowMs);
|
|
99
|
+
if (hour !== 16) return false;
|
|
100
|
+
return weekday === "Mon" || weekday === "Tue" || weekday === "Wed" || weekday === "Thu";
|
|
101
|
+
}
|
|
102
|
+
|
|
6
103
|
// src/core/CanvasLayer.ts
|
|
7
104
|
var CanvasLayer = class {
|
|
8
105
|
canvas;
|
|
@@ -96,81 +193,6 @@ function computeTicks(min, max, targetCount) {
|
|
|
96
193
|
return ticks;
|
|
97
194
|
}
|
|
98
195
|
|
|
99
|
-
// ../shared/src/time/timeframeRegistry.ts
|
|
100
|
-
function isCalendarTimeframe(key) {
|
|
101
|
-
return key === "1w" || key === "1M" || key === "3M" || key === "6M" || key === "12M";
|
|
102
|
-
}
|
|
103
|
-
function isTickTimeframe(key) {
|
|
104
|
-
return /^\d+t$/i.test(key);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// ../shared/src/time/timeUtils.ts
|
|
108
|
-
var MONDAY_EPOCH_OFFSET_MS = 3456e5;
|
|
109
|
-
var WEEK_MS = 6048e5;
|
|
110
|
-
function timeframeToMs(tf) {
|
|
111
|
-
if (isCalendarTimeframe(tf)) return null;
|
|
112
|
-
if (isTickTimeframe(tf)) return null;
|
|
113
|
-
const secs = parseTfSeconds(tf);
|
|
114
|
-
return secs !== null ? secs * 1e3 : null;
|
|
115
|
-
}
|
|
116
|
-
function parseTfSeconds(tf) {
|
|
117
|
-
const m = /^(\d+)(s|m|h|d|w|M)$/.exec(tf);
|
|
118
|
-
if (!m) return null;
|
|
119
|
-
const n = parseInt(m[1], 10);
|
|
120
|
-
const unit = m[2];
|
|
121
|
-
const UNIT_SECONDS = {
|
|
122
|
-
s: 1,
|
|
123
|
-
m: 60,
|
|
124
|
-
h: 3600,
|
|
125
|
-
d: 86400,
|
|
126
|
-
w: 604800,
|
|
127
|
-
M: 2592e3
|
|
128
|
-
};
|
|
129
|
-
const unitSec = UNIT_SECONDS[unit];
|
|
130
|
-
return unitSec !== void 0 ? n * unitSec : null;
|
|
131
|
-
}
|
|
132
|
-
function getBucketStart(timeMs, timeframe) {
|
|
133
|
-
if (timeframe === "1w") return getWeekBucketStart(timeMs);
|
|
134
|
-
if (timeframe === "1M") return getMonthBucketStart(timeMs);
|
|
135
|
-
if (timeframe === "3M") return getQuarterBucketStart(timeMs);
|
|
136
|
-
if (timeframe === "6M") return getHalfYearBucketStart(timeMs);
|
|
137
|
-
if (timeframe === "12M") return getYearBucketStart(timeMs);
|
|
138
|
-
const secs = parseTfSeconds(timeframe);
|
|
139
|
-
if (secs && secs > 0) return Math.floor(timeMs / (secs * 1e3)) * (secs * 1e3);
|
|
140
|
-
return Math.floor(timeMs / 6e4) * 6e4;
|
|
141
|
-
}
|
|
142
|
-
function getWeekBucketStart(timeMs) {
|
|
143
|
-
return Math.floor((timeMs - MONDAY_EPOCH_OFFSET_MS) / WEEK_MS) * WEEK_MS + MONDAY_EPOCH_OFFSET_MS;
|
|
144
|
-
}
|
|
145
|
-
function getMonthBucketStart(timeMs) {
|
|
146
|
-
const d = new Date(timeMs);
|
|
147
|
-
return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), 1);
|
|
148
|
-
}
|
|
149
|
-
function getQuarterBucketStart(timeMs) {
|
|
150
|
-
const d = new Date(timeMs);
|
|
151
|
-
const quarterMonth = Math.floor(d.getUTCMonth() / 3) * 3;
|
|
152
|
-
return Date.UTC(d.getUTCFullYear(), quarterMonth, 1);
|
|
153
|
-
}
|
|
154
|
-
function getHalfYearBucketStart(timeMs) {
|
|
155
|
-
const d = new Date(timeMs);
|
|
156
|
-
const halfMonth = d.getUTCMonth() < 6 ? 0 : 6;
|
|
157
|
-
return Date.UTC(d.getUTCFullYear(), halfMonth, 1);
|
|
158
|
-
}
|
|
159
|
-
function getYearBucketStart(timeMs) {
|
|
160
|
-
return Date.UTC(new Date(timeMs).getUTCFullYear(), 0, 1);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// ../shared/src/marketHours.ts
|
|
164
|
-
function isGLBXWeekend(nowMs = Date.now()) {
|
|
165
|
-
const d = new Date(nowMs);
|
|
166
|
-
const day = d.getUTCDay();
|
|
167
|
-
const hour = d.getUTCHours();
|
|
168
|
-
if (day === 6) return true;
|
|
169
|
-
if (day === 0 && hour < 22) return true;
|
|
170
|
-
if (day === 5 && hour >= 21) return true;
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
196
|
// ../utils/src/time.ts
|
|
175
197
|
function parseTimeframeSeconds(tf) {
|
|
176
198
|
return parseTfSeconds(tf);
|
|
@@ -5189,7 +5211,7 @@ var Chart = class {
|
|
|
5189
5211
|
const tfSecs = _tfToSeconds(this._interval);
|
|
5190
5212
|
const now = Math.floor(exchangeNow() / 1e3);
|
|
5191
5213
|
const remaining = tfSecs - now % tfSecs;
|
|
5192
|
-
const showCd = this._options.showCountdown !== false;
|
|
5214
|
+
const showCd = this._options.showCountdown !== false && !isGLBXDailyBreak(now * 1e3);
|
|
5193
5215
|
const priceLabel = _formatLastPrice(price, this._options.pricePrecision);
|
|
5194
5216
|
const lineH = 15;
|
|
5195
5217
|
const boxH = showCd ? lineH * 2 + 1 : lineH;
|
|
@@ -7711,9 +7733,10 @@ var PixiLastPriceRenderer = class {
|
|
|
7711
7733
|
cx += dashLen + gapLen;
|
|
7712
7734
|
}
|
|
7713
7735
|
this._lineGfx.stroke();
|
|
7714
|
-
const showCd = this.showCountdown;
|
|
7715
|
-
const tfSecs = tfToSeconds(interval);
|
|
7716
7736
|
const now = Math.floor(exchangeNow() / 1e3);
|
|
7737
|
+
const halted = isGLBXDailyBreak(now * 1e3);
|
|
7738
|
+
const showCd = this.showCountdown && !halted;
|
|
7739
|
+
const tfSecs = tfToSeconds(interval);
|
|
7717
7740
|
const remaining = tfSecs - now % tfSecs;
|
|
7718
7741
|
this._lastSec = now;
|
|
7719
7742
|
const lineH = 15;
|