gloomberb 0.17.3 → 0.17.4
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/package.json +2 -1
- package/src/api-client/chat.ts +28 -0
- package/src/api-client/errors.ts +11 -1
- package/src/api-client/index.ts +4 -1
- package/src/api-client/normalizers.ts +21 -0
- package/src/api-client/socket.ts +27 -0
- package/src/app/runtime/startup.ts +4 -0
- package/src/cli/pane-functions/function-help.ts +1 -1
- package/src/components/index.ts +1 -1
- package/src/components/metric-treemap/heat-surface.tsx +76 -14
- package/src/components/metric-treemap/heat-tiles.ts +5 -3
- package/src/components/metric-treemap/index.tsx +1 -1
- package/src/components/ui/button.tsx +24 -9
- package/src/components/ui/index.ts +1 -1
- package/src/components/ui/status.tsx +148 -5
- package/src/layout-marketplace/gallery-desktop.tsx +2 -2
- package/src/market-data/futures-board.ts +44 -1
- package/src/plugins/builtin/account-management/calendar-tab.tsx +1 -1
- package/src/plugins/builtin/alerts/cli.ts +72 -11
- package/src/plugins/builtin/awards/headless.ts +5 -1
- package/src/plugins/builtin/catalysts/headless.ts +5 -1
- package/src/plugins/builtin/chat/controller/connections.ts +18 -0
- package/src/plugins/builtin/chat/controller/fetch.ts +5 -2
- package/src/plugins/builtin/chat/controller/index.ts +49 -21
- package/src/plugins/builtin/chat/controller/notifications.ts +132 -72
- package/src/plugins/builtin/chat/controller/realtime.ts +37 -1
- package/src/plugins/builtin/cot/model.ts +20 -0
- package/src/plugins/builtin/custom-view/pane.tsx +2 -2
- package/src/plugins/builtin/docs/pane.tsx +1 -1
- package/src/plugins/builtin/futures/index.tsx +2 -3
- package/src/plugins/builtin/futures/model.ts +4 -2
- package/src/plugins/builtin/futures/series.ts +3 -3
- package/src/plugins/builtin/jobs/pane.tsx +12 -9
- package/src/plugins/builtin/market-heatmap/index.tsx +6 -15
- package/src/plugins/builtin/news/headless.ts +4 -2
- package/src/plugins/builtin/plugin-marketplace/pane.tsx +1 -1
- package/src/plugins/builtin/research/equity-diagnostic-pane.tsx +2 -3
- package/src/renderers/dom/build-assets.ts +17 -4
- package/src/renderers/dom/desktop/controls.tsx +2 -0
- package/src/renderers/electrobun/bun/desktop/macos-dock-badge.ts +4 -3
- package/src/renderers/electrobun/bun/desktop/macos-dock-icon.ts +2 -3
- package/src/renderers/electrobun/bun/desktop/macos-objc.ts +17 -6
- package/src/sources/gloomberb-cloud/normalizers.ts +12 -4
- package/src/time-series/resolve.ts +5 -3
- package/src/ui/resize-settle.ts +128 -0
- package/src/utils/calendar-date.ts +56 -0
- package/src/utils/decimal-comma.ts +31 -0
- package/src/utils/futures-generic.ts +25 -4
- package/src/utils/plugin-proxy-hosts.json +5 -0
- package/src/utils/utc-time.ts +14 -3
package/src/utils/utc-time.ts
CHANGED
|
@@ -83,13 +83,13 @@ export function setDisplayTimeZone(zone: string | null | undefined): void {
|
|
|
83
83
|
/**
|
|
84
84
|
* ` (Sun 11 Oct 01:56 Asia/Tokyo)`: an instant on the reader's clock, to follow
|
|
85
85
|
* its UTC time, with the weekday and date because the two can fall on
|
|
86
|
-
* different days
|
|
86
|
+
* different days; to the second with `seconds`. Empty when no zone is set.
|
|
87
87
|
*/
|
|
88
|
-
export function localTimeSuffix(time: number): string {
|
|
88
|
+
export function localTimeSuffix(time: number, seconds = false): string {
|
|
89
89
|
if (!displayZone || !Number.isFinite(time)) return "";
|
|
90
90
|
const local = zonedDateTimeParts(time, displayZone);
|
|
91
91
|
const weekday = WEEKDAYS[new Date(Date.UTC(local.year, local.month - 1, local.day)).getUTCDay()];
|
|
92
|
-
const clock =
|
|
92
|
+
const clock = [local.hour, local.minute, ...(seconds ? [local.second] : [])].map((part) => String(part).padStart(2, "0")).join(":");
|
|
93
93
|
return ` (${weekday} ${local.day} ${MONTHS[local.month - 1]} ${clock} ${displayZone})`;
|
|
94
94
|
}
|
|
95
95
|
|
|
@@ -106,6 +106,17 @@ export function formatUtcTime(value: ReportTime | Date | number | string): strin
|
|
|
106
106
|
return `${iso.slice(0, 16).replace("T", " ")} UTC${localTimeSuffix(parsed.time)}`;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
/**
|
|
110
|
+
* `2026-10-09 00:08:00 UTC`: `formatUtcTime` to the second, for a column whose
|
|
111
|
+
* times are to the second, so a time that fell on a whole minute reads like
|
|
112
|
+
* the rest. Text that is not a time comes back as it is.
|
|
113
|
+
*/
|
|
114
|
+
export function formatUtcSeconds(value: unknown): string {
|
|
115
|
+
const parsed = parseReportTime(value);
|
|
116
|
+
if (!parsed || parsed.dateOnly) return typeof value === "string" ? value : "";
|
|
117
|
+
return `${new Date(parsed.time).toISOString().slice(0, 19).replace("T", " ")} UTC${localTimeSuffix(parsed.time, true)}`;
|
|
118
|
+
}
|
|
119
|
+
|
|
109
120
|
/**
|
|
110
121
|
* `Fri 9 Oct 23:59` in UTC, or `Fri 9 Oct` for a date, for a table cell whose
|
|
111
122
|
* header names the zone: a time without its zone, so each row stays short. The
|