@opencxh/domain 1.281.0 → 1.286.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.
- package/dist/entities/analytics/dashboard.d.ts +16 -1
- package/dist/entities/analytics/metric.d.ts +12 -0
- package/dist/entities/calendar-event/types.d.ts +5 -0
- package/dist/entities/inbox/types.d.ts +2 -0
- package/dist/entities/interaction/types.d.ts +0 -17
- package/dist/index.cjs +6 -6
- package/dist/index.d.ts +0 -1
- package/dist/index.js +506 -508
- package/dist/platform/communication.d.ts +5 -41
- package/dist/platform/permission.d.ts +1 -1
- package/package.json +1 -1
- package/dist/platform/push.d.ts +0 -65
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { SavedView } from '../saved-view/types';
|
|
1
2
|
import { OwnerScope } from '../scope/types';
|
|
2
3
|
import { DimensionId } from './dimensions';
|
|
3
|
-
import { WidgetConfig } from './report';
|
|
4
|
+
import { FilterClause, WidgetConfig } from './report';
|
|
4
5
|
/**
|
|
5
6
|
* A dashboard SECTION, declaratively. The analytics frontend runs the right widget(s) for the viz and
|
|
6
7
|
* renders the matching component. `title` and the parent def's `title` are i18n keys resolved against the
|
|
@@ -61,3 +62,17 @@ export interface DashboardConfig {
|
|
|
61
62
|
createdAt?: number;
|
|
62
63
|
updatedAt?: number;
|
|
63
64
|
}
|
|
65
|
+
/** What a report view keeps: the window as the URL writes it (`30d`, `2026-08-01~2026-08-31`) and the filters. */
|
|
66
|
+
export interface ReportViewFilters {
|
|
67
|
+
period: string;
|
|
68
|
+
clauses: FilterClause[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* A saved report view: a preset dashboard with a period and filters, under a name. The shared
|
|
72
|
+
* `SavedView` shape; `layout` is always `"report"` and the dashboard rides in its own column,
|
|
73
|
+
* because the list of dashboards is discovered, not fixed.
|
|
74
|
+
*/
|
|
75
|
+
export type ReportView = SavedView<ReportViewFilters, "report"> & {
|
|
76
|
+
dashboardKey: string;
|
|
77
|
+
};
|
|
78
|
+
export declare const REPORT_VIEW_LAYOUTS: readonly ["report"];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SlaMetric } from '../sla/types';
|
|
1
2
|
import { DimensionId } from './dimensions';
|
|
2
3
|
/**
|
|
3
4
|
* Metric register — the declarative building block. Fixed in code as a typed `const` in the owning app
|
|
@@ -13,6 +14,15 @@ export type MetricAggregation = "sum" | "avg" | "rate" | "distinct" | "p50" | "p
|
|
|
13
14
|
* conversations is more work, not better work, so its delta stays grey.
|
|
14
15
|
*/
|
|
15
16
|
export type MetricPolarity = "higher" | "lower" | "neutral";
|
|
17
|
+
/**
|
|
18
|
+
* Where the goal for a metric lives. Only SLA targets today: the minutes an SLA
|
|
19
|
+
* profile sets for one of its metrics. A report shows the goal only when exactly
|
|
20
|
+
* one profile applies — picking between several would be a guess.
|
|
21
|
+
*/
|
|
22
|
+
export type MetricTarget = {
|
|
23
|
+
kind: "sla";
|
|
24
|
+
metric: SlaMetric;
|
|
25
|
+
};
|
|
16
26
|
export interface MetricDefinition {
|
|
17
27
|
/**
|
|
18
28
|
* Globally-unique, app-namespaced id: "<source>.<family>.<name>", e.g. "comms.reply_time.first",
|
|
@@ -42,4 +52,6 @@ export interface MetricDefinition {
|
|
|
42
52
|
hidden?: boolean;
|
|
43
53
|
/** Good direction for a delta. Omitted = the analytics app guesses from id and aggregation. */
|
|
44
54
|
polarity?: MetricPolarity;
|
|
55
|
+
/** The goal this metric is measured against, if any (a duration metric against an SLA target). */
|
|
56
|
+
target?: MetricTarget;
|
|
45
57
|
}
|
|
@@ -7,6 +7,11 @@ export interface EventAttendee {
|
|
|
7
7
|
response?: AttendeeResponse;
|
|
8
8
|
optional?: boolean;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* An online meeting on the event. **Without a `joinUrl` it is a request**: the calendar's own
|
|
12
|
+
* provider creates its native meeting (Teams, Meet) and the next sync fills in the link — so the
|
|
13
|
+
* UI never has to know which provider hosts the calendar.
|
|
14
|
+
*/
|
|
10
15
|
export interface EventConferencing {
|
|
11
16
|
provider: "teams" | "meet" | "zoom" | "other";
|
|
12
17
|
joinUrl: string;
|
|
@@ -8,6 +8,8 @@ export interface Inbox {
|
|
|
8
8
|
teamId?: string;
|
|
9
9
|
ticketEnabled?: boolean;
|
|
10
10
|
ticketPrefix?: string;
|
|
11
|
+
/** Last ticket number issued; server-owned. */
|
|
12
|
+
ticketCounter?: number;
|
|
11
13
|
/**
|
|
12
14
|
* Hours a first reply may take in this inbox before a conversation counts as at risk.
|
|
13
15
|
*
|
|
@@ -58,12 +58,6 @@ export interface InteractionSource {
|
|
|
58
58
|
externalId?: string;
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
-
export interface InteractionLink {
|
|
62
|
-
url?: string;
|
|
63
|
-
providerId?: string;
|
|
64
|
-
externalId?: string;
|
|
65
|
-
title: string;
|
|
66
|
-
}
|
|
67
61
|
export interface Interaction {
|
|
68
62
|
id: string;
|
|
69
63
|
organizationId: string;
|
|
@@ -116,7 +110,6 @@ export interface Interaction {
|
|
|
116
110
|
partyKeys?: string[];
|
|
117
111
|
source?: InteractionSource;
|
|
118
112
|
tags: string[];
|
|
119
|
-
links: InteractionLink[];
|
|
120
113
|
externalIds?: string[];
|
|
121
114
|
collaborators: string[];
|
|
122
115
|
seenBy?: string[];
|
|
@@ -133,16 +126,6 @@ export interface Interaction {
|
|
|
133
126
|
* analytics metric (firstResponseAt - createdAt). Absent = no reply yet.
|
|
134
127
|
*/
|
|
135
128
|
firstResponseAt?: number;
|
|
136
|
-
/**
|
|
137
|
-
* Provider-side folder this thread is archived under (mail). Set by the sync (folder membership
|
|
138
|
-
* of already-engaged threads) and by `folder.move`. Drives the Folders nav filter and the two-way
|
|
139
|
-
* move. Absent = not in a specific folder (or a provider without folder capability).
|
|
140
|
-
*/
|
|
141
|
-
folderRef?: {
|
|
142
|
-
channelId: string;
|
|
143
|
-
folderId: string;
|
|
144
|
-
name: string;
|
|
145
|
-
};
|
|
146
129
|
/**
|
|
147
130
|
* Epoch ms until which the interaction is snoozed. While `snoozedTill > now` the interaction is
|
|
148
131
|
* filtered out of the list (its status is then "snoozed"). A cron job wakes expired snoozes: sets
|