clarion-shared-types 1.0.116 → 1.0.118
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/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-enums.js +4 -0
- package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-enums.js.map +1 -1
- package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-display.util.js +4 -0
- package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-display.util.js.map +1 -1
- package/dist/cjs/modules/incident/enums/incident-actions.enum.js +4 -0
- package/dist/cjs/modules/incident/enums/incident-actions.enum.js.map +1 -1
- package/dist/cjs/modules/incident-sla/enums/incident-sla-enums.js +241 -0
- package/dist/cjs/modules/incident-sla/enums/incident-sla-enums.js.map +1 -0
- package/dist/cjs/modules/incident-sla/index.js +23 -0
- package/dist/cjs/modules/incident-sla/index.js.map +1 -0
- package/dist/cjs/modules/incident-sla/interfaces/incident-sla.dto.js +32 -0
- package/dist/cjs/modules/incident-sla/interfaces/incident-sla.dto.js.map +1 -0
- package/dist/cjs/modules/incident-sla/utils/incident-sla-display.util.js +337 -0
- package/dist/cjs/modules/incident-sla/utils/incident-sla-display.util.js.map +1 -0
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js +8 -0
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js +1 -0
- package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/dispatch/enums/response-unit-dispatch-enums.js +4 -0
- package/dist/esm/modules/dispatch/enums/response-unit-dispatch-enums.js.map +1 -1
- package/dist/esm/modules/dispatch/utils/response-unit-dispatch-display.util.js +4 -0
- package/dist/esm/modules/dispatch/utils/response-unit-dispatch-display.util.js.map +1 -1
- package/dist/esm/modules/incident/enums/incident-actions.enum.js +4 -0
- package/dist/esm/modules/incident/enums/incident-actions.enum.js.map +1 -1
- package/dist/esm/modules/incident-sla/enums/incident-sla-enums.js +238 -0
- package/dist/esm/modules/incident-sla/enums/incident-sla-enums.js.map +1 -0
- package/dist/esm/modules/incident-sla/index.js +7 -0
- package/dist/esm/modules/incident-sla/index.js.map +1 -0
- package/dist/esm/modules/incident-sla/interfaces/incident-sla.dto.js +29 -0
- package/dist/esm/modules/incident-sla/interfaces/incident-sla.dto.js.map +1 -0
- package/dist/esm/modules/incident-sla/utils/incident-sla-display.util.js +326 -0
- package/dist/esm/modules/incident-sla/utils/incident-sla-display.util.js.map +1 -0
- package/dist/esm/modules/permission/enums/permission-actions.enum.js +8 -0
- package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/esm/modules/permission/enums/permissions-moudule.enum.js +1 -0
- package/dist/esm/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/modules/dispatch/enums/response-unit-dispatch-enums.d.ts +6 -2
- package/dist/types/modules/dispatch/interfaces/response-unit-dispatch.dto.d.ts +4 -0
- package/dist/types/modules/incident/enums/incident-actions.enum.d.ts +4 -0
- package/dist/types/modules/incident-sla/enums/incident-sla-enums.d.ts +210 -0
- package/dist/types/modules/incident-sla/index.d.ts +3 -0
- package/dist/types/modules/incident-sla/interfaces/incident-sla.dto.d.ts +656 -0
- package/dist/types/modules/incident-sla/utils/incident-sla-display.util.d.ts +55 -0
- package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +6 -0
- package/dist/types/modules/permission/enums/permissions-moudule.enum.d.ts +2 -1
- package/package.json +45 -45
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Emergency incident SLA - the admin's copy of grm-shared-library's
|
|
3
|
+
* incident-sla enums. Same names, same values; the `__tests__` spec pins the
|
|
4
|
+
* values so a drift fails a build rather than a screen.
|
|
5
|
+
*/
|
|
6
|
+
/** The milestones an emergency is measured against, each with its own clock. */
|
|
7
|
+
export var IncidentSlaStage;
|
|
8
|
+
(function (IncidentSlaStage) {
|
|
9
|
+
IncidentSlaStage["ACKNOWLEDGEMENT"] = "ACKNOWLEDGEMENT";
|
|
10
|
+
IncidentSlaStage["TRIAGE"] = "TRIAGE";
|
|
11
|
+
IncidentSlaStage["DISPATCH"] = "DISPATCH";
|
|
12
|
+
IncidentSlaStage["RESPONSE_UNIT_ACCEPTANCE"] = "RESPONSE_UNIT_ACCEPTANCE";
|
|
13
|
+
IncidentSlaStage["MOBILIZATION"] = "MOBILIZATION";
|
|
14
|
+
IncidentSlaStage["ARRIVAL"] = "ARRIVAL";
|
|
15
|
+
IncidentSlaStage["INITIAL_ASSESSMENT"] = "INITIAL_ASSESSMENT";
|
|
16
|
+
IncidentSlaStage["RESOLUTION"] = "RESOLUTION";
|
|
17
|
+
IncidentSlaStage["CLOSURE"] = "CLOSURE";
|
|
18
|
+
})(IncidentSlaStage || (IncidentSlaStage = {}));
|
|
19
|
+
/** Where one SLA instance stands. BREACHED is permanent; an exception only changes how it counts. */
|
|
20
|
+
export var IncidentSlaStatus;
|
|
21
|
+
(function (IncidentSlaStatus) {
|
|
22
|
+
IncidentSlaStatus["NOT_STARTED"] = "NOT_STARTED";
|
|
23
|
+
IncidentSlaStatus["RUNNING"] = "RUNNING";
|
|
24
|
+
IncidentSlaStatus["WARNING"] = "WARNING";
|
|
25
|
+
IncidentSlaStatus["AT_RISK"] = "AT_RISK";
|
|
26
|
+
IncidentSlaStatus["PAUSED"] = "PAUSED";
|
|
27
|
+
IncidentSlaStatus["BREACHED"] = "BREACHED";
|
|
28
|
+
IncidentSlaStatus["MET"] = "MET";
|
|
29
|
+
IncidentSlaStatus["WAIVED"] = "WAIVED";
|
|
30
|
+
IncidentSlaStatus["CANCELLED"] = "CANCELLED";
|
|
31
|
+
IncidentSlaStatus["EXPIRED"] = "EXPIRED";
|
|
32
|
+
})(IncidentSlaStatus || (IncidentSlaStatus = {}));
|
|
33
|
+
/** The response's milestones (not the incident's status, which is unchanged). */
|
|
34
|
+
export var EmergencyIncidentStage;
|
|
35
|
+
(function (EmergencyIncidentStage) {
|
|
36
|
+
EmergencyIncidentStage["INCIDENT_CREATED"] = "INCIDENT_CREATED";
|
|
37
|
+
EmergencyIncidentStage["ACKNOWLEDGED"] = "ACKNOWLEDGED";
|
|
38
|
+
EmergencyIncidentStage["TRIAGED"] = "TRIAGED";
|
|
39
|
+
EmergencyIncidentStage["DISPATCH_INITIATED"] = "DISPATCH_INITIATED";
|
|
40
|
+
EmergencyIncidentStage["RESPONSE_UNIT_ASSIGNED"] = "RESPONSE_UNIT_ASSIGNED";
|
|
41
|
+
EmergencyIncidentStage["RESPONSE_UNIT_ACCEPTED"] = "RESPONSE_UNIT_ACCEPTED";
|
|
42
|
+
EmergencyIncidentStage["EN_ROUTE"] = "EN_ROUTE";
|
|
43
|
+
EmergencyIncidentStage["ON_SCENE"] = "ON_SCENE";
|
|
44
|
+
EmergencyIncidentStage["STABILIZING"] = "STABILIZING";
|
|
45
|
+
EmergencyIncidentStage["RESOLVED"] = "RESOLVED";
|
|
46
|
+
EmergencyIncidentStage["CLOSED"] = "CLOSED";
|
|
47
|
+
})(EmergencyIncidentStage || (EmergencyIncidentStage = {}));
|
|
48
|
+
export var IncidentSlaEventType;
|
|
49
|
+
(function (IncidentSlaEventType) {
|
|
50
|
+
IncidentSlaEventType["SLA_STARTED"] = "SLA_STARTED";
|
|
51
|
+
IncidentSlaEventType["SLA_WARNING"] = "SLA_WARNING";
|
|
52
|
+
IncidentSlaEventType["SLA_AT_RISK"] = "SLA_AT_RISK";
|
|
53
|
+
IncidentSlaEventType["SLA_BREACHED"] = "SLA_BREACHED";
|
|
54
|
+
IncidentSlaEventType["SLA_MET"] = "SLA_MET";
|
|
55
|
+
IncidentSlaEventType["SLA_COMPLETED_LATE"] = "SLA_COMPLETED_LATE";
|
|
56
|
+
IncidentSlaEventType["SLA_CANCELLED"] = "SLA_CANCELLED";
|
|
57
|
+
IncidentSlaEventType["SLA_EXPIRED"] = "SLA_EXPIRED";
|
|
58
|
+
IncidentSlaEventType["SLA_WAIVED"] = "SLA_WAIVED";
|
|
59
|
+
IncidentSlaEventType["SLA_PAUSE_REQUESTED"] = "SLA_PAUSE_REQUESTED";
|
|
60
|
+
IncidentSlaEventType["SLA_PAUSE_REJECTED"] = "SLA_PAUSE_REJECTED";
|
|
61
|
+
IncidentSlaEventType["SLA_PAUSED"] = "SLA_PAUSED";
|
|
62
|
+
IncidentSlaEventType["SLA_RESUMED"] = "SLA_RESUMED";
|
|
63
|
+
IncidentSlaEventType["SLA_EXCEPTION_REQUESTED"] = "SLA_EXCEPTION_REQUESTED";
|
|
64
|
+
IncidentSlaEventType["SLA_EXCEPTION_APPROVED"] = "SLA_EXCEPTION_APPROVED";
|
|
65
|
+
IncidentSlaEventType["SLA_EXCEPTION_REJECTED"] = "SLA_EXCEPTION_REJECTED";
|
|
66
|
+
IncidentSlaEventType["MILESTONE_RECORDED"] = "MILESTONE_RECORDED";
|
|
67
|
+
IncidentSlaEventType["PRIORITY_TRIAGED"] = "PRIORITY_TRIAGED";
|
|
68
|
+
IncidentSlaEventType["ETA_CHANGED"] = "ETA_CHANGED";
|
|
69
|
+
IncidentSlaEventType["ARRIVAL_INFERRED"] = "ARRIVAL_INFERRED";
|
|
70
|
+
IncidentSlaEventType["ARRIVAL_CONFIRMED"] = "ARRIVAL_CONFIRMED";
|
|
71
|
+
IncidentSlaEventType["UNIT_RECOMMENDED"] = "UNIT_RECOMMENDED";
|
|
72
|
+
IncidentSlaEventType["UNIT_REASSIGNED"] = "UNIT_REASSIGNED";
|
|
73
|
+
IncidentSlaEventType["ESCALATED"] = "ESCALATED";
|
|
74
|
+
IncidentSlaEventType["NOTIFICATION_SENT"] = "NOTIFICATION_SENT";
|
|
75
|
+
IncidentSlaEventType["NOTIFICATION_FAILED"] = "NOTIFICATION_FAILED";
|
|
76
|
+
IncidentSlaEventType["AUTO_CLOSE_DEFERRED"] = "AUTO_CLOSE_DEFERRED";
|
|
77
|
+
IncidentSlaEventType["INCIDENT_AUTO_CLOSED"] = "INCIDENT_AUTO_CLOSED";
|
|
78
|
+
IncidentSlaEventType["INCIDENT_CLOSED"] = "INCIDENT_CLOSED";
|
|
79
|
+
})(IncidentSlaEventType || (IncidentSlaEventType = {}));
|
|
80
|
+
export var IncidentActorType;
|
|
81
|
+
(function (IncidentActorType) {
|
|
82
|
+
IncidentActorType["CONTROL_CENTRE"] = "CONTROL_CENTRE";
|
|
83
|
+
IncidentActorType["RESPONDER"] = "RESPONDER";
|
|
84
|
+
IncidentActorType["SYSTEM"] = "SYSTEM";
|
|
85
|
+
IncidentActorType["TRACKING"] = "TRACKING";
|
|
86
|
+
IncidentActorType["REPORTER"] = "REPORTER";
|
|
87
|
+
IncidentActorType["PARTNER"] = "PARTNER";
|
|
88
|
+
})(IncidentActorType || (IncidentActorType = {}));
|
|
89
|
+
export var IncidentSlaEventSource;
|
|
90
|
+
(function (IncidentSlaEventSource) {
|
|
91
|
+
IncidentSlaEventSource["CONTROL_ROOM"] = "CONTROL_ROOM";
|
|
92
|
+
IncidentSlaEventSource["RESPONDER_APP"] = "RESPONDER_APP";
|
|
93
|
+
IncidentSlaEventSource["WORKFLOW"] = "WORKFLOW";
|
|
94
|
+
IncidentSlaEventSource["TRACKING"] = "TRACKING";
|
|
95
|
+
IncidentSlaEventSource["INCIDENT_LIFECYCLE"] = "INCIDENT_LIFECYCLE";
|
|
96
|
+
IncidentSlaEventSource["DISPATCH"] = "DISPATCH";
|
|
97
|
+
IncidentSlaEventSource["PARTNER"] = "PARTNER";
|
|
98
|
+
IncidentSlaEventSource["NOTIFICATION"] = "NOTIFICATION";
|
|
99
|
+
IncidentSlaEventSource["SYSTEM"] = "SYSTEM";
|
|
100
|
+
})(IncidentSlaEventSource || (IncidentSlaEventSource = {}));
|
|
101
|
+
export var SlaEscalationLevel;
|
|
102
|
+
(function (SlaEscalationLevel) {
|
|
103
|
+
SlaEscalationLevel["DISPATCHER"] = "DISPATCHER";
|
|
104
|
+
SlaEscalationLevel["SUPERVISOR"] = "SUPERVISOR";
|
|
105
|
+
SlaEscalationLevel["DUTY_MANAGER"] = "DUTY_MANAGER";
|
|
106
|
+
SlaEscalationLevel["ORGANIZATION_ADMIN"] = "ORGANIZATION_ADMIN";
|
|
107
|
+
})(SlaEscalationLevel || (SlaEscalationLevel = {}));
|
|
108
|
+
export var SlaEscalationTrigger;
|
|
109
|
+
(function (SlaEscalationTrigger) {
|
|
110
|
+
SlaEscalationTrigger["SLA_WARNING"] = "SLA_WARNING";
|
|
111
|
+
SlaEscalationTrigger["SLA_AT_RISK"] = "SLA_AT_RISK";
|
|
112
|
+
SlaEscalationTrigger["SLA_BREACHED"] = "SLA_BREACHED";
|
|
113
|
+
SlaEscalationTrigger["ETA_AT_RISK"] = "ETA_AT_RISK";
|
|
114
|
+
SlaEscalationTrigger["ETA_LIKELY_BREACH"] = "ETA_LIKELY_BREACH";
|
|
115
|
+
SlaEscalationTrigger["ETA_UNCERTAIN"] = "ETA_UNCERTAIN";
|
|
116
|
+
SlaEscalationTrigger["DISPATCH_REJECTED"] = "DISPATCH_REJECTED";
|
|
117
|
+
SlaEscalationTrigger["DISPATCH_CANCELLED"] = "DISPATCH_CANCELLED";
|
|
118
|
+
})(SlaEscalationTrigger || (SlaEscalationTrigger = {}));
|
|
119
|
+
export var SlaPauseReason;
|
|
120
|
+
(function (SlaPauseReason) {
|
|
121
|
+
SlaPauseReason["WAITING_FOR_CUSTOMER"] = "WAITING_FOR_CUSTOMER";
|
|
122
|
+
SlaPauseReason["WAITING_FOR_EXTERNAL_AGENCY"] = "WAITING_FOR_EXTERNAL_AGENCY";
|
|
123
|
+
SlaPauseReason["LOCATION_INACCESSIBLE"] = "LOCATION_INACCESSIBLE";
|
|
124
|
+
SlaPauseReason["ENVIRONMENT_UNSAFE"] = "ENVIRONMENT_UNSAFE";
|
|
125
|
+
SlaPauseReason["INCIDENT_DEESCALATED"] = "INCIDENT_DEESCALATED";
|
|
126
|
+
SlaPauseReason["OTHER_APPROVED_REASON"] = "OTHER_APPROVED_REASON";
|
|
127
|
+
})(SlaPauseReason || (SlaPauseReason = {}));
|
|
128
|
+
export var SlaPauseStatus;
|
|
129
|
+
(function (SlaPauseStatus) {
|
|
130
|
+
SlaPauseStatus["REQUESTED"] = "REQUESTED";
|
|
131
|
+
SlaPauseStatus["ACTIVE"] = "ACTIVE";
|
|
132
|
+
SlaPauseStatus["ENDED"] = "ENDED";
|
|
133
|
+
SlaPauseStatus["REJECTED"] = "REJECTED";
|
|
134
|
+
SlaPauseStatus["WITHDRAWN"] = "WITHDRAWN";
|
|
135
|
+
})(SlaPauseStatus || (SlaPauseStatus = {}));
|
|
136
|
+
export var SlaExceptionReason;
|
|
137
|
+
(function (SlaExceptionReason) {
|
|
138
|
+
SlaExceptionReason["ROAD_INACCESSIBLE"] = "ROAD_INACCESSIBLE";
|
|
139
|
+
SlaExceptionReason["SEVERE_WEATHER"] = "SEVERE_WEATHER";
|
|
140
|
+
SlaExceptionReason["CUSTOMER_UNREACHABLE"] = "CUSTOMER_UNREACHABLE";
|
|
141
|
+
SlaExceptionReason["INCORRECT_LOCATION"] = "INCORRECT_LOCATION";
|
|
142
|
+
SlaExceptionReason["EXTERNAL_AGENCY_DELAY"] = "EXTERNAL_AGENCY_DELAY";
|
|
143
|
+
SlaExceptionReason["SAFETY_HOLD"] = "SAFETY_HOLD";
|
|
144
|
+
SlaExceptionReason["SYSTEM_OUTAGE"] = "SYSTEM_OUTAGE";
|
|
145
|
+
SlaExceptionReason["OTHER"] = "OTHER";
|
|
146
|
+
})(SlaExceptionReason || (SlaExceptionReason = {}));
|
|
147
|
+
export var SlaExceptionStatus;
|
|
148
|
+
(function (SlaExceptionStatus) {
|
|
149
|
+
SlaExceptionStatus["NONE"] = "NONE";
|
|
150
|
+
SlaExceptionStatus["REQUESTED"] = "REQUESTED";
|
|
151
|
+
SlaExceptionStatus["APPROVED"] = "APPROVED";
|
|
152
|
+
SlaExceptionStatus["REJECTED"] = "REJECTED";
|
|
153
|
+
})(SlaExceptionStatus || (SlaExceptionStatus = {}));
|
|
154
|
+
export var SlaPolicyScope;
|
|
155
|
+
(function (SlaPolicyScope) {
|
|
156
|
+
SlaPolicyScope["PLATFORM"] = "PLATFORM";
|
|
157
|
+
SlaPolicyScope["ORGANIZATION"] = "ORGANIZATION";
|
|
158
|
+
SlaPolicyScope["CONTROL_CENTRE"] = "CONTROL_CENTRE";
|
|
159
|
+
SlaPolicyScope["INCIDENT_CATEGORY"] = "INCIDENT_CATEGORY";
|
|
160
|
+
SlaPolicyScope["INCIDENT_TYPE"] = "INCIDENT_TYPE";
|
|
161
|
+
SlaPolicyScope["PRIORITY"] = "PRIORITY";
|
|
162
|
+
SlaPolicyScope["ZONE"] = "ZONE";
|
|
163
|
+
})(SlaPolicyScope || (SlaPolicyScope = {}));
|
|
164
|
+
export var IncidentClosureReason;
|
|
165
|
+
(function (IncidentClosureReason) {
|
|
166
|
+
IncidentClosureReason["MANUAL"] = "MANUAL";
|
|
167
|
+
IncidentClosureReason["AUTO_CLOSED_AFTER_RESOLUTION_TIMEOUT"] = "AUTO_CLOSED_AFTER_RESOLUTION_TIMEOUT";
|
|
168
|
+
})(IncidentClosureReason || (IncidentClosureReason = {}));
|
|
169
|
+
export var IncidentArrivalSource;
|
|
170
|
+
(function (IncidentArrivalSource) {
|
|
171
|
+
IncidentArrivalSource["ARRIVAL_CONFIRMED_BY_RESPONDER"] = "ARRIVAL_CONFIRMED_BY_RESPONDER";
|
|
172
|
+
IncidentArrivalSource["ARRIVAL_CONFIRMED_BY_CONTROL_CENTRE"] = "ARRIVAL_CONFIRMED_BY_CONTROL_CENTRE";
|
|
173
|
+
IncidentArrivalSource["ARRIVAL_INFERRED_FROM_TRACKING"] = "ARRIVAL_INFERRED_FROM_TRACKING";
|
|
174
|
+
})(IncidentArrivalSource || (IncidentArrivalSource = {}));
|
|
175
|
+
export var EtaStatus;
|
|
176
|
+
(function (EtaStatus) {
|
|
177
|
+
EtaStatus["ON_TRACK"] = "ON_TRACK";
|
|
178
|
+
EtaStatus["AT_RISK"] = "AT_RISK";
|
|
179
|
+
EtaStatus["LIKELY_BREACH"] = "LIKELY_BREACH";
|
|
180
|
+
EtaStatus["UNCERTAIN"] = "UNCERTAIN";
|
|
181
|
+
EtaStatus["NO_TARGET"] = "NO_TARGET";
|
|
182
|
+
EtaStatus["ARRIVED"] = "ARRIVED";
|
|
183
|
+
})(EtaStatus || (EtaStatus = {}));
|
|
184
|
+
export var EtaBasis;
|
|
185
|
+
(function (EtaBasis) {
|
|
186
|
+
EtaBasis["ESTIMATE"] = "ESTIMATE";
|
|
187
|
+
EtaBasis["ROAD_ROUTE"] = "ROAD_ROUTE";
|
|
188
|
+
})(EtaBasis || (EtaBasis = {}));
|
|
189
|
+
export var SlaOverallState;
|
|
190
|
+
(function (SlaOverallState) {
|
|
191
|
+
SlaOverallState["NOT_TRACKED"] = "NOT_TRACKED";
|
|
192
|
+
SlaOverallState["ON_TRACK"] = "ON_TRACK";
|
|
193
|
+
SlaOverallState["WARNING"] = "WARNING";
|
|
194
|
+
SlaOverallState["AT_RISK"] = "AT_RISK";
|
|
195
|
+
SlaOverallState["BREACHED"] = "BREACHED";
|
|
196
|
+
SlaOverallState["PAUSED"] = "PAUSED";
|
|
197
|
+
SlaOverallState["MET"] = "MET";
|
|
198
|
+
SlaOverallState["EXCEPTION"] = "EXCEPTION";
|
|
199
|
+
})(SlaOverallState || (SlaOverallState = {}));
|
|
200
|
+
export var SlaPriorityLevel;
|
|
201
|
+
(function (SlaPriorityLevel) {
|
|
202
|
+
SlaPriorityLevel["P1"] = "P1";
|
|
203
|
+
SlaPriorityLevel["P2"] = "P2";
|
|
204
|
+
SlaPriorityLevel["P3"] = "P3";
|
|
205
|
+
SlaPriorityLevel["P4"] = "P4";
|
|
206
|
+
})(SlaPriorityLevel || (SlaPriorityLevel = {}));
|
|
207
|
+
export var IncidentSlaErrorCode;
|
|
208
|
+
(function (IncidentSlaErrorCode) {
|
|
209
|
+
IncidentSlaErrorCode["SLA_NOT_TRACKED"] = "SLA_NOT_TRACKED";
|
|
210
|
+
IncidentSlaErrorCode["SLA_INSTANCE_NOT_FOUND"] = "SLA_INSTANCE_NOT_FOUND";
|
|
211
|
+
IncidentSlaErrorCode["SLA_PAUSE_NOT_FOUND"] = "SLA_PAUSE_NOT_FOUND";
|
|
212
|
+
IncidentSlaErrorCode["SLA_POLICY_NOT_FOUND"] = "SLA_POLICY_NOT_FOUND";
|
|
213
|
+
IncidentSlaErrorCode["SLA_INVALID_STATE"] = "SLA_INVALID_STATE";
|
|
214
|
+
IncidentSlaErrorCode["SLA_APPROVER_REQUIRED"] = "SLA_APPROVER_REQUIRED";
|
|
215
|
+
IncidentSlaErrorCode["SLA_SELF_APPROVAL"] = "SLA_SELF_APPROVAL";
|
|
216
|
+
IncidentSlaErrorCode["SLA_POLICY_INVALID"] = "SLA_POLICY_INVALID";
|
|
217
|
+
IncidentSlaErrorCode["SLA_POLICY_FORBIDDEN"] = "SLA_POLICY_FORBIDDEN";
|
|
218
|
+
IncidentSlaErrorCode["INCIDENT_NOT_EMERGENCY"] = "INCIDENT_NOT_EMERGENCY";
|
|
219
|
+
IncidentSlaErrorCode["INCIDENT_ENDED"] = "INCIDENT_ENDED";
|
|
220
|
+
IncidentSlaErrorCode["SLA_ESCALATION_RULE_NOT_FOUND"] = "SLA_ESCALATION_RULE_NOT_FOUND";
|
|
221
|
+
})(IncidentSlaErrorCode || (IncidentSlaErrorCode = {}));
|
|
222
|
+
/** The channels an escalation rule reaches people through. */
|
|
223
|
+
export var SlaNotificationChannel;
|
|
224
|
+
(function (SlaNotificationChannel) {
|
|
225
|
+
/** The admin's in-app notification. */
|
|
226
|
+
SlaNotificationChannel["WEB"] = "WEB";
|
|
227
|
+
SlaNotificationChannel["SMS"] = "SMS";
|
|
228
|
+
SlaNotificationChannel["EMAIL"] = "EMAIL";
|
|
229
|
+
/** Mobile push. */
|
|
230
|
+
SlaNotificationChannel["PUSH"] = "PUSH";
|
|
231
|
+
})(SlaNotificationChannel || (SlaNotificationChannel = {}));
|
|
232
|
+
/** What an escalation rule does beside telling people. */
|
|
233
|
+
export var SlaEscalationAction;
|
|
234
|
+
(function (SlaEscalationAction) {
|
|
235
|
+
SlaEscalationAction["NOTIFY"] = "NOTIFY";
|
|
236
|
+
SlaEscalationAction["RECOMMEND_ALTERNATIVE"] = "RECOMMEND_ALTERNATIVE";
|
|
237
|
+
})(SlaEscalationAction || (SlaEscalationAction = {}));
|
|
238
|
+
//# sourceMappingURL=incident-sla-enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incident-sla-enums.js","sourceRoot":"","sources":["../../../../../src/modules/incident-sla/enums/incident-sla-enums.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/incident-sla/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,4BAA4B,CAAC;AAE3C,aAAa;AACb,cAAc,+BAA+B,CAAC;AAE9C,YAAY;AACZ,cAAc,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** The bounds the API enforces on a policy (grm-shared-library INCIDENT_SLA_LIMITS), for the admin's form. */
|
|
2
|
+
export const INCIDENT_SLA_POLICY_LIMITS = {
|
|
3
|
+
minTargetSeconds: 5,
|
|
4
|
+
maxTargetSeconds: 30 * 24 * 3600,
|
|
5
|
+
minThresholdPercent: 10,
|
|
6
|
+
maxThresholdPercent: 99,
|
|
7
|
+
minRadiusMetres: 10,
|
|
8
|
+
maxRadiusMetres: 5000,
|
|
9
|
+
maxDwellSeconds: 30 * 60,
|
|
10
|
+
maxObservations: 20,
|
|
11
|
+
minAccuracyMetres: 5,
|
|
12
|
+
maxAccuracyMetres: 5000,
|
|
13
|
+
minStaleSeconds: 15,
|
|
14
|
+
maxStaleSeconds: 2 * 3600,
|
|
15
|
+
maxEtaMarginPercent: 90,
|
|
16
|
+
minSpeedKph: 5,
|
|
17
|
+
maxSpeedKph: 150,
|
|
18
|
+
minRoadFactor: 1,
|
|
19
|
+
maxRoadFactor: 3,
|
|
20
|
+
minAutoCloseSeconds: 5 * 60,
|
|
21
|
+
maxAutoCloseSeconds: 30 * 24 * 3600,
|
|
22
|
+
maxEscalationDelaySeconds: 24 * 3600,
|
|
23
|
+
maxEscalationRules: 50,
|
|
24
|
+
maxEscalationContacts: 10,
|
|
25
|
+
policyNameMaxLength: 120,
|
|
26
|
+
policyDescriptionMaxLength: 1000,
|
|
27
|
+
ruleKeyMaxLength: 60,
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=incident-sla.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incident-sla.dto.js","sourceRoot":"","sources":["../../../../../src/modules/incident-sla/interfaces/incident-sla.dto.ts"],"names":[],"mappings":"AA0rBA,8GAA8G;AAC9G,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACtC,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAChC,mBAAmB,EAAE,EAAE;IACvB,mBAAmB,EAAE,EAAE;IACvB,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,EAAE,GAAG,EAAE;IACxB,eAAe,EAAE,EAAE;IACnB,iBAAiB,EAAE,CAAC;IACpB,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,CAAC,GAAG,IAAI;IACzB,mBAAmB,EAAE,EAAE;IACvB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,GAAG;IAChB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,mBAAmB,EAAE,CAAC,GAAG,EAAE;IAC3B,mBAAmB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACnC,yBAAyB,EAAE,EAAE,GAAG,IAAI;IACpC,kBAAkB,EAAE,EAAE;IACtB,qBAAqB,EAAE,EAAE;IACzB,mBAAmB,EAAE,GAAG;IACxB,0BAA0B,EAAE,IAAI;IAChC,gBAAgB,EAAE,EAAE;CACd,CAAC"}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
import { EmergencyIncidentStage, EtaStatus, IncidentActorType, IncidentArrivalSource, IncidentSlaEventType, IncidentSlaStage, IncidentSlaStatus, SlaExceptionReason, SlaExceptionStatus, SlaOverallState, SlaEscalationAction, SlaEscalationLevel, SlaEscalationTrigger, SlaNotificationChannel, SlaPauseReason, SlaPolicyScope, SlaPriorityLevel, } from '../enums/incident-sla-enums';
|
|
2
|
+
export const INCIDENT_SLA_STAGE_LABELS = {
|
|
3
|
+
[IncidentSlaStage.ACKNOWLEDGEMENT]: 'Acknowledgement',
|
|
4
|
+
[IncidentSlaStage.TRIAGE]: 'Triage',
|
|
5
|
+
[IncidentSlaStage.DISPATCH]: 'Dispatch',
|
|
6
|
+
[IncidentSlaStage.RESPONSE_UNIT_ACCEPTANCE]: 'Unit acceptance',
|
|
7
|
+
[IncidentSlaStage.MOBILIZATION]: 'Mobilization',
|
|
8
|
+
[IncidentSlaStage.ARRIVAL]: 'Arrival',
|
|
9
|
+
[IncidentSlaStage.INITIAL_ASSESSMENT]: 'Initial assessment',
|
|
10
|
+
[IncidentSlaStage.RESOLUTION]: 'Resolution',
|
|
11
|
+
[IncidentSlaStage.CLOSURE]: 'Closure',
|
|
12
|
+
};
|
|
13
|
+
export const INCIDENT_SLA_STATUS_LABELS = {
|
|
14
|
+
[IncidentSlaStatus.NOT_STARTED]: 'Not started',
|
|
15
|
+
[IncidentSlaStatus.RUNNING]: 'On track',
|
|
16
|
+
[IncidentSlaStatus.WARNING]: 'Warning',
|
|
17
|
+
[IncidentSlaStatus.AT_RISK]: 'At risk',
|
|
18
|
+
[IncidentSlaStatus.PAUSED]: 'Paused',
|
|
19
|
+
[IncidentSlaStatus.BREACHED]: 'Breached',
|
|
20
|
+
[IncidentSlaStatus.MET]: 'Met',
|
|
21
|
+
[IncidentSlaStatus.WAIVED]: 'Waived',
|
|
22
|
+
[IncidentSlaStatus.CANCELLED]: 'Not applicable',
|
|
23
|
+
[IncidentSlaStatus.EXPIRED]: 'Ended',
|
|
24
|
+
};
|
|
25
|
+
export const SLA_OVERALL_STATE_LABELS = {
|
|
26
|
+
[SlaOverallState.NOT_TRACKED]: 'Not tracked',
|
|
27
|
+
[SlaOverallState.ON_TRACK]: 'On track',
|
|
28
|
+
[SlaOverallState.WARNING]: 'Warning',
|
|
29
|
+
[SlaOverallState.AT_RISK]: 'At risk',
|
|
30
|
+
[SlaOverallState.BREACHED]: 'Breached',
|
|
31
|
+
[SlaOverallState.PAUSED]: 'Paused',
|
|
32
|
+
[SlaOverallState.MET]: 'Met',
|
|
33
|
+
[SlaOverallState.EXCEPTION]: 'Exception approved',
|
|
34
|
+
};
|
|
35
|
+
export const EMERGENCY_INCIDENT_STAGE_LABELS = {
|
|
36
|
+
[EmergencyIncidentStage.INCIDENT_CREATED]: 'Incident raised',
|
|
37
|
+
[EmergencyIncidentStage.ACKNOWLEDGED]: 'Acknowledged',
|
|
38
|
+
[EmergencyIncidentStage.TRIAGED]: 'Triaged',
|
|
39
|
+
[EmergencyIncidentStage.DISPATCH_INITIATED]: 'Dispatch initiated',
|
|
40
|
+
[EmergencyIncidentStage.RESPONSE_UNIT_ASSIGNED]: 'Unit assigned',
|
|
41
|
+
[EmergencyIncidentStage.RESPONSE_UNIT_ACCEPTED]: 'Unit accepted',
|
|
42
|
+
[EmergencyIncidentStage.EN_ROUTE]: 'En route',
|
|
43
|
+
[EmergencyIncidentStage.ON_SCENE]: 'On scene',
|
|
44
|
+
[EmergencyIncidentStage.STABILIZING]: 'Responding',
|
|
45
|
+
[EmergencyIncidentStage.RESOLVED]: 'Resolved',
|
|
46
|
+
[EmergencyIncidentStage.CLOSED]: 'Closed',
|
|
47
|
+
};
|
|
48
|
+
export const SLA_PAUSE_REASON_LABELS = {
|
|
49
|
+
[SlaPauseReason.WAITING_FOR_CUSTOMER]: 'Waiting for the customer',
|
|
50
|
+
[SlaPauseReason.WAITING_FOR_EXTERNAL_AGENCY]: 'Waiting for an external agency',
|
|
51
|
+
[SlaPauseReason.LOCATION_INACCESSIBLE]: 'Location inaccessible',
|
|
52
|
+
[SlaPauseReason.ENVIRONMENT_UNSAFE]: 'Environment unsafe',
|
|
53
|
+
[SlaPauseReason.INCIDENT_DEESCALATED]: 'Incident de-escalated',
|
|
54
|
+
[SlaPauseReason.OTHER_APPROVED_REASON]: 'Other approved reason',
|
|
55
|
+
};
|
|
56
|
+
export const SLA_EXCEPTION_REASON_LABELS = {
|
|
57
|
+
[SlaExceptionReason.ROAD_INACCESSIBLE]: 'Road inaccessible',
|
|
58
|
+
[SlaExceptionReason.SEVERE_WEATHER]: 'Severe weather',
|
|
59
|
+
[SlaExceptionReason.CUSTOMER_UNREACHABLE]: 'Customer unreachable',
|
|
60
|
+
[SlaExceptionReason.INCORRECT_LOCATION]: 'Incorrect location given',
|
|
61
|
+
[SlaExceptionReason.EXTERNAL_AGENCY_DELAY]: 'External agency delay',
|
|
62
|
+
[SlaExceptionReason.SAFETY_HOLD]: 'Held back for safety',
|
|
63
|
+
[SlaExceptionReason.SYSTEM_OUTAGE]: 'System outage',
|
|
64
|
+
[SlaExceptionReason.OTHER]: 'Other',
|
|
65
|
+
};
|
|
66
|
+
export const SLA_EXCEPTION_STATUS_LABELS = {
|
|
67
|
+
[SlaExceptionStatus.NONE]: '',
|
|
68
|
+
[SlaExceptionStatus.REQUESTED]: 'Exception requested',
|
|
69
|
+
[SlaExceptionStatus.APPROVED]: 'Exception approved',
|
|
70
|
+
[SlaExceptionStatus.REJECTED]: 'Exception rejected',
|
|
71
|
+
};
|
|
72
|
+
export const ETA_STATUS_LABELS = {
|
|
73
|
+
[EtaStatus.ON_TRACK]: 'On track',
|
|
74
|
+
[EtaStatus.AT_RISK]: 'At risk',
|
|
75
|
+
[EtaStatus.LIKELY_BREACH]: 'Will be late',
|
|
76
|
+
[EtaStatus.UNCERTAIN]: 'Uncertain',
|
|
77
|
+
[EtaStatus.NO_TARGET]: 'No target',
|
|
78
|
+
[EtaStatus.ARRIVED]: 'Arrived',
|
|
79
|
+
};
|
|
80
|
+
export const INCIDENT_ARRIVAL_SOURCE_LABELS = {
|
|
81
|
+
[IncidentArrivalSource.ARRIVAL_CONFIRMED_BY_RESPONDER]: 'Confirmed by the responder',
|
|
82
|
+
[IncidentArrivalSource.ARRIVAL_CONFIRMED_BY_CONTROL_CENTRE]: 'Confirmed by the control room',
|
|
83
|
+
[IncidentArrivalSource.ARRIVAL_INFERRED_FROM_TRACKING]: 'Inferred from live tracking',
|
|
84
|
+
};
|
|
85
|
+
export const INCIDENT_ACTOR_TYPE_LABELS = {
|
|
86
|
+
[IncidentActorType.CONTROL_CENTRE]: 'Control room',
|
|
87
|
+
[IncidentActorType.RESPONDER]: 'Responder',
|
|
88
|
+
[IncidentActorType.SYSTEM]: 'System',
|
|
89
|
+
[IncidentActorType.TRACKING]: 'Live tracking',
|
|
90
|
+
[IncidentActorType.REPORTER]: 'Reporter',
|
|
91
|
+
[IncidentActorType.PARTNER]: 'Partner',
|
|
92
|
+
};
|
|
93
|
+
export const INCIDENT_SLA_EVENT_TYPE_LABELS = {
|
|
94
|
+
[IncidentSlaEventType.SLA_STARTED]: 'Clock started',
|
|
95
|
+
[IncidentSlaEventType.SLA_WARNING]: 'Warning',
|
|
96
|
+
[IncidentSlaEventType.SLA_AT_RISK]: 'At risk',
|
|
97
|
+
[IncidentSlaEventType.SLA_BREACHED]: 'Breached',
|
|
98
|
+
[IncidentSlaEventType.SLA_MET]: 'Met',
|
|
99
|
+
[IncidentSlaEventType.SLA_COMPLETED_LATE]: 'Reached late',
|
|
100
|
+
[IncidentSlaEventType.SLA_CANCELLED]: 'Not applicable',
|
|
101
|
+
[IncidentSlaEventType.SLA_EXPIRED]: 'Ended unreached',
|
|
102
|
+
[IncidentSlaEventType.SLA_WAIVED]: 'Waived',
|
|
103
|
+
[IncidentSlaEventType.SLA_PAUSE_REQUESTED]: 'Pause requested',
|
|
104
|
+
[IncidentSlaEventType.SLA_PAUSE_REJECTED]: 'Pause rejected',
|
|
105
|
+
[IncidentSlaEventType.SLA_PAUSED]: 'Paused',
|
|
106
|
+
[IncidentSlaEventType.SLA_RESUMED]: 'Resumed',
|
|
107
|
+
[IncidentSlaEventType.SLA_EXCEPTION_REQUESTED]: 'Exception requested',
|
|
108
|
+
[IncidentSlaEventType.SLA_EXCEPTION_APPROVED]: 'Exception approved',
|
|
109
|
+
[IncidentSlaEventType.SLA_EXCEPTION_REJECTED]: 'Exception rejected',
|
|
110
|
+
[IncidentSlaEventType.MILESTONE_RECORDED]: 'Milestone',
|
|
111
|
+
[IncidentSlaEventType.PRIORITY_TRIAGED]: 'Priority set at triage',
|
|
112
|
+
[IncidentSlaEventType.ETA_CHANGED]: 'ETA changed',
|
|
113
|
+
[IncidentSlaEventType.ARRIVAL_INFERRED]: 'Arrival inferred from tracking',
|
|
114
|
+
[IncidentSlaEventType.ARRIVAL_CONFIRMED]: 'Arrival confirmed',
|
|
115
|
+
[IncidentSlaEventType.UNIT_RECOMMENDED]: 'Alternative unit recommended',
|
|
116
|
+
[IncidentSlaEventType.UNIT_REASSIGNED]: 'Unit reassigned',
|
|
117
|
+
[IncidentSlaEventType.ESCALATED]: 'Escalated',
|
|
118
|
+
[IncidentSlaEventType.NOTIFICATION_SENT]: 'Notification sent',
|
|
119
|
+
[IncidentSlaEventType.NOTIFICATION_FAILED]: 'Notification failed',
|
|
120
|
+
[IncidentSlaEventType.AUTO_CLOSE_DEFERRED]: 'Automatic closure deferred',
|
|
121
|
+
[IncidentSlaEventType.INCIDENT_AUTO_CLOSED]: 'Closed automatically',
|
|
122
|
+
[IncidentSlaEventType.INCIDENT_CLOSED]: 'Closed',
|
|
123
|
+
};
|
|
124
|
+
/** The colour of an instance's status chip. */
|
|
125
|
+
export function incidentSlaStatusTone(status, exceptionStatus) {
|
|
126
|
+
switch (status) {
|
|
127
|
+
case IncidentSlaStatus.MET:
|
|
128
|
+
return 'success';
|
|
129
|
+
case IncidentSlaStatus.RUNNING:
|
|
130
|
+
return 'info';
|
|
131
|
+
case IncidentSlaStatus.WARNING:
|
|
132
|
+
case IncidentSlaStatus.AT_RISK:
|
|
133
|
+
return 'warning';
|
|
134
|
+
case IncidentSlaStatus.BREACHED:
|
|
135
|
+
return exceptionStatus === SlaExceptionStatus.APPROVED ? 'accent' : 'error';
|
|
136
|
+
case IncidentSlaStatus.PAUSED:
|
|
137
|
+
return 'primary';
|
|
138
|
+
default:
|
|
139
|
+
return 'grey';
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
export function slaOverallStateTone(state) {
|
|
143
|
+
switch (state) {
|
|
144
|
+
case SlaOverallState.ON_TRACK:
|
|
145
|
+
return 'info';
|
|
146
|
+
case SlaOverallState.MET:
|
|
147
|
+
return 'success';
|
|
148
|
+
case SlaOverallState.WARNING:
|
|
149
|
+
case SlaOverallState.AT_RISK:
|
|
150
|
+
return 'warning';
|
|
151
|
+
case SlaOverallState.BREACHED:
|
|
152
|
+
return 'error';
|
|
153
|
+
case SlaOverallState.PAUSED:
|
|
154
|
+
return 'primary';
|
|
155
|
+
case SlaOverallState.EXCEPTION:
|
|
156
|
+
return 'accent';
|
|
157
|
+
default:
|
|
158
|
+
return 'grey';
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
export function etaStatusTone(status) {
|
|
162
|
+
switch (status) {
|
|
163
|
+
case EtaStatus.ON_TRACK:
|
|
164
|
+
case EtaStatus.ARRIVED:
|
|
165
|
+
return 'success';
|
|
166
|
+
case EtaStatus.AT_RISK:
|
|
167
|
+
return 'warning';
|
|
168
|
+
case EtaStatus.LIKELY_BREACH:
|
|
169
|
+
return 'error';
|
|
170
|
+
default:
|
|
171
|
+
return 'grey';
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/** "01:12", "12:05", "1:05:00", and overdue as "+00:45". */
|
|
175
|
+
export function formatSlaClock(seconds) {
|
|
176
|
+
if (seconds === null || seconds === undefined || !Number.isFinite(seconds))
|
|
177
|
+
return '';
|
|
178
|
+
const overdue = seconds < 0;
|
|
179
|
+
const total = Math.abs(Math.round(seconds));
|
|
180
|
+
const h = Math.floor(total / 3600);
|
|
181
|
+
const m = Math.floor((total % 3600) / 60);
|
|
182
|
+
const s = total % 60;
|
|
183
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
184
|
+
const body = h > 0 ? `${h}:${pad(m)}:${pad(s)}` : `${pad(m)}:${pad(s)}`;
|
|
185
|
+
return overdue ? `+${body}` : body;
|
|
186
|
+
}
|
|
187
|
+
/** "15 sec", "2 min", "1 h 30 min", "1 d 2 h". */
|
|
188
|
+
export function formatSlaTarget(seconds) {
|
|
189
|
+
if (seconds === null || seconds === undefined || !Number.isFinite(seconds))
|
|
190
|
+
return '';
|
|
191
|
+
const value = Math.max(0, Math.round(seconds));
|
|
192
|
+
if (value < 60)
|
|
193
|
+
return `${value} sec`;
|
|
194
|
+
if (value < 3600)
|
|
195
|
+
return value % 60 === 0 ? `${value / 60} min` : `${Math.floor(value / 60)} min ${value % 60} sec`;
|
|
196
|
+
if (value < 86400) {
|
|
197
|
+
const minutes = Math.round((value % 3600) / 60);
|
|
198
|
+
return minutes ? `${Math.floor(value / 3600)} h ${minutes} min` : `${Math.floor(value / 3600)} h`;
|
|
199
|
+
}
|
|
200
|
+
const hours = Math.round((value % 86400) / 3600);
|
|
201
|
+
return hours ? `${Math.floor(value / 86400)} d ${hours} h` : `${Math.floor(value / 86400)} d`;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Seconds left on an instance at the browser's `nowMs`, corrected for the
|
|
205
|
+
* difference between the server's clock and the browser's (`skewMs` = server -
|
|
206
|
+
* browser, measured when the summary arrived). Null when its clock is not
|
|
207
|
+
* running. Display only - the server decides every transition.
|
|
208
|
+
*/
|
|
209
|
+
export function liveRemainingSeconds(instance, nowMs, skewMs = 0) {
|
|
210
|
+
const running = instance.status === IncidentSlaStatus.RUNNING || instance.status === IncidentSlaStatus.WARNING || instance.status === IncidentSlaStatus.AT_RISK || instance.status === IncidentSlaStatus.BREACHED;
|
|
211
|
+
if (!running || !instance.deadlineAt)
|
|
212
|
+
return null;
|
|
213
|
+
return Math.round((Date.parse(instance.deadlineAt) - (nowMs + skewMs)) / 1000);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* The status an open instance shows at `nowMs`: what the server said, or the
|
|
217
|
+
* next threshold if the clock has passed it since (the server's own event
|
|
218
|
+
* follows within seconds). Never goes backwards.
|
|
219
|
+
*/
|
|
220
|
+
export function liveIncidentSlaStatus(instance, nowMs, skewMs = 0) {
|
|
221
|
+
const order = [IncidentSlaStatus.RUNNING, IncidentSlaStatus.WARNING, IncidentSlaStatus.AT_RISK, IncidentSlaStatus.BREACHED];
|
|
222
|
+
const rank = order.indexOf(instance.status);
|
|
223
|
+
if (rank < 0 || instance.completedAt)
|
|
224
|
+
return instance.status;
|
|
225
|
+
const t = nowMs + skewMs;
|
|
226
|
+
let byTime = 0;
|
|
227
|
+
if (instance.deadlineAt && t >= Date.parse(instance.deadlineAt))
|
|
228
|
+
byTime = 3;
|
|
229
|
+
else if (instance.atRiskAt && t >= Date.parse(instance.atRiskAt))
|
|
230
|
+
byTime = 2;
|
|
231
|
+
else if (instance.warningAt && t >= Date.parse(instance.warningAt))
|
|
232
|
+
byTime = 1;
|
|
233
|
+
return order[Math.max(rank, byTime)];
|
|
234
|
+
}
|
|
235
|
+
/** Statuses whose clock is running (or paused). */
|
|
236
|
+
export function isOpenIncidentSlaStatus(status) {
|
|
237
|
+
return status === IncidentSlaStatus.RUNNING || status === IncidentSlaStatus.WARNING || status === IncidentSlaStatus.AT_RISK || status === IncidentSlaStatus.PAUSED;
|
|
238
|
+
}
|
|
239
|
+
/** Stages in the order an emergency goes through them. */
|
|
240
|
+
export const INCIDENT_SLA_STAGE_ORDER = [
|
|
241
|
+
IncidentSlaStage.ACKNOWLEDGEMENT,
|
|
242
|
+
IncidentSlaStage.TRIAGE,
|
|
243
|
+
IncidentSlaStage.DISPATCH,
|
|
244
|
+
IncidentSlaStage.RESPONSE_UNIT_ACCEPTANCE,
|
|
245
|
+
IncidentSlaStage.MOBILIZATION,
|
|
246
|
+
IncidentSlaStage.ARRIVAL,
|
|
247
|
+
IncidentSlaStage.INITIAL_ASSESSMENT,
|
|
248
|
+
IncidentSlaStage.RESOLUTION,
|
|
249
|
+
IncidentSlaStage.CLOSURE,
|
|
250
|
+
];
|
|
251
|
+
export const SLA_ESCALATION_TRIGGER_LABELS = {
|
|
252
|
+
[SlaEscalationTrigger.SLA_WARNING]: 'Stage at its warning mark',
|
|
253
|
+
[SlaEscalationTrigger.SLA_AT_RISK]: 'Stage at risk',
|
|
254
|
+
[SlaEscalationTrigger.SLA_BREACHED]: 'Stage breached',
|
|
255
|
+
[SlaEscalationTrigger.ETA_AT_RISK]: 'Arrival ETA at risk',
|
|
256
|
+
[SlaEscalationTrigger.ETA_LIKELY_BREACH]: 'Unit predicted late',
|
|
257
|
+
[SlaEscalationTrigger.ETA_UNCERTAIN]: 'Unit stopped reporting its position',
|
|
258
|
+
[SlaEscalationTrigger.DISPATCH_REJECTED]: 'Unit declined',
|
|
259
|
+
[SlaEscalationTrigger.DISPATCH_CANCELLED]: 'Unit stood down',
|
|
260
|
+
};
|
|
261
|
+
export const SLA_ESCALATION_LEVEL_LABELS = {
|
|
262
|
+
[SlaEscalationLevel.DISPATCHER]: 'Dispatchers',
|
|
263
|
+
[SlaEscalationLevel.SUPERVISOR]: 'Supervisors',
|
|
264
|
+
[SlaEscalationLevel.DUTY_MANAGER]: 'Duty manager',
|
|
265
|
+
[SlaEscalationLevel.ORGANIZATION_ADMIN]: 'Organization admins',
|
|
266
|
+
};
|
|
267
|
+
export const SLA_NOTIFICATION_CHANNEL_LABELS = {
|
|
268
|
+
[SlaNotificationChannel.WEB]: 'In-app',
|
|
269
|
+
[SlaNotificationChannel.SMS]: 'SMS',
|
|
270
|
+
[SlaNotificationChannel.EMAIL]: 'Email',
|
|
271
|
+
[SlaNotificationChannel.PUSH]: 'Push',
|
|
272
|
+
};
|
|
273
|
+
export const SLA_ESCALATION_ACTION_LABELS = {
|
|
274
|
+
[SlaEscalationAction.NOTIFY]: 'Notify',
|
|
275
|
+
[SlaEscalationAction.RECOMMEND_ALTERNATIVE]: 'Suggest another unit',
|
|
276
|
+
};
|
|
277
|
+
export const SLA_POLICY_SCOPE_LABELS = {
|
|
278
|
+
[SlaPolicyScope.PLATFORM]: 'Platform',
|
|
279
|
+
[SlaPolicyScope.ORGANIZATION]: 'Organization',
|
|
280
|
+
[SlaPolicyScope.CONTROL_CENTRE]: 'Control centre',
|
|
281
|
+
[SlaPolicyScope.INCIDENT_CATEGORY]: 'Incident category',
|
|
282
|
+
[SlaPolicyScope.INCIDENT_TYPE]: 'Incident type',
|
|
283
|
+
[SlaPolicyScope.PRIORITY]: 'Priority',
|
|
284
|
+
[SlaPolicyScope.ZONE]: 'Zone',
|
|
285
|
+
};
|
|
286
|
+
/** The emergency notifications, as clarion-incident asks for them. */
|
|
287
|
+
export const EMERGENCY_NOTIFICATION_EVENT_LABELS = {
|
|
288
|
+
'emergency-created': 'Alert received (reporter)',
|
|
289
|
+
'emergency-acknowledged': 'Acknowledged (reporter)',
|
|
290
|
+
'emergency-dispatched': 'Help dispatched (reporter)',
|
|
291
|
+
'emergency-unit-assigned': 'Unit assigned',
|
|
292
|
+
'emergency-unit-en-route': 'Unit on the way (reporter)',
|
|
293
|
+
'emergency-arrived': 'Unit arrived (reporter)',
|
|
294
|
+
'emergency-at-risk': 'At risk (staff)',
|
|
295
|
+
'emergency-sla-breached': 'SLA breached (staff)',
|
|
296
|
+
'emergency-escalated': 'Escalated (staff)',
|
|
297
|
+
'emergency-resolved': 'Resolved (reporter)',
|
|
298
|
+
'emergency-closed': 'Closed (reporter)',
|
|
299
|
+
};
|
|
300
|
+
/** The SLA level of each priority (P1 = Critical ... P4 = Low). */
|
|
301
|
+
export const INCIDENT_PRIORITY_SLA_LEVEL = {
|
|
302
|
+
Critical: SlaPriorityLevel.P1,
|
|
303
|
+
High: SlaPriorityLevel.P2,
|
|
304
|
+
Medium: SlaPriorityLevel.P3,
|
|
305
|
+
Low: SlaPriorityLevel.P4,
|
|
306
|
+
};
|
|
307
|
+
/** What each policy setting means, for the policy editor. */
|
|
308
|
+
export const INCIDENT_SLA_SETTING_LABELS = {
|
|
309
|
+
warningThresholdPercent: { label: 'Warning at', unit: '% of target', help: 'When a clock turns amber.' },
|
|
310
|
+
atRiskThresholdPercent: { label: 'At risk at', unit: '% of target', help: 'When a clock turns red and dispatchers are told.' },
|
|
311
|
+
arrivalRadiusMetres: { label: 'Arrival radius', unit: 'm', help: 'A unit this close to the incident counts as at the scene.' },
|
|
312
|
+
arrivalExitRadiusMetres: { label: 'Exit radius', unit: 'm', help: 'A unit at the scene only leaves it beyond this.' },
|
|
313
|
+
arrivalDwellSeconds: { label: 'Dwell before arrival', unit: 'seconds', help: 'How long a unit must stay inside the radius.' },
|
|
314
|
+
arrivalMinObservations: { label: 'Positions inside the radius', unit: 'fixes', help: 'At least this many before an arrival is inferred.' },
|
|
315
|
+
maxLocationAccuracyMetres: { label: 'Worst usable accuracy', unit: 'm', help: 'A less accurate position never confirms an arrival.' },
|
|
316
|
+
trackingStaleSeconds: { label: 'Position goes stale after', unit: 'seconds', help: 'Then the ETA is uncertain and dispatchers are told.' },
|
|
317
|
+
etaAtRiskMarginPercent: { label: 'ETA at-risk margin', unit: '% of target', help: 'An ETA this close to the deadline is at risk.' },
|
|
318
|
+
etaAssumedSpeedKph: { label: 'Assumed speed', unit: 'km/h', help: 'For an estimated ETA (no road routing).' },
|
|
319
|
+
etaRoadFactor: { label: 'Road factor', unit: '× straight line', help: 'Straight-line distance to road distance.' },
|
|
320
|
+
autoCloseEnabled: { label: 'Close automatically', unit: '', help: 'Close an emergency some time after it is resolved.' },
|
|
321
|
+
autoCloseAfterSeconds: { label: 'Close after', unit: 'seconds', help: 'Resolved to closed (default 24 hours).' },
|
|
322
|
+
allowAutomaticReassignment: { label: 'Automatic reassignment', unit: '', help: 'Let the workflow send another unit by itself when one will be late. Off: the dispatcher decides.' },
|
|
323
|
+
pauseRequiresApproval: { label: 'Pauses need a supervisor', unit: '', help: 'A dispatcher\'s pause waits for an approver.' },
|
|
324
|
+
notifyReporter: { label: 'Tell the reporter', unit: '', help: 'Progress messages to the person who raised the emergency.' },
|
|
325
|
+
};
|
|
326
|
+
//# sourceMappingURL=incident-sla-display.util.js.map
|