@dataemergencia/emergency 0.2.0 → 0.3.0

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/index.js CHANGED
@@ -55,13 +55,8 @@ function isFiniteNumber(value) {
55
55
  function isArrayOf(value, guard) {
56
56
  return Array.isArray(value) && value.every(guard);
57
57
  }
58
- function isRealtimeConfig(value) {
59
- if (!isRecord(value) || value["mode"] !== "public" || !isRecord(value["pusher"])) return false;
60
- const pusher = value["pusher"];
61
- return isString(pusher["key"]) && isString(pusher["cluster"]) && isString(pusher["channel_pattern"]);
62
- }
63
58
  function isConfigResponse(value) {
64
- return isRecord(value) && isString(value["route_prefix"]) && isString(value["csrf_token"]) && isRealtimeConfig(value["realtime"]);
59
+ return isRecord(value) && isString(value["route_prefix"]) && isString(value["csrf_token"]);
65
60
  }
66
61
  function isSessionResponse(value) {
67
62
  return isRecord(value) && isString(value["code"]) && isString(value["csrf_token"]) && isFiniteNumber(value["expires_in"]);
@@ -79,11 +74,11 @@ function isEmergencyResultPayload(value) {
79
74
  return (value["emergency_id"] === null || isString(value["emergency_id"])) && isBoolean(value["simulated"]) && isArrayOf(value["responders"], isResponderPayload) && isArrayOf(value["failures"], isFailurePayload);
80
75
  }
81
76
  function isCurrentResponse(value) {
82
- if (!isRecord(value) || !isBoolean(value["active"]) || !isRealtimeConfig(value["realtime"])) return false;
77
+ if (!isRecord(value) || !isBoolean(value["active"])) return false;
83
78
  return value["emergency"] === null || isRecord(value["emergency"]) && !Array.isArray(value["emergency"]);
84
79
  }
85
80
  function isRefreshResponse(value) {
86
- return isRecord(value) && isRecord(value["emergency"]) && isArrayOf(value["responders"], isResponderPayload);
81
+ return isRecord(value) && isRecord(value["emergency"]);
87
82
  }
88
83
  function isAbortResponse(value) {
89
84
  return isEmergencyResultPayload(value) && isRecord(value) && isBoolean(value["deleted"]);
@@ -605,8 +600,9 @@ function themeToCssVariables(theme) {
605
600
  }
606
601
 
607
602
  // src/core/realtime.ts
603
+ const DEFAULT_CHANNEL_PATTERN = "whatsapp.{phone}";
608
604
  function channelForPhone(pattern, phone) {
609
- return pattern.replace("{phone}", phone.replace(/^\+/, ""));
605
+ return pattern.replace("{phone}", phone.replace(/\D/g, ""));
610
606
  }
611
607
  function toStatus(state) {
612
608
  switch (state) {
@@ -621,11 +617,11 @@ function toStatus(state) {
621
617
  }
622
618
  function createPusherRealtimeProvider() {
623
619
  return { subscribe(config, phones, handlers) {
624
- if (typeof window === "undefined" || !config.pusher.key || !config.pusher.cluster) return null;
620
+ if (typeof window === "undefined" || !config.key || !config.cluster) return null;
625
621
  let pusher;
626
622
  try {
627
- pusher = new Pusher(config.pusher.key, {
628
- cluster: config.pusher.cluster,
623
+ pusher = new Pusher(config.key, {
624
+ cluster: config.cluster,
629
625
  forceTLS: true
630
626
  });
631
627
  } catch {
@@ -637,7 +633,7 @@ function createPusherRealtimeProvider() {
637
633
  handlers.onStatus(toStatus(change.current));
638
634
  });
639
635
  const channels = [...new Set(phones.filter((phone) => phone !== ""))].map((phone) => {
640
- const channelName = channelForPhone(config.pusher.channel_pattern, phone);
636
+ const channelName = channelForPhone(config.channelPattern ?? DEFAULT_CHANNEL_PATTERN, phone);
641
637
  pusher.subscribe(channelName).bind_global((eventName, data) => {
642
638
  handlers.onEvent(channelName, eventName, data);
643
639
  });
@@ -766,7 +762,6 @@ function createEmergencyController(deps) {
766
762
  let sessionPromise = null;
767
763
  let refreshing = false;
768
764
  let realtimeSubscription = null;
769
- let realtimeConfig = null;
770
765
  let subscribedPhones = [];
771
766
  let messageSequence = 0;
772
767
  let lastReconcileAt = 0;
@@ -824,9 +819,12 @@ function createEmergencyController(deps) {
824
819
  realtimeSubscription = null;
825
820
  subscribedPhones = [];
826
821
  }
827
- function startRealtime(realtime, responders) {
828
- if (!realtime) return;
829
- realtimeConfig = realtime;
822
+ function startRealtime(responders) {
823
+ const realtime = config.realtime ?? null;
824
+ if (!realtime) {
825
+ if (responders.length > 0) patch({ realtimeStatus: "unavailable" });
826
+ return;
827
+ }
830
828
  const phones = [...new Set(responders.map((responder) => responder.phone))];
831
829
  if (realtimeSubscription && phones.length === subscribedPhones.length && phones.every((phone, index) => phone === subscribedPhones[index])) return;
832
830
  realtimeSubscription?.disconnect();
@@ -860,7 +858,7 @@ function createEmergencyController(deps) {
860
858
  const phase = get().phase.kind;
861
859
  if (phase === "idle" || phase === "error") transition({ kind: "initializing" });
862
860
  try {
863
- realtimeConfig = (await bff.config()).realtime;
861
+ await bff.config();
864
862
  const session = await bff.session(config.code);
865
863
  patch({
866
864
  sessionReady: true,
@@ -890,7 +888,6 @@ function createEmergencyController(deps) {
890
888
  async function hydrateCurrent() {
891
889
  try {
892
890
  const current = await bff.current();
893
- realtimeConfig = current.realtime;
894
891
  if (current.active && current.emergency) {
895
892
  const snapshot = payloadToSnapshot(current.emergency, { code: config.code });
896
893
  patch({
@@ -906,7 +903,7 @@ function createEmergencyController(deps) {
906
903
  emergencyId: snapshot.emergencyId,
907
904
  simulated: snapshot.simulated
908
905
  });
909
- startRealtime(current.realtime, snapshot.responders);
906
+ startRealtime(snapshot.responders);
910
907
  events.emit("emergency:resumed", { snapshot });
911
908
  return;
912
909
  }
@@ -988,7 +985,7 @@ function createEmergencyController(deps) {
988
985
  });
989
986
  pushMessage(failures.length > 0 ? "warning" : "success", failures.length > 0 ? copy.partialFailure : copy.activeBanner);
990
987
  events.emit("emergency:activated", { snapshot: hydrated });
991
- startRealtime(realtimeConfig, responders);
988
+ startRealtime(responders);
992
989
  } catch (error) {
993
990
  const normalized = toEmergencyError(error, "network");
994
991
  if (normalized.code === "emergency_already_active") {
@@ -1065,7 +1062,7 @@ function createEmergencyController(deps) {
1065
1062
  code: config.code,
1066
1063
  simulated: snapshot.simulated
1067
1064
  });
1068
- const responders = result.responders.length > 0 ? result.responders.map(toResponder) : next.responders.length > 0 ? next.responders : get().responders;
1065
+ const responders = next.responders.length > 0 ? next.responders : get().responders;
1069
1066
  const updated = {
1070
1067
  ...next,
1071
1068
  responders
@@ -1080,7 +1077,7 @@ function createEmergencyController(deps) {
1080
1077
  emergencyId: updated.emergencyId,
1081
1078
  simulated: updated.simulated
1082
1079
  });
1083
- startRealtime(realtimeConfig, responders);
1080
+ startRealtime(responders);
1084
1081
  events.emit("emergency:updated", { snapshot: updated });
1085
1082
  } catch (error) {
1086
1083
  const normalized = toEmergencyError(error, "network");
@@ -1213,7 +1210,6 @@ function createEmergencyController(deps) {
1213
1210
  bff.destroy();
1214
1211
  realtimeSubscription?.disconnect();
1215
1212
  realtimeSubscription = null;
1216
- realtimeConfig = null;
1217
1213
  subscribedPhones = [];
1218
1214
  patch({
1219
1215
  destroyed: true,
@@ -1344,6 +1340,24 @@ function installEmergencyFonts(input) {
1344
1340
 
1345
1341
  // src/core/config.ts
1346
1342
  const EMERGENCY_CODE_PATTERN = /^[A-Za-z][A-Za-z0-9]{5}$/;
1343
+ const DEFAULT_REALTIME_CHANNEL_PATTERN = "whatsapp.{phone}";
1344
+ /**
1345
+ * Validates the host-supplied realtime block. Returns `null` when the value is
1346
+ * present but invalid; callers treat `undefined` as "realtime not requested".
1347
+ */
1348
+ function normalizeRealtimeConfig(value) {
1349
+ if (!isRecord(value)) return null;
1350
+ const key = value["key"];
1351
+ const cluster = value["cluster"];
1352
+ const channelPattern = value["channelPattern"];
1353
+ if (typeof key !== "string" || key.trim() === "" || typeof cluster !== "string" || cluster.trim() === "") return null;
1354
+ if (channelPattern !== void 0 && (typeof channelPattern !== "string" || channelPattern.trim() === "" || !channelPattern.includes("{phone}"))) return null;
1355
+ return {
1356
+ key,
1357
+ cluster,
1358
+ channelPattern: channelPattern ?? "whatsapp.{phone}"
1359
+ };
1360
+ }
1347
1361
  const LOOPBACK_HOSTS = /* @__PURE__ */ new Set([
1348
1362
  "localhost",
1349
1363
  "127.0.0.1",
@@ -1404,6 +1418,12 @@ function validateConfig(config) {
1404
1418
  config: null,
1405
1419
  error: createEmergencyError("configuration", "The fallback requires a non-empty phone and label.")
1406
1420
  };
1421
+ const realtime = config.realtime === void 0 ? void 0 : normalizeRealtimeConfig(config.realtime);
1422
+ if (realtime === null) return {
1423
+ ok: false,
1424
+ config: null,
1425
+ error: createEmergencyError("configuration", "The realtime configuration requires a non-empty key and cluster, and a channel pattern containing {phone}.")
1426
+ };
1407
1427
  return {
1408
1428
  ok: true,
1409
1429
  error: null,
@@ -1414,7 +1434,8 @@ function validateConfig(config) {
1414
1434
  locale: config.locale ?? "es",
1415
1435
  geolocationTimeoutMs: config.geolocationTimeoutMs ?? 8e3,
1416
1436
  requestTimeoutMs: config.requestTimeoutMs ?? 15e3,
1417
- fontLoading: normalizeFontLoading(config.fontLoading)
1437
+ fontLoading: normalizeFontLoading(config.fontLoading),
1438
+ realtime
1418
1439
  }
1419
1440
  };
1420
1441
  }
@@ -1566,88 +1587,88 @@ function Icon({ name, className, title }) {
1566
1587
 
1567
1588
  // src/styles/panel.module.css
1568
1589
  var panel_module_default = {
1569
- "de-emergency-fade-in": "de-emergency-de-emergency-fade-in-kMlO0G",
1570
- "de-emergency-pulse": "de-emergency-de-emergency-pulse-kMlO0G",
1571
- "de-emergency-pulse-error": "de-emergency-de-emergency-pulse-error-kMlO0G",
1572
- "de-emergency-slide-in": "de-emergency-de-emergency-slide-in-kMlO0G",
1573
- "de-emergency-slide-up": "de-emergency-de-emergency-slide-up-kMlO0G",
1574
- "de-emergency-spin": "de-emergency-de-emergency-spin-kMlO0G",
1575
- "emergency-confirmation": "de-emergency-emergency-confirmation-kMlO0G",
1576
- "emergency-confirmation__body": "de-emergency-emergency-confirmation__body-kMlO0G",
1577
- "emergency-confirmation__button": "de-emergency-emergency-confirmation__button-kMlO0G",
1578
- "emergency-confirmation__button--cancel": "de-emergency-emergency-confirmation__button--cancel-kMlO0G",
1579
- "emergency-confirmation__button--confirm": "de-emergency-emergency-confirmation__button--confirm-kMlO0G",
1580
- "emergency-confirmation__button--danger": "de-emergency-emergency-confirmation__button--danger-kMlO0G",
1581
- "emergency-confirmation__card": "de-emergency-emergency-confirmation__card-kMlO0G",
1582
- "emergency-confirmation__footer": "de-emergency-emergency-confirmation__footer-kMlO0G",
1583
- "emergency-confirmation__icon": "de-emergency-emergency-confirmation__icon-kMlO0G",
1584
- "emergency-confirmation__icon--danger": "de-emergency-emergency-confirmation__icon--danger-kMlO0G",
1585
- "emergency-confirmation__icon--information": "de-emergency-emergency-confirmation__icon--information-kMlO0G",
1586
- "emergency-confirmation__text": "de-emergency-emergency-confirmation__text-kMlO0G",
1587
- "emergency-confirmation__title": "de-emergency-emergency-confirmation__title-kMlO0G",
1588
- "emergency-error-message": "de-emergency-emergency-error-message-kMlO0G",
1589
- "emergency-error-message__container": "de-emergency-emergency-error-message__container-kMlO0G",
1590
- "emergency-error-message__content": "de-emergency-emergency-error-message__content-kMlO0G",
1591
- "emergency-error-message__detail": "de-emergency-emergency-error-message__detail-kMlO0G",
1592
- "emergency-error-message__details": "de-emergency-emergency-error-message__details-kMlO0G",
1593
- "emergency-error-message__icon": "de-emergency-emergency-error-message__icon-kMlO0G",
1594
- "emergency-error-message__text": "de-emergency-emergency-error-message__text-kMlO0G",
1595
- "emergency-error-message__title": "de-emergency-emergency-error-message__title-kMlO0G",
1596
- "emergency-feedback": "de-emergency-emergency-feedback-kMlO0G",
1597
- "emergency-feedback__dismiss": "de-emergency-emergency-feedback__dismiss-kMlO0G",
1598
- "emergency-panel": "de-emergency-emergency-panel-kMlO0G",
1599
- "emergency-panel__body": "de-emergency-emergency-panel__body-kMlO0G",
1600
- "emergency-panel__body-title": "de-emergency-emergency-panel__body-title-kMlO0G",
1601
- "emergency-panel__body-title-container": "de-emergency-emergency-panel__body-title-container-kMlO0G",
1602
- "emergency-panel__button": "de-emergency-emergency-panel__button-kMlO0G",
1603
- "emergency-panel__button--emergency": "de-emergency-emergency-panel__button--emergency-kMlO0G",
1604
- "emergency-panel__button--simulation": "de-emergency-emergency-panel__button--simulation-kMlO0G",
1605
- "emergency-panel__close-button": "de-emergency-emergency-panel__close-button-kMlO0G",
1606
- "emergency-panel__close-icon": "de-emergency-emergency-panel__close-icon-kMlO0G",
1607
- "emergency-panel__footer": "de-emergency-emergency-panel__footer-kMlO0G",
1608
- "emergency-panel__header": "de-emergency-emergency-panel__header-kMlO0G",
1609
- "emergency-panel__title": "de-emergency-emergency-panel__title-kMlO0G",
1610
- "emergency-panel--hidden": "de-emergency-emergency-panel--hidden-kMlO0G",
1611
- "emergency-resume-notification-button": "de-emergency-emergency-resume-notification-button-kMlO0G",
1612
- "emergency-resume-notification-card": "de-emergency-emergency-resume-notification-card-kMlO0G",
1613
- "emergency-resume-notification-icon": "de-emergency-emergency-resume-notification-icon-kMlO0G",
1614
- "emergency-resume-notification-message": "de-emergency-emergency-resume-notification-message-kMlO0G",
1615
- "emergency-resume-notification-overlay": "de-emergency-emergency-resume-notification-overlay-kMlO0G",
1616
- "emergency-resume-notification-title": "de-emergency-emergency-resume-notification-title-kMlO0G",
1617
- "emergency-status__abort-btn": "de-emergency-emergency-status__abort-btn-kMlO0G",
1618
- "emergency-status__body": "de-emergency-emergency-status__body-kMlO0G",
1619
- "emergency-status__cell": "de-emergency-emergency-status__cell-kMlO0G",
1620
- "emergency-status__cell-icon": "de-emergency-emergency-status__cell-icon-kMlO0G",
1621
- "emergency-status__cell-text": "de-emergency-emergency-status__cell-text-kMlO0G",
1622
- "emergency-status__cell-time": "de-emergency-emergency-status__cell-time-kMlO0G",
1623
- "emergency-status__grid": "de-emergency-emergency-status__grid-kMlO0G",
1624
- "emergency-status__header": "de-emergency-emergency-status__header-kMlO0G",
1625
- "emergency-status__loading": "de-emergency-emergency-status__loading-kMlO0G",
1626
- "emergency-status__loading-text": "de-emergency-emergency-status__loading-text-kMlO0G",
1627
- "emergency-status__panel": "de-emergency-emergency-status__panel-kMlO0G",
1628
- "emergency-status__row": "de-emergency-emergency-status__row-kMlO0G",
1629
- "emergency-status__row-container": "de-emergency-emergency-status__row-container-kMlO0G",
1630
- "emergency-status__spinner": "de-emergency-emergency-status__spinner-kMlO0G",
1631
- "emergency-status-panel__header": "de-emergency-emergency-status-panel__header-kMlO0G",
1632
- "emergency-status-panel__refresh-btn": "de-emergency-emergency-status-panel__refresh-btn-kMlO0G",
1633
- "emergency-status-panel__refresh-btn-container": "de-emergency-emergency-status-panel__refresh-btn-container-kMlO0G",
1634
- "emergency-status-panel__refresh-icon": "de-emergency-emergency-status-panel__refresh-icon-kMlO0G",
1635
- "emergency-status-panel__title": "de-emergency-emergency-status-panel__title-kMlO0G",
1636
- "responder-name": "de-emergency-responder-name-kMlO0G",
1637
- "simulacrum-success-message": "de-emergency-simulacrum-success-message-kMlO0G",
1638
- "simulacrum-success-message__container": "de-emergency-simulacrum-success-message__container-kMlO0G",
1639
- "simulacrum-success-message__content": "de-emergency-simulacrum-success-message__content-kMlO0G",
1640
- "simulacrum-success-message__detail": "de-emergency-simulacrum-success-message__detail-kMlO0G",
1641
- "simulacrum-success-message__details": "de-emergency-simulacrum-success-message__details-kMlO0G",
1642
- "simulacrum-success-message__icon": "de-emergency-simulacrum-success-message__icon-kMlO0G",
1643
- "simulacrum-success-message__text": "de-emergency-simulacrum-success-message__text-kMlO0G",
1644
- "simulacrum-success-message__title": "de-emergency-simulacrum-success-message__title-kMlO0G",
1645
- "sos-img": "de-emergency-sos-img-kMlO0G",
1646
- "sos-img__container": "de-emergency-sos-img__container-kMlO0G",
1647
- "status-icon": "de-emergency-status-icon-kMlO0G",
1648
- "status-icon--checked": "de-emergency-status-icon--checked-kMlO0G",
1649
- "status-icon--failed": "de-emergency-status-icon--failed-kMlO0G",
1650
- "status-icon--unchecked": "de-emergency-status-icon--unchecked-kMlO0G"
1590
+ "de-emergency-fade-in": "de-emergency-de-emergency-fade-in-nA5Hwa",
1591
+ "de-emergency-pulse": "de-emergency-de-emergency-pulse-nA5Hwa",
1592
+ "de-emergency-pulse-error": "de-emergency-de-emergency-pulse-error-nA5Hwa",
1593
+ "de-emergency-slide-in": "de-emergency-de-emergency-slide-in-nA5Hwa",
1594
+ "de-emergency-slide-up": "de-emergency-de-emergency-slide-up-nA5Hwa",
1595
+ "de-emergency-spin": "de-emergency-de-emergency-spin-nA5Hwa",
1596
+ "emergency-confirmation": "de-emergency-emergency-confirmation-nA5Hwa",
1597
+ "emergency-confirmation__body": "de-emergency-emergency-confirmation__body-nA5Hwa",
1598
+ "emergency-confirmation__button": "de-emergency-emergency-confirmation__button-nA5Hwa",
1599
+ "emergency-confirmation__button--cancel": "de-emergency-emergency-confirmation__button--cancel-nA5Hwa",
1600
+ "emergency-confirmation__button--confirm": "de-emergency-emergency-confirmation__button--confirm-nA5Hwa",
1601
+ "emergency-confirmation__button--danger": "de-emergency-emergency-confirmation__button--danger-nA5Hwa",
1602
+ "emergency-confirmation__card": "de-emergency-emergency-confirmation__card-nA5Hwa",
1603
+ "emergency-confirmation__footer": "de-emergency-emergency-confirmation__footer-nA5Hwa",
1604
+ "emergency-confirmation__icon": "de-emergency-emergency-confirmation__icon-nA5Hwa",
1605
+ "emergency-confirmation__icon--danger": "de-emergency-emergency-confirmation__icon--danger-nA5Hwa",
1606
+ "emergency-confirmation__icon--information": "de-emergency-emergency-confirmation__icon--information-nA5Hwa",
1607
+ "emergency-confirmation__text": "de-emergency-emergency-confirmation__text-nA5Hwa",
1608
+ "emergency-confirmation__title": "de-emergency-emergency-confirmation__title-nA5Hwa",
1609
+ "emergency-error-message": "de-emergency-emergency-error-message-nA5Hwa",
1610
+ "emergency-error-message__container": "de-emergency-emergency-error-message__container-nA5Hwa",
1611
+ "emergency-error-message__content": "de-emergency-emergency-error-message__content-nA5Hwa",
1612
+ "emergency-error-message__detail": "de-emergency-emergency-error-message__detail-nA5Hwa",
1613
+ "emergency-error-message__details": "de-emergency-emergency-error-message__details-nA5Hwa",
1614
+ "emergency-error-message__icon": "de-emergency-emergency-error-message__icon-nA5Hwa",
1615
+ "emergency-error-message__text": "de-emergency-emergency-error-message__text-nA5Hwa",
1616
+ "emergency-error-message__title": "de-emergency-emergency-error-message__title-nA5Hwa",
1617
+ "emergency-feedback": "de-emergency-emergency-feedback-nA5Hwa",
1618
+ "emergency-feedback__dismiss": "de-emergency-emergency-feedback__dismiss-nA5Hwa",
1619
+ "emergency-panel": "de-emergency-emergency-panel-nA5Hwa",
1620
+ "emergency-panel__body": "de-emergency-emergency-panel__body-nA5Hwa",
1621
+ "emergency-panel__body-title": "de-emergency-emergency-panel__body-title-nA5Hwa",
1622
+ "emergency-panel__body-title-container": "de-emergency-emergency-panel__body-title-container-nA5Hwa",
1623
+ "emergency-panel__button": "de-emergency-emergency-panel__button-nA5Hwa",
1624
+ "emergency-panel__button--emergency": "de-emergency-emergency-panel__button--emergency-nA5Hwa",
1625
+ "emergency-panel__button--simulation": "de-emergency-emergency-panel__button--simulation-nA5Hwa",
1626
+ "emergency-panel__close-button": "de-emergency-emergency-panel__close-button-nA5Hwa",
1627
+ "emergency-panel__close-icon": "de-emergency-emergency-panel__close-icon-nA5Hwa",
1628
+ "emergency-panel__footer": "de-emergency-emergency-panel__footer-nA5Hwa",
1629
+ "emergency-panel__header": "de-emergency-emergency-panel__header-nA5Hwa",
1630
+ "emergency-panel__title": "de-emergency-emergency-panel__title-nA5Hwa",
1631
+ "emergency-panel--hidden": "de-emergency-emergency-panel--hidden-nA5Hwa",
1632
+ "emergency-resume-notification-button": "de-emergency-emergency-resume-notification-button-nA5Hwa",
1633
+ "emergency-resume-notification-card": "de-emergency-emergency-resume-notification-card-nA5Hwa",
1634
+ "emergency-resume-notification-icon": "de-emergency-emergency-resume-notification-icon-nA5Hwa",
1635
+ "emergency-resume-notification-message": "de-emergency-emergency-resume-notification-message-nA5Hwa",
1636
+ "emergency-resume-notification-overlay": "de-emergency-emergency-resume-notification-overlay-nA5Hwa",
1637
+ "emergency-resume-notification-title": "de-emergency-emergency-resume-notification-title-nA5Hwa",
1638
+ "emergency-status__abort-btn": "de-emergency-emergency-status__abort-btn-nA5Hwa",
1639
+ "emergency-status__body": "de-emergency-emergency-status__body-nA5Hwa",
1640
+ "emergency-status__cell": "de-emergency-emergency-status__cell-nA5Hwa",
1641
+ "emergency-status__cell-icon": "de-emergency-emergency-status__cell-icon-nA5Hwa",
1642
+ "emergency-status__cell-text": "de-emergency-emergency-status__cell-text-nA5Hwa",
1643
+ "emergency-status__cell-time": "de-emergency-emergency-status__cell-time-nA5Hwa",
1644
+ "emergency-status__grid": "de-emergency-emergency-status__grid-nA5Hwa",
1645
+ "emergency-status__header": "de-emergency-emergency-status__header-nA5Hwa",
1646
+ "emergency-status__loading": "de-emergency-emergency-status__loading-nA5Hwa",
1647
+ "emergency-status__loading-text": "de-emergency-emergency-status__loading-text-nA5Hwa",
1648
+ "emergency-status__panel": "de-emergency-emergency-status__panel-nA5Hwa",
1649
+ "emergency-status__row": "de-emergency-emergency-status__row-nA5Hwa",
1650
+ "emergency-status__row-container": "de-emergency-emergency-status__row-container-nA5Hwa",
1651
+ "emergency-status__spinner": "de-emergency-emergency-status__spinner-nA5Hwa",
1652
+ "emergency-status-panel__header": "de-emergency-emergency-status-panel__header-nA5Hwa",
1653
+ "emergency-status-panel__refresh-btn": "de-emergency-emergency-status-panel__refresh-btn-nA5Hwa",
1654
+ "emergency-status-panel__refresh-btn-container": "de-emergency-emergency-status-panel__refresh-btn-container-nA5Hwa",
1655
+ "emergency-status-panel__refresh-icon": "de-emergency-emergency-status-panel__refresh-icon-nA5Hwa",
1656
+ "emergency-status-panel__title": "de-emergency-emergency-status-panel__title-nA5Hwa",
1657
+ "responder-name": "de-emergency-responder-name-nA5Hwa",
1658
+ "simulacrum-success-message": "de-emergency-simulacrum-success-message-nA5Hwa",
1659
+ "simulacrum-success-message__container": "de-emergency-simulacrum-success-message__container-nA5Hwa",
1660
+ "simulacrum-success-message__content": "de-emergency-simulacrum-success-message__content-nA5Hwa",
1661
+ "simulacrum-success-message__detail": "de-emergency-simulacrum-success-message__detail-nA5Hwa",
1662
+ "simulacrum-success-message__details": "de-emergency-simulacrum-success-message__details-nA5Hwa",
1663
+ "simulacrum-success-message__icon": "de-emergency-simulacrum-success-message__icon-nA5Hwa",
1664
+ "simulacrum-success-message__text": "de-emergency-simulacrum-success-message__text-nA5Hwa",
1665
+ "simulacrum-success-message__title": "de-emergency-simulacrum-success-message__title-nA5Hwa",
1666
+ "sos-img": "de-emergency-sos-img-nA5Hwa",
1667
+ "sos-img__container": "de-emergency-sos-img__container-nA5Hwa",
1668
+ "status-icon": "de-emergency-status-icon-nA5Hwa",
1669
+ "status-icon--checked": "de-emergency-status-icon--checked-nA5Hwa",
1670
+ "status-icon--failed": "de-emergency-status-icon--failed-nA5Hwa",
1671
+ "status-icon--unchecked": "de-emergency-status-icon--unchecked-nA5Hwa"
1651
1672
  };
1652
1673
 
1653
1674
  // src/react/classnames.ts