@tradecanvas/core 1.0.3 → 1.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"SessionShading.d.ts","sourceRoot":"","sources":["../../src/ui/SessionShading.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE9E,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,kBAInC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAoD;IAElE,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAG5B,SAAS,IAAI,OAAO;IAGpB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAGpD,SAAS,IAAI,kBAAkB;IAI/B,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CA+BrG"}
1
+ {"version":3,"file":"SessionShading.d.ts","sourceRoot":"","sources":["../../src/ui/SessionShading.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAoB,KAAK,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAElG,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,kBAInC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAoD;IAElE,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAG5B,SAAS,IAAI,OAAO;IAGpB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAMpD,SAAS,IAAI,kBAAkB;IAO/B,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CA+BrG"}
@@ -6,6 +6,6 @@ export { BarCountdown } from './BarCountdown.js';
6
6
  export { SessionBreaks } from './SessionBreaks.js';
7
7
  export type { SessionBreakConfig } from './SessionBreaks.js';
8
8
  export { SessionShading, DEFAULT_SESSION_HOURS } from './SessionShading.js';
9
- export { isRegularSession, minuteOfDay } from './sessionHours.js';
10
- export type { SessionHoursConfig } from './sessionHours.js';
9
+ export { isRegularSession, isInWindow, minuteOfDay } from './sessionHours.js';
10
+ export type { SessionHoursConfig, SessionWindow } from './sessionHours.js';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,3 +1,10 @@
1
+ /** One in-session window, minutes-of-day in the session's timezone. */
2
+ export interface SessionWindow {
3
+ /** Window start, minutes from midnight (e.g. 570 = 09:30). */
4
+ startMinute: number;
5
+ /** Window end, minutes from midnight. `endMinute < startMinute` wraps past midnight. */
6
+ endMinute: number;
7
+ }
1
8
  export interface SessionHoursConfig {
2
9
  /** Session start, minutes from midnight in the session's timezone (e.g. 570 = 09:30). */
3
10
  startMinute: number;
@@ -5,13 +12,29 @@ export interface SessionHoursConfig {
5
12
  endMinute: number;
6
13
  /** Timezone offset applied to UTC before deriving minute-of-day (e.g. -300 for EST). */
7
14
  tzOffsetMinutes: number;
15
+ /**
16
+ * Optional split session: a list of in-session windows within the day. When
17
+ * present and non-empty, `startMinute`/`endMinute` are ignored and a
18
+ * timestamp counts as in-session only if it lands inside one of these
19
+ * windows. This lets a market with a midday recess — e.g. SET's
20
+ * 10:00–12:30 and 14:30–16:30 — dim the lunch break the same way
21
+ * pre-/post-market is dimmed.
22
+ */
23
+ windows?: SessionWindow[];
8
24
  }
9
25
  /** Minute-of-day (0–1439) for a timestamp in the configured timezone. */
10
26
  export declare function minuteOfDay(timeMs: number, tzOffsetMinutes: number): number;
11
27
  /**
12
- * Whether a timestamp falls inside the regular session. Handles overnight
13
- * sessions where `endMinute < startMinute` (e.g. a 17:00–16:00 futures session)
14
- * by treating the window as wrapping past midnight.
28
+ * Whether a minute-of-day falls inside a single window. `start === end` is a
29
+ * 24h window; `end < start` wraps past midnight (e.g. a 17:00–16:00 futures
30
+ * session).
31
+ */
32
+ export declare function isInWindow(minute: number, startMinute: number, endMinute: number): boolean;
33
+ /**
34
+ * Whether a timestamp falls inside the regular session. With `config.windows`
35
+ * set, the timestamp is in-session if it lands in any window (split-session
36
+ * markets with a midday recess). Otherwise the single `startMinute`–`endMinute`
37
+ * window is used, which still handles overnight sessions that wrap midnight.
15
38
  */
16
39
  export declare function isRegularSession(timeMs: number, config: SessionHoursConfig): boolean;
17
40
  //# sourceMappingURL=sessionHours.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionHours.d.ts","sourceRoot":"","sources":["../../src/ui/sessionHours.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,eAAe,EAAE,MAAM,CAAC;CACzB;AAID,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAOpF"}
1
+ {"version":3,"file":"sessionHours.d.ts","sourceRoot":"","sources":["../../src/ui/sessionHours.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAID,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAK1F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAMpF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tradecanvas/core",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "description": "Canvas rendering engine for @tradecanvas/chart",
6
6
  "license": "MIT",
@@ -34,7 +34,7 @@
34
34
  "README.md"
35
35
  ],
36
36
  "dependencies": {
37
- "@tradecanvas/commons": "1.0.3"
37
+ "@tradecanvas/commons": "1.1.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "vitest": "^2.1.8"