sos-portal-components-react 0.2.1 → 0.2.3

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/CHANGELOG.md CHANGED
@@ -2,10 +2,24 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.2.3 - 2026-11-07
6
+
7
+ - Render caller-cancelled Communications as `Cancelled`/`Cancelada` rather
8
+ than collapsing them into an undefined or generic ended state.
9
+ - Let the host distinguish a caller cancellation from an unanswered timeout
10
+ when ending an RTC session; media teardown remains separate from canonical
11
+ Communication persistence.
12
+
13
+ ## 0.2.2 - 2026-11-07
14
+
15
+ - Render the canonical ringing, missed and ended state beside every call
16
+ Communication in the shared Personal/Professional conversation surface.
17
+ Host portals no longer need divergent status labels to expose call history.
18
+
5
19
  ## 0.2.1 - 2026-11-07
6
20
 
7
21
  - Pin `sos-data-utils-ts@0.6.28`, the exact release that owns the portal RTC
8
- Communication contract consumed by `LiveKitRealtimeCallClient`. Clean npm
22
+ Communication contract consumed by `createLiveKitRealtimeCallClient`. Clean npm
9
23
  installs no longer retain a nested pre-RTC data-utils release.
10
24
 
11
25
  ## 0.2.0 - 2026-11-07
@@ -18,7 +32,7 @@
18
32
  canonical Communications. It projects text, governed attachments, clinical
19
33
  Bundles, ICS/files, audio and call events without owning persistence,
20
34
  signaling or recipient authority.
21
- - Export `LiveKitRealtimeCallClient` as a dynamically loaded web RTC adapter
35
+ - Export `createLiveKitRealtimeCallClient` as a dynamically loaded web RTC adapter
22
36
  designed for later Expo substitution. It consumes only the short grant
23
37
  issued by the BFF and never receives LiveKit API credentials.
24
38
  - Separate CH all-local, telephone-assistant, optional web-assistant and RTC
@@ -1,9 +1,11 @@
1
1
  export type RealtimeCallMedia = 'audio' | 'video';
2
+ export type RealtimeCallEndOutcome = 'missed' | 'cancelled';
2
3
  export type RealtimeCallSession = Readonly<{
3
4
  callId: string;
4
5
  localStream: MediaStream;
5
6
  remoteStream: MediaStream;
6
- end(): Promise<void>;
7
+ answered: Promise<void>;
8
+ end(outcome?: RealtimeCallEndOutcome): Promise<void>;
7
9
  }>;
