clarion-shared-types 1.0.115 → 1.0.117
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 +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-enums.js +137 -0
- package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-enums.js.map +1 -0
- package/dist/cjs/modules/dispatch/index.js +23 -0
- package/dist/cjs/modules/dispatch/index.js.map +1 -0
- package/dist/cjs/modules/dispatch/interfaces/response-unit-dispatch.dto.js +3 -0
- package/dist/cjs/modules/dispatch/interfaces/response-unit-dispatch.dto.js.map +1 -0
- package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-display.util.js +202 -0
- package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-display.util.js.map +1 -0
- package/dist/cjs/modules/incident/enums/incident-actions.enum.js +6 -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 +225 -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 +3 -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 +250 -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 +14 -0
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js +2 -0
- package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
- package/dist/cjs/modules/response-unit/enums/response-unit/response-capability.enum.js +28 -0
- package/dist/cjs/modules/response-unit/enums/response-unit/response-capability.enum.js.map +1 -0
- package/dist/cjs/modules/response-unit/index.js +1 -0
- package/dist/cjs/modules/response-unit/index.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/dispatch/enums/response-unit-dispatch-enums.js +134 -0
- package/dist/esm/modules/dispatch/enums/response-unit-dispatch-enums.js.map +1 -0
- package/dist/esm/modules/dispatch/index.js +7 -0
- package/dist/esm/modules/dispatch/index.js.map +1 -0
- package/dist/esm/modules/dispatch/interfaces/response-unit-dispatch.dto.js +2 -0
- package/dist/esm/modules/dispatch/interfaces/response-unit-dispatch.dto.js.map +1 -0
- package/dist/esm/modules/dispatch/utils/response-unit-dispatch-display.util.js +192 -0
- package/dist/esm/modules/dispatch/utils/response-unit-dispatch-display.util.js.map +1 -0
- package/dist/esm/modules/incident/enums/incident-actions.enum.js +6 -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 +222 -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 +2 -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 +239 -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 +14 -0
- package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/esm/modules/permission/enums/permissions-moudule.enum.js +2 -0
- package/dist/esm/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
- package/dist/esm/modules/response-unit/enums/response-unit/response-capability.enum.js +25 -0
- package/dist/esm/modules/response-unit/enums/response-unit/response-capability.enum.js.map +1 -0
- package/dist/esm/modules/response-unit/index.js +1 -0
- package/dist/esm/modules/response-unit/index.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/modules/dispatch/enums/response-unit-dispatch-enums.d.ts +113 -0
- package/dist/types/modules/dispatch/index.d.ts +3 -0
- package/dist/types/modules/dispatch/interfaces/response-unit-dispatch.dto.d.ts +170 -0
- package/dist/types/modules/dispatch/utils/response-unit-dispatch-display.util.d.ts +30 -0
- package/dist/types/modules/incident/enums/incident-actions.enum.d.ts +6 -0
- package/dist/types/modules/incident/intefaces/incident-category.d.ts +6 -0
- package/dist/types/modules/incident/intefaces/incident-type.d.ts +6 -0
- package/dist/types/modules/incident-sla/enums/incident-sla-enums.d.ts +196 -0
- package/dist/types/modules/incident-sla/index.d.ts +3 -0
- package/dist/types/modules/incident-sla/interfaces/incident-sla.dto.d.ts +286 -0
- package/dist/types/modules/incident-sla/utils/incident-sla-display.util.d.ts +38 -0
- package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +9 -0
- package/dist/types/modules/permission/enums/permissions-moudule.enum.d.ts +3 -1
- package/dist/types/modules/response-unit/enums/response-unit/response-capability.enum.d.ts +22 -0
- package/dist/types/modules/response-unit/index.d.ts +1 -0
- package/dist/types/modules/response-unit/interfaces/response-unit/response-unit.d.ts +3 -0
- package/package.json +45 -45
package/dist/cjs/index.js
CHANGED
|
@@ -42,6 +42,8 @@ __exportStar(require("./modules/support/index"), exports);
|
|
|
42
42
|
__exportStar(require("./modules/safety/index"), exports);
|
|
43
43
|
__exportStar(require("./modules/billing/index"), exports);
|
|
44
44
|
__exportStar(require("./modules/newsfeed/index"), exports);
|
|
45
|
+
__exportStar(require("./modules/dispatch/index"), exports);
|
|
46
|
+
__exportStar(require("./modules/incident-sla/index"), exports);
|
|
45
47
|
// Interfaces
|
|
46
48
|
__exportStar(require("./modules/common/interfaces/server-message"), exports);
|
|
47
49
|
__exportStar(require("./modules/common/interfaces/pagination"), exports);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,UAAU;AACV,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,iEAA+C;AAC/C,gEAA8C;AAC9C,2DAAyC;AACzC,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,mEAAiD;AACjD,+DAA6C;AAC7C,uDAAqC;AACrC,0DAAwC;AACxC,2DAAyC;AACzC,8DAA4C;AAC5C,iEAA+C;AAC/C,+DAA6C;AAC7C,0DAAwC;AACxC,0DAAwC;AACxC,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,UAAU;AACV,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,iEAA+C;AAC/C,gEAA8C;AAC9C,2DAAyC;AACzC,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,mEAAiD;AACjD,+DAA6C;AAC7C,uDAAqC;AACrC,0DAAwC;AACxC,2DAAyC;AACzC,8DAA4C;AAC5C,iEAA+C;AAC/C,+DAA6C;AAC7C,0DAAwC;AACxC,0DAAwC;AACxC,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,2DAAyC;AACzC,+DAA6C;AAE7C,aAAa;AACb,6EAA2D;AAC3D,yEAAuD"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Response-unit recommendation and dispatch - the admin's copy of
|
|
4
|
+
* grm-shared-library's dispatch enums. Same names, same values; the
|
|
5
|
+
* `__tests__` spec pins the values so a drift fails a build rather than a
|
|
6
|
+
* screen.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ResponseUnitDispatchErrorCode = exports.ResponseUnitDispatchNotificationFailure = exports.ResponseUnitDispatchNotificationStatus = exports.IncidentDispatchBlocker = exports.ResponseUnitRecommendationStatus = exports.ResponseUnitRecommendationReason = exports.ResponseUnitDispatchConstraint = exports.ResponseUnitDistanceBasis = exports.ResponseUnitLocationFreshness = exports.ResponseUnitLocationSource = exports.ResponseCapabilityRequirementSource = exports.ResponseUnitCapabilityMatch = exports.ResponseUnitDispatchTransitionSource = exports.ResponseUnitDispatchStatus = void 0;
|
|
10
|
+
/** Where one unit is in answering one incident. ACTIVE = DISPATCHED..ON_SCENE. */
|
|
11
|
+
var ResponseUnitDispatchStatus;
|
|
12
|
+
(function (ResponseUnitDispatchStatus) {
|
|
13
|
+
ResponseUnitDispatchStatus["DISPATCHED"] = "DISPATCHED";
|
|
14
|
+
ResponseUnitDispatchStatus["ACKNOWLEDGED"] = "ACKNOWLEDGED";
|
|
15
|
+
ResponseUnitDispatchStatus["EN_ROUTE"] = "EN_ROUTE";
|
|
16
|
+
ResponseUnitDispatchStatus["ON_SCENE"] = "ON_SCENE";
|
|
17
|
+
ResponseUnitDispatchStatus["COMPLETED"] = "COMPLETED";
|
|
18
|
+
ResponseUnitDispatchStatus["CANCELLED"] = "CANCELLED";
|
|
19
|
+
/** The unit declined the job. Frees the unit, like CANCELLED. */
|
|
20
|
+
ResponseUnitDispatchStatus["REJECTED"] = "REJECTED";
|
|
21
|
+
})(ResponseUnitDispatchStatus || (exports.ResponseUnitDispatchStatus = ResponseUnitDispatchStatus = {}));
|
|
22
|
+
var ResponseUnitDispatchTransitionSource;
|
|
23
|
+
(function (ResponseUnitDispatchTransitionSource) {
|
|
24
|
+
ResponseUnitDispatchTransitionSource["DISPATCHER"] = "DISPATCHER";
|
|
25
|
+
ResponseUnitDispatchTransitionSource["INCIDENT_LIFECYCLE"] = "INCIDENT_LIFECYCLE";
|
|
26
|
+
ResponseUnitDispatchTransitionSource["RESPONDER"] = "RESPONDER";
|
|
27
|
+
ResponseUnitDispatchTransitionSource["WORKFLOW"] = "WORKFLOW";
|
|
28
|
+
/** Inferred from live tracking (arrival in the incident's geofence). */
|
|
29
|
+
ResponseUnitDispatchTransitionSource["TRACKING"] = "TRACKING";
|
|
30
|
+
})(ResponseUnitDispatchTransitionSource || (exports.ResponseUnitDispatchTransitionSource = ResponseUnitDispatchTransitionSource = {}));
|
|
31
|
+
var ResponseUnitCapabilityMatch;
|
|
32
|
+
(function (ResponseUnitCapabilityMatch) {
|
|
33
|
+
ResponseUnitCapabilityMatch["MATCH"] = "MATCH";
|
|
34
|
+
ResponseUnitCapabilityMatch["NOT_REQUIRED"] = "NOT_REQUIRED";
|
|
35
|
+
ResponseUnitCapabilityMatch["UNKNOWN"] = "UNKNOWN";
|
|
36
|
+
ResponseUnitCapabilityMatch["NOT_SUITED"] = "NOT_SUITED";
|
|
37
|
+
})(ResponseUnitCapabilityMatch || (exports.ResponseUnitCapabilityMatch = ResponseUnitCapabilityMatch = {}));
|
|
38
|
+
var ResponseCapabilityRequirementSource;
|
|
39
|
+
(function (ResponseCapabilityRequirementSource) {
|
|
40
|
+
ResponseCapabilityRequirementSource["INCIDENT_TYPE"] = "INCIDENT_TYPE";
|
|
41
|
+
ResponseCapabilityRequirementSource["INCIDENT_CATEGORY"] = "INCIDENT_CATEGORY";
|
|
42
|
+
ResponseCapabilityRequirementSource["NONE"] = "NONE";
|
|
43
|
+
})(ResponseCapabilityRequirementSource || (exports.ResponseCapabilityRequirementSource = ResponseCapabilityRequirementSource = {}));
|
|
44
|
+
var ResponseUnitLocationSource;
|
|
45
|
+
(function (ResponseUnitLocationSource) {
|
|
46
|
+
ResponseUnitLocationSource["LIVE"] = "LIVE";
|
|
47
|
+
ResponseUnitLocationSource["BASE"] = "BASE";
|
|
48
|
+
ResponseUnitLocationSource["NONE"] = "NONE";
|
|
49
|
+
})(ResponseUnitLocationSource || (exports.ResponseUnitLocationSource = ResponseUnitLocationSource = {}));
|
|
50
|
+
var ResponseUnitLocationFreshness;
|
|
51
|
+
(function (ResponseUnitLocationFreshness) {
|
|
52
|
+
ResponseUnitLocationFreshness["CURRENT"] = "CURRENT";
|
|
53
|
+
ResponseUnitLocationFreshness["STALE"] = "STALE";
|
|
54
|
+
ResponseUnitLocationFreshness["UNKNOWN"] = "UNKNOWN";
|
|
55
|
+
})(ResponseUnitLocationFreshness || (exports.ResponseUnitLocationFreshness = ResponseUnitLocationFreshness = {}));
|
|
56
|
+
var ResponseUnitDistanceBasis;
|
|
57
|
+
(function (ResponseUnitDistanceBasis) {
|
|
58
|
+
ResponseUnitDistanceBasis["STRAIGHT_LINE"] = "STRAIGHT_LINE";
|
|
59
|
+
ResponseUnitDistanceBasis["ROAD_ROUTE"] = "ROAD_ROUTE";
|
|
60
|
+
})(ResponseUnitDistanceBasis || (exports.ResponseUnitDistanceBasis = ResponseUnitDistanceBasis = {}));
|
|
61
|
+
/** Why a unit cannot be dispatched (blockers) or is not recommended (cautions). */
|
|
62
|
+
var ResponseUnitDispatchConstraint;
|
|
63
|
+
(function (ResponseUnitDispatchConstraint) {
|
|
64
|
+
ResponseUnitDispatchConstraint["INACTIVE"] = "INACTIVE";
|
|
65
|
+
ResponseUnitDispatchConstraint["OPERATIONALLY_UNAVAILABLE"] = "OPERATIONALLY_UNAVAILABLE";
|
|
66
|
+
ResponseUnitDispatchConstraint["ENGAGED"] = "ENGAGED";
|
|
67
|
+
ResponseUnitDispatchConstraint["ALREADY_DISPATCHED"] = "ALREADY_DISPATCHED";
|
|
68
|
+
ResponseUnitDispatchConstraint["OTHER_CONTROL_CENTRE"] = "OTHER_CONTROL_CENTRE";
|
|
69
|
+
ResponseUnitDispatchConstraint["CAPABILITY_REQUIRED"] = "CAPABILITY_REQUIRED";
|
|
70
|
+
ResponseUnitDispatchConstraint["NOT_SUITED"] = "NOT_SUITED";
|
|
71
|
+
ResponseUnitDispatchConstraint["NO_LOCATION"] = "NO_LOCATION";
|
|
72
|
+
ResponseUnitDispatchConstraint["LOCATION_STALE"] = "LOCATION_STALE";
|
|
73
|
+
ResponseUnitDispatchConstraint["OUTSIDE_SEARCH_AREA"] = "OUTSIDE_SEARCH_AREA";
|
|
74
|
+
})(ResponseUnitDispatchConstraint || (exports.ResponseUnitDispatchConstraint = ResponseUnitDispatchConstraint = {}));
|
|
75
|
+
var ResponseUnitRecommendationReason;
|
|
76
|
+
(function (ResponseUnitRecommendationReason) {
|
|
77
|
+
ResponseUnitRecommendationReason["AVAILABLE"] = "AVAILABLE";
|
|
78
|
+
ResponseUnitRecommendationReason["CAPABILITY_MATCH"] = "CAPABILITY_MATCH";
|
|
79
|
+
ResponseUnitRecommendationReason["NO_CAPABILITY_REQUIREMENT"] = "NO_CAPABILITY_REQUIREMENT";
|
|
80
|
+
ResponseUnitRecommendationReason["CAPABILITY_UNKNOWN"] = "CAPABILITY_UNKNOWN";
|
|
81
|
+
ResponseUnitRecommendationReason["SAME_CONTROL_CENTRE"] = "SAME_CONTROL_CENTRE";
|
|
82
|
+
ResponseUnitRecommendationReason["OTHER_CONTROL_CENTRE"] = "OTHER_CONTROL_CENTRE";
|
|
83
|
+
ResponseUnitRecommendationReason["LIVE_LOCATION_CURRENT"] = "LIVE_LOCATION_CURRENT";
|
|
84
|
+
ResponseUnitRecommendationReason["LIVE_LOCATION_STALE"] = "LIVE_LOCATION_STALE";
|
|
85
|
+
ResponseUnitRecommendationReason["BASE_LOCATION"] = "BASE_LOCATION";
|
|
86
|
+
ResponseUnitRecommendationReason["NEAREST"] = "NEAREST";
|
|
87
|
+
ResponseUnitRecommendationReason["QUICKEST"] = "QUICKEST";
|
|
88
|
+
})(ResponseUnitRecommendationReason || (exports.ResponseUnitRecommendationReason = ResponseUnitRecommendationReason = {}));
|
|
89
|
+
/**
|
|
90
|
+
* NO_UNITS_CONFIGURED hides the dispatch panel (this control room has no units);
|
|
91
|
+
* NO_ELIGIBLE_UNITS is an alarm (it has units and none can go).
|
|
92
|
+
*/
|
|
93
|
+
var ResponseUnitRecommendationStatus;
|
|
94
|
+
(function (ResponseUnitRecommendationStatus) {
|
|
95
|
+
ResponseUnitRecommendationStatus["RECOMMENDED"] = "RECOMMENDED";
|
|
96
|
+
ResponseUnitRecommendationStatus["NO_RECOMMENDATION"] = "NO_RECOMMENDATION";
|
|
97
|
+
ResponseUnitRecommendationStatus["NO_ELIGIBLE_UNITS"] = "NO_ELIGIBLE_UNITS";
|
|
98
|
+
ResponseUnitRecommendationStatus["NO_UNITS_CONFIGURED"] = "NO_UNITS_CONFIGURED";
|
|
99
|
+
ResponseUnitRecommendationStatus["NOT_DISPATCHABLE"] = "NOT_DISPATCHABLE";
|
|
100
|
+
})(ResponseUnitRecommendationStatus || (exports.ResponseUnitRecommendationStatus = ResponseUnitRecommendationStatus = {}));
|
|
101
|
+
var IncidentDispatchBlocker;
|
|
102
|
+
(function (IncidentDispatchBlocker) {
|
|
103
|
+
IncidentDispatchBlocker["INCIDENT_ENDED"] = "INCIDENT_ENDED";
|
|
104
|
+
IncidentDispatchBlocker["NOT_AN_EMERGENCY_INCIDENT"] = "NOT_AN_EMERGENCY_INCIDENT";
|
|
105
|
+
IncidentDispatchBlocker["PROVIDER_RESPONSE_NOT_REQUESTED"] = "PROVIDER_RESPONSE_NOT_REQUESTED";
|
|
106
|
+
IncidentDispatchBlocker["DISPATCH_DISABLED"] = "DISPATCH_DISABLED";
|
|
107
|
+
})(IncidentDispatchBlocker || (exports.IncidentDispatchBlocker = IncidentDispatchBlocker = {}));
|
|
108
|
+
var ResponseUnitDispatchNotificationStatus;
|
|
109
|
+
(function (ResponseUnitDispatchNotificationStatus) {
|
|
110
|
+
ResponseUnitDispatchNotificationStatus["PENDING"] = "PENDING";
|
|
111
|
+
ResponseUnitDispatchNotificationStatus["SENT"] = "SENT";
|
|
112
|
+
ResponseUnitDispatchNotificationStatus["FAILED"] = "FAILED";
|
|
113
|
+
ResponseUnitDispatchNotificationStatus["NOT_POSSIBLE"] = "NOT_POSSIBLE";
|
|
114
|
+
})(ResponseUnitDispatchNotificationStatus || (exports.ResponseUnitDispatchNotificationStatus = ResponseUnitDispatchNotificationStatus = {}));
|
|
115
|
+
var ResponseUnitDispatchNotificationFailure;
|
|
116
|
+
(function (ResponseUnitDispatchNotificationFailure) {
|
|
117
|
+
ResponseUnitDispatchNotificationFailure["NO_PHONE_NUMBER"] = "NO_PHONE_NUMBER";
|
|
118
|
+
ResponseUnitDispatchNotificationFailure["INVALID_PHONE_NUMBER"] = "INVALID_PHONE_NUMBER";
|
|
119
|
+
ResponseUnitDispatchNotificationFailure["PROVIDER_FAILURE"] = "PROVIDER_FAILURE";
|
|
120
|
+
ResponseUnitDispatchNotificationFailure["NOT_CONFIGURED"] = "NOT_CONFIGURED";
|
|
121
|
+
ResponseUnitDispatchNotificationFailure["NO_RESPONSE"] = "NO_RESPONSE";
|
|
122
|
+
})(ResponseUnitDispatchNotificationFailure || (exports.ResponseUnitDispatchNotificationFailure = ResponseUnitDispatchNotificationFailure = {}));
|
|
123
|
+
/** The `code` on a refused request (the gateway returns it under `details`). */
|
|
124
|
+
var ResponseUnitDispatchErrorCode;
|
|
125
|
+
(function (ResponseUnitDispatchErrorCode) {
|
|
126
|
+
ResponseUnitDispatchErrorCode["INCIDENT_NOT_DISPATCHABLE"] = "INCIDENT_NOT_DISPATCHABLE";
|
|
127
|
+
ResponseUnitDispatchErrorCode["RESPONSE_UNIT_NOT_FOUND"] = "RESPONSE_UNIT_NOT_FOUND";
|
|
128
|
+
ResponseUnitDispatchErrorCode["RESPONSE_UNIT_NOT_DISPATCHABLE"] = "RESPONSE_UNIT_NOT_DISPATCHABLE";
|
|
129
|
+
ResponseUnitDispatchErrorCode["RESPONSE_UNIT_ENGAGED"] = "RESPONSE_UNIT_ENGAGED";
|
|
130
|
+
ResponseUnitDispatchErrorCode["RESPONSE_UNIT_ALREADY_DISPATCHED"] = "RESPONSE_UNIT_ALREADY_DISPATCHED";
|
|
131
|
+
ResponseUnitDispatchErrorCode["IDEMPOTENCY_KEY_REUSED"] = "IDEMPOTENCY_KEY_REUSED";
|
|
132
|
+
ResponseUnitDispatchErrorCode["DISPATCH_NOT_FOUND"] = "DISPATCH_NOT_FOUND";
|
|
133
|
+
ResponseUnitDispatchErrorCode["INVALID_STATUS_TRANSITION"] = "INVALID_STATUS_TRANSITION";
|
|
134
|
+
ResponseUnitDispatchErrorCode["NOTIFICATION_NOT_RESENDABLE"] = "NOTIFICATION_NOT_RESENDABLE";
|
|
135
|
+
ResponseUnitDispatchErrorCode["ORGANIZATION_UNAVAILABLE"] = "ORGANIZATION_UNAVAILABLE";
|
|
136
|
+
})(ResponseUnitDispatchErrorCode || (exports.ResponseUnitDispatchErrorCode = ResponseUnitDispatchErrorCode = {}));
|
|
137
|
+
//# sourceMappingURL=response-unit-dispatch-enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-unit-dispatch-enums.js","sourceRoot":"","sources":["../../../../../src/modules/dispatch/enums/response-unit-dispatch-enums.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Enums
|
|
18
|
+
__exportStar(require("./enums/response-unit-dispatch-enums"), exports);
|
|
19
|
+
// Interfaces
|
|
20
|
+
__exportStar(require("./interfaces/response-unit-dispatch.dto"), exports);
|
|
21
|
+
// Utilities
|
|
22
|
+
__exportStar(require("./utils/response-unit-dispatch-display.util"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/dispatch/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,uEAAqD;AAErD,aAAa;AACb,0EAAwD;AAExD,YAAY;AACZ,8EAA4D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-unit-dispatch.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dispatch/interfaces/response-unit-dispatch.dto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ACTIVE_RESPONSE_UNIT_DISPATCH_STATUSES = exports.RESPONSE_UNIT_DISPATCH_NEXT_STATUSES = exports.RESPONSE_UNIT_DISPATCH_NOTIFICATION_FAILURE_LABELS = exports.RESPONSE_UNIT_DISPATCH_NOTIFICATION_STATUS_LABELS = exports.INCIDENT_DISPATCH_BLOCKER_LABELS = exports.RESPONSE_UNIT_DISPATCH_CONSTRAINT_LABELS = exports.RESPONSE_UNIT_DISPATCH_STATUS_LABELS = exports.RESPONSE_UNIT_AVAILABILITY_LABELS = exports.RESPONSE_CAPABILITY_LABELS = void 0;
|
|
4
|
+
exports.isActiveResponseUnitDispatch = isActiveResponseUnitDispatch;
|
|
5
|
+
exports.formatDispatchDistance = formatDispatchDistance;
|
|
6
|
+
exports.formatDispatchAge = formatDispatchAge;
|
|
7
|
+
exports.formatDispatchDuration = formatDispatchDuration;
|
|
8
|
+
exports.describeCandidateLocation = describeCandidateLocation;
|
|
9
|
+
exports.explainRecommendation = explainRecommendation;
|
|
10
|
+
exports.describeCandidateConstraints = describeCandidateConstraints;
|
|
11
|
+
const response_capability_enum_1 = require("../../response-unit/enums/response-unit/response-capability.enum");
|
|
12
|
+
const response_unit_dispatch_enums_1 = require("../enums/response-unit-dispatch-enums");
|
|
13
|
+
/*
|
|
14
|
+
* How dispatch reads on screen. In the shared package, as for partner
|
|
15
|
+
* dispatches, so the incident card, the dispatch history and any future
|
|
16
|
+
* dispatch board name the same state the same way.
|
|
17
|
+
*/
|
|
18
|
+
exports.RESPONSE_CAPABILITY_LABELS = {
|
|
19
|
+
[response_capability_enum_1.ResponseCapability.MEDICAL_RESPONSE]: 'Medical response',
|
|
20
|
+
[response_capability_enum_1.ResponseCapability.SECURITY_RESPONSE]: 'Security response',
|
|
21
|
+
[response_capability_enum_1.ResponseCapability.FIRE_RESPONSE]: 'Fire response',
|
|
22
|
+
[response_capability_enum_1.ResponseCapability.ROADSIDE_ASSISTANCE]: 'Roadside assistance',
|
|
23
|
+
};
|
|
24
|
+
exports.RESPONSE_UNIT_AVAILABILITY_LABELS = {
|
|
25
|
+
[response_capability_enum_1.ResponseUnitAvailability.AVAILABLE]: 'Available',
|
|
26
|
+
[response_capability_enum_1.ResponseUnitAvailability.ENGAGED]: 'Engaged',
|
|
27
|
+
[response_capability_enum_1.ResponseUnitAvailability.UNAVAILABLE]: 'Unavailable',
|
|
28
|
+
[response_capability_enum_1.ResponseUnitAvailability.INACTIVE]: 'Inactive',
|
|
29
|
+
};
|
|
30
|
+
exports.RESPONSE_UNIT_DISPATCH_STATUS_LABELS = {
|
|
31
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.DISPATCHED]: 'Dispatched',
|
|
32
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.ACKNOWLEDGED]: 'Acknowledged',
|
|
33
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.EN_ROUTE]: 'En route',
|
|
34
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.ON_SCENE]: 'On scene',
|
|
35
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.COMPLETED]: 'Completed',
|
|
36
|
+
// "Stood down", the control-room word: the unit was recalled, not "cancelled".
|
|
37
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.CANCELLED]: 'Stood down',
|
|
38
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.REJECTED]: 'Declined',
|
|
39
|
+
};
|
|
40
|
+
/** Why a unit cannot go, or is not suggested - as the dispatcher reads it. */
|
|
41
|
+
exports.RESPONSE_UNIT_DISPATCH_CONSTRAINT_LABELS = {
|
|
42
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.INACTIVE]: 'Switched off',
|
|
43
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.OPERATIONALLY_UNAVAILABLE]: 'Not operational',
|
|
44
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.ENGAGED]: 'Out on another incident',
|
|
45
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.ALREADY_DISPATCHED]: 'Already dispatched here',
|
|
46
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.OTHER_CONTROL_CENTRE]: 'Another control centre',
|
|
47
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.CAPABILITY_REQUIRED]: 'Not equipped for this incident',
|
|
48
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.NOT_SUITED]: 'Not suited to this incident type',
|
|
49
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.NO_LOCATION]: 'Location unavailable',
|
|
50
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.LOCATION_STALE]: 'Location out of date',
|
|
51
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.OUTSIDE_SEARCH_AREA]: 'Outside the search area',
|
|
52
|
+
};
|
|
53
|
+
exports.INCIDENT_DISPATCH_BLOCKER_LABELS = {
|
|
54
|
+
[response_unit_dispatch_enums_1.IncidentDispatchBlocker.INCIDENT_ENDED]: 'This incident has ended.',
|
|
55
|
+
[response_unit_dispatch_enums_1.IncidentDispatchBlocker.NOT_AN_EMERGENCY_INCIDENT]: 'Units are dispatched to emergency incidents only.',
|
|
56
|
+
[response_unit_dispatch_enums_1.IncidentDispatchBlocker.PROVIDER_RESPONSE_NOT_REQUESTED]: 'A provider response was not requested for this alert.',
|
|
57
|
+
[response_unit_dispatch_enums_1.IncidentDispatchBlocker.DISPATCH_DISABLED]: 'Response-unit dispatch is switched off.',
|
|
58
|
+
};
|
|
59
|
+
exports.RESPONSE_UNIT_DISPATCH_NOTIFICATION_STATUS_LABELS = {
|
|
60
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchNotificationStatus.PENDING]: 'SMS sending',
|
|
61
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchNotificationStatus.SENT]: 'SMS sent',
|
|
62
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchNotificationStatus.FAILED]: 'SMS failed',
|
|
63
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchNotificationStatus.NOT_POSSIBLE]: 'No SMS',
|
|
64
|
+
};
|
|
65
|
+
exports.RESPONSE_UNIT_DISPATCH_NOTIFICATION_FAILURE_LABELS = {
|
|
66
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchNotificationFailure.NO_PHONE_NUMBER]: 'The unit has no phone number - contact it by radio.',
|
|
67
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchNotificationFailure.INVALID_PHONE_NUMBER]: "The unit's phone number cannot receive SMS.",
|
|
68
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchNotificationFailure.PROVIDER_FAILURE]: 'The SMS provider could not deliver it.',
|
|
69
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchNotificationFailure.NOT_CONFIGURED]: 'SMS is not set up for this number.',
|
|
70
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchNotificationFailure.NO_RESPONSE]: 'Delivery was not confirmed.',
|
|
71
|
+
};
|
|
72
|
+
/** Where each dispatch may be moved next (forward only; steps may be skipped). */
|
|
73
|
+
exports.RESPONSE_UNIT_DISPATCH_NEXT_STATUSES = {
|
|
74
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.DISPATCHED]: [
|
|
75
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.ACKNOWLEDGED,
|
|
76
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.EN_ROUTE,
|
|
77
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.ON_SCENE,
|
|
78
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.COMPLETED,
|
|
79
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.CANCELLED,
|
|
80
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.REJECTED,
|
|
81
|
+
],
|
|
82
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.ACKNOWLEDGED]: [
|
|
83
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.EN_ROUTE,
|
|
84
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.ON_SCENE,
|
|
85
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.COMPLETED,
|
|
86
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.CANCELLED,
|
|
87
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.REJECTED,
|
|
88
|
+
],
|
|
89
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.EN_ROUTE]: [
|
|
90
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.ON_SCENE,
|
|
91
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.COMPLETED,
|
|
92
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.CANCELLED,
|
|
93
|
+
],
|
|
94
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.ON_SCENE]: [response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.COMPLETED, response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.CANCELLED],
|
|
95
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.COMPLETED]: [],
|
|
96
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.CANCELLED]: [],
|
|
97
|
+
[response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.REJECTED]: [],
|
|
98
|
+
};
|
|
99
|
+
exports.ACTIVE_RESPONSE_UNIT_DISPATCH_STATUSES = [
|
|
100
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.DISPATCHED,
|
|
101
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.ACKNOWLEDGED,
|
|
102
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.EN_ROUTE,
|
|
103
|
+
response_unit_dispatch_enums_1.ResponseUnitDispatchStatus.ON_SCENE,
|
|
104
|
+
];
|
|
105
|
+
function isActiveResponseUnitDispatch(status) {
|
|
106
|
+
return !!status && exports.ACTIVE_RESPONSE_UNIT_DISPATCH_STATUSES.includes(status);
|
|
107
|
+
}
|
|
108
|
+
/** "850 m", "2.4 km", "38 km". */
|
|
109
|
+
function formatDispatchDistance(metres) {
|
|
110
|
+
if (metres === null || metres === undefined || !Number.isFinite(metres))
|
|
111
|
+
return '';
|
|
112
|
+
if (metres < 1000)
|
|
113
|
+
return `${Math.round(metres / 10) * 10} m`;
|
|
114
|
+
if (metres < 10000)
|
|
115
|
+
return `${(metres / 1000).toFixed(1)} km`;
|
|
116
|
+
return `${Math.round(metres / 1000)} km`;
|
|
117
|
+
}
|
|
118
|
+
/** "18 sec ago", "4 min ago", "2 h ago". */
|
|
119
|
+
function formatDispatchAge(seconds) {
|
|
120
|
+
if (seconds === null || seconds === undefined || !Number.isFinite(seconds))
|
|
121
|
+
return '';
|
|
122
|
+
const value = Math.max(0, Math.round(seconds));
|
|
123
|
+
if (value < 60)
|
|
124
|
+
return `${value} sec ago`;
|
|
125
|
+
if (value < 3600)
|
|
126
|
+
return `${Math.floor(value / 60)} min ago`;
|
|
127
|
+
if (value < 86400)
|
|
128
|
+
return `${Math.floor(value / 3600)} h ago`;
|
|
129
|
+
return `${Math.floor(value / 86400)} d ago`;
|
|
130
|
+
}
|
|
131
|
+
/** "7 min", "1 h 05 min". */
|
|
132
|
+
function formatDispatchDuration(seconds) {
|
|
133
|
+
if (seconds === null || seconds === undefined || !Number.isFinite(seconds))
|
|
134
|
+
return '';
|
|
135
|
+
const minutes = Math.max(1, Math.round(seconds / 60));
|
|
136
|
+
if (minutes < 60)
|
|
137
|
+
return `${minutes} min`;
|
|
138
|
+
return `${Math.floor(minutes / 60)} h ${String(minutes % 60).padStart(2, '0')} min`;
|
|
139
|
+
}
|
|
140
|
+
/** A candidate's position, as one short phrase: "Live 18 sec ago", "Live, out of date (6 min ago)", "Base location". */
|
|
141
|
+
function describeCandidateLocation(candidate, ageSeconds = candidate.location.ageSeconds) {
|
|
142
|
+
const location = candidate.location;
|
|
143
|
+
if (location.source === response_unit_dispatch_enums_1.ResponseUnitLocationSource.LIVE) {
|
|
144
|
+
if (location.freshness === response_unit_dispatch_enums_1.ResponseUnitLocationFreshness.CURRENT)
|
|
145
|
+
return `Location updated ${formatDispatchAge(ageSeconds)}`;
|
|
146
|
+
if (location.freshness === response_unit_dispatch_enums_1.ResponseUnitLocationFreshness.STALE)
|
|
147
|
+
return `Location out of date (${formatDispatchAge(ageSeconds)})`;
|
|
148
|
+
return candidate.constraints.includes(response_unit_dispatch_enums_1.ResponseUnitDispatchConstraint.OUTSIDE_SEARCH_AREA)
|
|
149
|
+
? 'Outside the search area'
|
|
150
|
+
: 'Location unavailable';
|
|
151
|
+
}
|
|
152
|
+
if (location.source === response_unit_dispatch_enums_1.ResponseUnitLocationSource.BASE)
|
|
153
|
+
return 'At base location (not live-tracked)';
|
|
154
|
+
return 'Location unavailable';
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* The "Recommended because" lines, from the reasons and the numbers behind
|
|
158
|
+
* them. Never the scoring - the facts it rests on, in the order it weighs them.
|
|
159
|
+
*/
|
|
160
|
+
function explainRecommendation(candidate, ageSeconds = candidate.location.ageSeconds) {
|
|
161
|
+
var _a;
|
|
162
|
+
const lines = [];
|
|
163
|
+
for (const reason of candidate.reasons) {
|
|
164
|
+
switch (reason) {
|
|
165
|
+
case response_unit_dispatch_enums_1.ResponseUnitRecommendationReason.AVAILABLE:
|
|
166
|
+
lines.push('Available');
|
|
167
|
+
break;
|
|
168
|
+
case response_unit_dispatch_enums_1.ResponseUnitRecommendationReason.CAPABILITY_MATCH:
|
|
169
|
+
lines.push(`Suited: ${candidate.matchedCapabilities.map((c) => { var _a; return (_a = exports.RESPONSE_CAPABILITY_LABELS[c]) !== null && _a !== void 0 ? _a : c; }).join(', ')}`);
|
|
170
|
+
break;
|
|
171
|
+
case response_unit_dispatch_enums_1.ResponseUnitRecommendationReason.CAPABILITY_UNKNOWN:
|
|
172
|
+
lines.push('Capabilities not configured');
|
|
173
|
+
break;
|
|
174
|
+
case response_unit_dispatch_enums_1.ResponseUnitRecommendationReason.SAME_CONTROL_CENTRE:
|
|
175
|
+
lines.push("This incident's control centre");
|
|
176
|
+
break;
|
|
177
|
+
case response_unit_dispatch_enums_1.ResponseUnitRecommendationReason.OTHER_CONTROL_CENTRE:
|
|
178
|
+
lines.push('From another control centre');
|
|
179
|
+
break;
|
|
180
|
+
case response_unit_dispatch_enums_1.ResponseUnitRecommendationReason.LIVE_LOCATION_CURRENT:
|
|
181
|
+
case response_unit_dispatch_enums_1.ResponseUnitRecommendationReason.LIVE_LOCATION_STALE:
|
|
182
|
+
case response_unit_dispatch_enums_1.ResponseUnitRecommendationReason.BASE_LOCATION:
|
|
183
|
+
lines.push(describeCandidateLocation(candidate, ageSeconds));
|
|
184
|
+
break;
|
|
185
|
+
case response_unit_dispatch_enums_1.ResponseUnitRecommendationReason.NEAREST:
|
|
186
|
+
lines.push(`Nearest: ${formatDispatchDistance(candidate.distanceMetres)} away`);
|
|
187
|
+
break;
|
|
188
|
+
case response_unit_dispatch_enums_1.ResponseUnitRecommendationReason.QUICKEST:
|
|
189
|
+
lines.push(`Quickest: ${formatDispatchDuration((_a = candidate.travel) === null || _a === void 0 ? void 0 : _a.durationSeconds)} by road`);
|
|
190
|
+
break;
|
|
191
|
+
default:
|
|
192
|
+
// NO_CAPABILITY_REQUIREMENT says nothing worth a line.
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return lines;
|
|
197
|
+
}
|
|
198
|
+
/** The reasons a unit cannot go or is not suggested, as labels. */
|
|
199
|
+
function describeCandidateConstraints(candidate) {
|
|
200
|
+
return candidate.constraints.map((constraint) => { var _a; return (_a = exports.RESPONSE_UNIT_DISPATCH_CONSTRAINT_LABELS[constraint]) !== null && _a !== void 0 ? _a : constraint; });
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=response-unit-dispatch-display.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-unit-dispatch-display.util.js","sourceRoot":"","sources":["../../../../../src/modules/dispatch/utils/response-unit-dispatch-display.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,12 @@ var IncidentActions;
|
|
|
11
11
|
IncidentActions["ON_HOLD"] = "On Hold";
|
|
12
12
|
IncidentActions["ASSIGNED"] = "Assigned";
|
|
13
13
|
IncidentActions["RESPONSE_UNIT_ASSIGNED"] = "Response Unit Assigned";
|
|
14
|
+
IncidentActions["RESPONSE_UNIT_DISPATCHED"] = "Response Unit Dispatched";
|
|
15
|
+
IncidentActions["RESPONSE_UNIT_DISPATCH_UPDATED"] = "Response Unit Dispatch Updated";
|
|
16
|
+
/** The emergency response reached a milestone (acknowledged, triaged, arrival inferred, assessed...). */
|
|
17
|
+
IncidentActions["EMERGENCY_MILESTONE"] = "Emergency Milestone";
|
|
18
|
+
/** The emergency SLA changed (a clock warned, breached, paused, was excused...) or escalated. */
|
|
19
|
+
IncidentActions["SLA_UPDATED"] = "SLA Updated";
|
|
14
20
|
IncidentActions["REOPENED"] = "Reopened";
|
|
15
21
|
IncidentActions["REPORT_CREATED"] = "Report Created";
|
|
16
22
|
IncidentActions["COMMENTED"] = "Commented";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incident-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/incident/enums/incident-actions.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"incident-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/incident/enums/incident-actions.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAsBX;AAtBD,WAAY,eAAe;IACvB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,oDAAiC,CAAA;IACjC,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,sCAAmB,CAAA;IACnB,wCAAqB,CAAA;IACrB,oEAAiD,CAAA;IACjD,wEAAqD,CAAA;IACrD,oFAAiE,CAAA;IACjE,yGAAyG;IACzG,8DAA2C,CAAA;IAC3C,iGAAiG;IACjG,8CAA2B,CAAA;IAC3B,wCAAqB,CAAA;IACrB,oDAAiC,CAAA;IACjC,0CAAuB,CAAA;IACvB,wDAAqC,CAAA;IACrC,gDAA6B,CAAA;IAC7B,iEAA8C,CAAA;IAC9C,0CAAuB,CAAA;AAC3B,CAAC,EAtBW,eAAe,+BAAf,eAAe,QAsB1B"}
|