8
10
  export type LiveKitJoinSession<Conversation> = Readonly<{
9
11
  conversation: Conversation;
@@ -22,6 +24,7 @@ export declare function createLiveKitRealtimeCallClient<Conversation>(dependenci
22
24
  endCall(input: Readonly<{
23
25
  conversation: Conversation;
24
26
  callId: string;
27
+ outcome?: RealtimeCallEndOutcome;
25
28
  }>): Promise<void>;
26
29
  loadLiveKit?: () => Promise<LiveKitModule>;
27
30
  createMediaStream?: () => MediaStream;
@@ -33,7 +36,8 @@ export declare function createLiveKitRealtimeCallClient<Conversation>(dependenci
33
36
  callId: string;
34
37
  localStream: MediaStream;
35
38
  remoteStream: MediaStream;
36
- end(): Promise<void>;
39
+ answered: Promise<void>;
40
+ end(outcome?: RealtimeCallEndOutcome): Promise<void>;
37
41
  }>>;
38
42
  accept(input: Readonly<{
39
43
  conversation: Conversation;
@@ -43,7 +47,8 @@ export declare function createLiveKitRealtimeCallClient<Conversation>(dependenci
43
47
  callId: string;
44
48
  localStream: MediaStream;
45
49
  remoteStream: MediaStream;
46
- end(): Promise<void>;
50
+ answered: Promise<void>;
51
+ end(outcome?: RealtimeCallEndOutcome): Promise<void>;
47
52
  }>>;
48
53
  };
49
54
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"LiveKitRealtimeCallClient.d.ts","sourceRoot":"","sources":["../src/LiveKitRealtimeCallClient.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAA;AACjD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,WAAW,CAAC;IAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAAA;AACzI,MAAM,MAAM,kBAAkB,CAAC,YAAY,IAAI,QAAQ,CAAC;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAAA;AAC7I,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE3G,KAAK,aAAa,GAAG,cAAc,gBAAgB,CAAC,CAAA;AAEpD,yFAAyF;AACzF,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC;IACnF,YAAY,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACnF,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvF,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1C,iBAAiB,CAAC,EAAE,MAAM,WAAW,CAAA;CACtC,CAAC;iBA+Be,QAAQ,CAAC;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;KAAE,CAAC;gBA3CzC,MAAM;qBAAe,WAAW;sBAAgB,WAAW;eAAS,OAAO,CAAC,IAAI,CAAC;;kBA4CpH,QAAQ,CAAC;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;KAAE,CAAC;gBA5C1D,MAAM;qBAAe,WAAW;sBAAgB,WAAW;eAAS,OAAO,CAAC,IAAI,CAAC;;EA8CrI"}
1
+ {"version":3,"file":"LiveKitRealtimeCallClient.d.ts","sourceRoot":"","sources":["../src/LiveKitRealtimeCallClient.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAA;AACjD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,WAAW,CAAA;AAC3D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,GAAG,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAAA;AAClM,MAAM,MAAM,kBAAkB,CAAC,YAAY,IAAI,QAAQ,CAAC;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAAA;AAC7I,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE3G,KAAK,aAAa,GAAG,cAAc,gBAAgB,CAAC,CAAA;AAEpD,yFAAyF;AACzF,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC;IACnF,YAAY,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACnF,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,sBAAsB,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1C,iBAAiB,CAAC,EAAE,MAAM,WAAW,CAAA;CACtC,CAAC;iBAmCe,QAAQ,CAAC;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;KAAE,CAAC;gBA/CzC,MAAM;qBAAe,WAAW;sBAAgB,WAAW;kBAAY,OAAO,CAAC,IAAI,CAAC;sBAAgB,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;;kBAgD7K,QAAQ,CAAC;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;KAAE,CAAC;gBAhD1D,MAAM;qBAAe,WAAW;sBAAgB,WAAW;kBAAY,OAAO,CAAC,IAAI,CAAC;sBAAgB,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;;EAkD9L"}
@@ -7,10 +7,14 @@ export function createLiveKitRealtimeCallClient(dependencies) {
7
7
  const room = new liveKit.Room({ adaptiveStream: true, dynacast: true });
8
8
  const localStream = createMediaStream();
9
9
  const remoteStream = createMediaStream();
10
+ let resolveAnswered;
11
+ const answered = new Promise(resolve => { resolveAnswered = resolve; });
10
12
  room.on(liveKit.RoomEvent.TrackSubscribed, track => {
11
13
  const mediaTrack = track.mediaStreamTrack;
12
14
  if (mediaTrack)
13
15
  remoteStream.addTrack(mediaTrack);
16
+ resolveAnswered?.();
17
+ resolveAnswered = undefined;
14
18
  });
15
19
  await room.connect(grant.serverUrl, grant.participantToken);
16
20
  if (input.media.includes('audio'))
@@ -23,12 +27,12 @@ export function createLiveKitRealtimeCallClient(dependencies) {
23
27
  localStream.addTrack(mediaTrack);
24
28
  }
25
29
  return Object.freeze({
26
- callId: grant.callId, localStream, remoteStream,
27
- async end() {
30
+ callId: grant.callId, localStream, remoteStream, answered,
31
+ async end(outcome) {
28
32
  room.disconnect();
29
33
  for (const track of localStream.getTracks())
30
34
  track.stop();
31
- await dependencies.endCall({ conversation: input.conversation, callId: grant.callId });
35
+ await dependencies.endCall({ conversation: input.conversation, callId: grant.callId, ...(outcome ? { outcome } : {}) });
32
36
  },
33
37
  });
34
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LiveKitRealtimeCallClient.js","sourceRoot":"","sources":["../src/LiveKitRealtimeCallClient.ts"],"names":[],"mappings":"AAOA,yFAAyF;AACzF,MAAM,UAAU,+BAA+B,CAAe,YAK5D;IACA,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAChF,MAAM,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;IAErF,KAAK,UAAU,OAAO,CAAC,KAAuC;QAC5D,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7F,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QACvE,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAA;QACvC,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAA;QACxC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE;YACjD,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAA;YACzC,IAAI,UAAU;gBAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAC3D,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACzF,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACrF,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3E,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAA;YACtD,IAAI,UAAU;gBAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY;YAC/C,KAAK,CAAC,GAAG;gBACP,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE;oBAAE,KAAK,CAAC,IAAI,EAAE,CAAA;gBACzD,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;YACxF,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,OAAO;QACL,KAAK,CAAC,KAAoF,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;QACrH,MAAM,CAAC,KAAoG,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;KACvI,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"LiveKitRealtimeCallClient.js","sourceRoot":"","sources":["../src/LiveKitRealtimeCallClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SubjectConversationChat.d.ts","sourceRoot":"","sources":["../src/SubjectConversationChat.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC/C,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,wDAAwD,CAAA;AAC/D,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAC9B,MAAM,6CAA6C,CAAA;AAEpD,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC;IACjD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAC,CAAA;AAEF,MAAM,MAAM,2BAA2B,GAAG,4BAA4B,GAAG,8BAA8B,CAAA;AAEvG;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACP,WAAW,EACX,MAAM,EACN,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,EACN,IAAI,EACJ,eAAe,GAChB,EAAE,QAAQ,CAAC;IACV,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAA;IAC5C,WAAW,EAAE,2BAA2B,CAAA;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,kBAAkB,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC;QAClC,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QACzC,OAAO,EAAE,2BAA2B,CAAA;KACrC,CAAC,GAAG,SAAS,CAAA;IACd,kBAAkB,CAAC,CAAC,OAAO,EAAE,2BAA2B,GAAG,SAAS,CAAA;IACpE,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,+BA2BD"}
1
+ {"version":3,"file":"SubjectConversationChat.d.ts","sourceRoot":"","sources":["../src/SubjectConversationChat.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC/C,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,wDAAwD,CAAA;AAC/D,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAC9B,MAAM,6CAA6C,CAAA;AAEpD,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC;IACjD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAC,CAAA;AAEF,MAAM,MAAM,2BAA2B,GAAG,4BAA4B,GAAG,8BAA8B,CAAA;AAEvG;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACP,WAAW,EACX,MAAM,EACN,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,EACN,IAAI,EACJ,eAAe,GAChB,EAAE,QAAQ,CAAC;IACV,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAA;IAC5C,WAAW,EAAE,2BAA2B,CAAA;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,kBAAkB,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC;QAClC,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QACzC,OAAO,EAAE,2BAA2B,CAAA;KACrC,CAAC,GAAG,SAAS,CAAA;IACd,kBAAkB,CAAC,CAAC,OAAO,EAAE,2BAA2B,GAAG,SAAS,CAAA;IACpE,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,+BAgCD"}
@@ -10,7 +10,13 @@ import { SubjectConversationContentKind, projectSubjectConversationChatMessages,
10
10
  * into the product-neutral Antifraud transcript and composer.
11
11
  */
12
12
  export function SubjectConversationChat({ entries, currentUser, locale, onSendText, onAttach, renderFhirDocument, renderEntryContent, footer, copy, composerEnabled, }) {
13
- const messages = useMemo(() => [...projectSubjectConversationChatMessages(entries)], [entries]);
13
+ const messages = useMemo(() => [...projectSubjectConversationChatMessages(entries)].map(message => {
14
+ const content = message.subjectConversation.content;
15
+ if (content.kind !== SubjectConversationContentKind.Call)
16
+ return message;
17
+ const status = callStateLabel(content.state, locale);
18
+ return { ...message, text: `${content.label} · ${status}` };
19
+ }), [entries, locale]);
14
20
  const user = useMemo(() => ({
15
21
  _id: currentUser.id,
16
22
  name: currentUser.name,
@@ -23,4 +29,10 @@ export function SubjectConversationChat({ entries, currentUser, locale, onSendTe
23
29
  : renderEntryContent?.(message) ?? null;
24
30
  } } : {}), ...(footer !== undefined ? { footer } : {}), ...(copy ? { copy } : {}), ...(composerEnabled !== undefined ? { composerEnabled } : {}) });
25
31
  }
32
+ function callStateLabel(state, locale) {
33
+ const labels = locale === 'es'
34
+ ? { ringing: 'Sonando', received: 'Recibida', missed: 'Perdida', completed: 'Completada', declined: 'Rechazada', cancelled: 'Cancelada', ended: 'Finalizada' }
35
+ : { ringing: 'Ringing', received: 'Received', missed: 'Missed', completed: 'Completed', declined: 'Declined', cancelled: 'Cancelled', ended: 'Ended' };
36
+ return labels[state];
37
+ }
26
38
  //# sourceMappingURL=SubjectConversationChat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubjectConversationChat.js","sourceRoot":"","sources":["../src/SubjectConversationChat.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAA;AAC/C,OAAO,EACL,4BAA4B,GAE7B,MAAM,wDAAwD,CAAA;AAC/D,OAAO,EACL,8BAA8B,EAC9B,sCAAsC,GAGvC,MAAM,6CAA6C,CAAA;AAUpD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACtC,OAAO,EACP,WAAW,EACX,MAAM,EACN,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,EACN,IAAI,EACJ,eAAe,GAgBf;IACA,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC,GAAG,sCAAsC,CAAC,OAAO,CAAC,CAAkC,EAC3F,CAAC,OAAO,CAAC,CACV,CAAA;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,GAAG,EAAE,WAAW,CAAC,EAAE;QACnB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IAE3D,OAAO,KAAC,4BAA4B,IAClC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,UAAU,KAClB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC1B,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC9B,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,OAAoC,EAAE,EAAE;gBAC/G,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAA;gBACnD,OAAO,OAAO,CAAC,IAAI,KAAK,8BAA8B,CAAC,YAAY,IAAI,kBAAkB;oBACvF,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC/E,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;YAC3C,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACL,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACtB,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC9D,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"SubjectConversationChat.js","sourceRoot":"","sources":["../src/SubjectConversationChat.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sos-portal-components-react",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Shared portal UI for base components",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -68,7 +68,7 @@
68
68
  },
69
69
  "dependencies": {
70
70
  "antifraud-portal-components-react": "0.2.2",
71
- "sos-data-utils-ts": "0.6.28"
71
+ "sos-data-utils-ts": "0.6.29"
72
72
  },
73
73
  "devDependencies": {
74
74
  "@testing-library/react": "^16.3.2",