From 14e1e6b5493f3f46450e59ec92b7fec96f4a22b6 Mon Sep 17 00:00:00 2001 From: or-else Date: Sat, 4 Jul 2026 16:01:47 +0300 Subject: [PATCH] bug fix: typo --- src/views/tinode-web.jsx | 2 +- umd/index.dev.js | 2 +- umd/index.dev.js.map | 2 +- umd/index.prod.js | 2 +- umd/index.prod.js.map | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/views/tinode-web.jsx b/src/views/tinode-web.jsx index 4da4d4aa..8cd46ca3 100644 --- a/src/views/tinode-web.jsx +++ b/src/views/tinode-web.jsx @@ -1623,7 +1623,7 @@ class TinodeWeb extends React.Component { this.tinode.onDisconnect = undefined; this.tinode.disconnect(); } else { - cleared = Promose.resolve(); + cleared = Promise.resolve(); } this.setState(this.getBlankState()); diff --git a/umd/index.dev.js b/umd/index.dev.js index 68ed78d1..4c6f845d 100644 --- a/umd/index.dev.js +++ b/umd/index.dev.js @@ -6693,7 +6693,7 @@ class TinodeWeb extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) this.tinode.onDisconnect = undefined; this.tinode.disconnect(); } else { - cleared = Promose.resolve(); + cleared = Promise.resolve(); } this.setState(this.getBlankState()); cleared.then(_ => { diff --git a/umd/index.dev.js.map b/umd/index.dev.js.map index e1392b90..c6082d2b 100644 --- a/umd/index.dev.js.map +++ b/umd/index.dev.js.map @@ -1 +1 @@ -{"version":3,"file":"index.dev.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA+D;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAM;AACrB,eAAe,qBAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,wCAAwC,MAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,KAAK;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa,GAAG,KAAK;AACjD;AACA;AACA;AACA,+BAA+B,iBAAiB,IAAI,SAAS,GAAG,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD,KAAK;AACL;AACA,mBAAmB,MAAM,IAAI;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,GAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,UAAU,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2jC;AAC3jC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5pE+C;AAGxC,MAAM,aAAa,GAAG,WAAW;AAEjC,MAAM,QAAQ,GAAG,aAAa,GAA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E,mBAAmB;AACrB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA,YAAY,mBAAO,CAAC,oBAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iGAAiG,eAAe;AAChH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA,KAAK,GAAG;;AAER,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,4BAA4B;AAC5B;AACA,qCAAqC;;AAErC,gCAAgC;AAChC;AACA;;AAEA,gCAAgC;;AAEhC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,sBAAsB;AACtB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,iCAAiC;AACjC;AACA,SAAS;AACT,2BAA2B;AAC3B;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D;;AAE3D;AACA;;AAEA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA,gFAAgF;AAChF;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;;AAGlB;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2HAA2H;AAC3H;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA,oEAAoE;;AAEpE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,eAAe;AAC1B,WAAW,GAAG;AACd,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;;AAER;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,oBAAoB;AACpB,2DAA2D,UAAU;AACrE,yBAAyB,UAAU;AACnC;AACA,aAAa,UAAU;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,4CAA4C;;AAE5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA,0DAA0D;AAC1D;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gDAAgD,gDAAgD,MAAM,aAAa;;AAEnH;AACA,iDAAiD,kCAAkC,OAAO;;AAE1F,yGAAyG,cAAc,UAAU,gGAAgG,kBAAkB,UAAU,UAAU;;AAEvQ;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA,gBAAgB;AAChB,cAAc;AACd,GAAG;AACH;;;;;;;;;;;AClyCa;;AAEb,IAAI,KAAqC,EAAE;AAAA,EAE1C,CAAC;AACF,EAAE,uJAAsE;AACxE;;;;;;;;;;;ACNA,wB;;;;;;;;;;ACAA,uB;;;;;;;;;;ACAA,0B;;;;;;;;;;ACAA,2B;;;;;;;;;;ACAA,wB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAoE;AACuB;AACwH;AACpK;AAClB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,GAAG,gBAAgB;AAC7D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAM;;AAEzB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gBAAgB,sCAAsC,SAAS;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA,uEAAuE,SAAS;AAChF,0EAA0E,SAAS;AACnF,sEAAsE,SAAS;AAC/E;AACA;AACA,6EAA6E,SAAS;AACtF;AACA;AACA,iGAAiG,sBAAsB;AACvH,oGAAoG,sBAAsB;AAC1H,oGAAoG,sBAAsB;AAC1H,2GAA2G,sBAAsB;AACjI;AACA;AACA;AACA,0BAA0B,wDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,yBAAyB;AACzB;AACA;AACA;AACA;AACA,wCAAwC,0DAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,qBAAqB;AACxG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4DAAY;AACnC;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,0BAA0B,mEAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB,YAAY,yDAAS;AACrB;AACA;AACA;AACA,uFAAuF,eAAe;AACtG;AACA;AACA,0BAA0B,mEAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,QAAQ,yDAAS,OAAO,2DAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mEAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mIAAmI;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mEAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,mEAAmB;AAClE;AACA;AACA;AACA,qEAAqE,eAAe;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ,kBAAkB,QAAQ;AAC7E;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA,2BAA2B,0DAAS,IAAI,QAAQ,oBAAoB,kBAAkB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mEAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAa;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yDAAa;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yDAAa;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,GAAG,kBAAkB;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,aAAa;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kCAAkC;AACtD,iCAAiC,6EAA6B,kBAAkB,0CAA0C;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oEAAoB;AACjC;AACA;AACA;AACA,mBAAmB,yEAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6EAA6B;AACxC;AACA,qBAAqB,yCAAyC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAS;AACpC,2BAA2B,0DAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEiY;AACjY;;;;;;;;;;;;;;;;;;ACptC0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB,eAAe,UAAU;AAC1F;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,wCAAwC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,gBAAgB,eAAe;AAC/B;AACA;AACA,2BAA2B,UAAU,GAAG,qBAAqB;AAC7D;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB,mCAAmC,UAAU;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmD;AACnD;;;;;;;;;;;;;;;;;;;;;;;ACvZ0F;AAC1C;AACa;AAChC;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,WAAW;AAC5H;AACA;AACA,yDAAyD,cAAc,4BAA4B,cAAc,cAAc,GAAG,eAAe;AACjJ;AACA;AACA;AACA,0BAA0B,wDAAY;AACtC;AACA;AACA,6BAA6B,yDAAa;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C,cAAc,sBAAsB,YAAY,UAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB,EAAE,aAAa;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qCAAqC,IAAI,KAAK;AACzF;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB,GAAG,gBAAgB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qCAAqC;AAC/E;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD,cAAc,oCAAoC,GAAG,IAAI;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yCAAyC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,cAAc,oCAAoC,GAAG,IAAI;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD,IAAI,iCAAiC;AACrC,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA,gCAAgC,qDAAM;AACtC,8BAA8B,2DAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,iEAAkB,KAAK,0DAAS;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAAe;AACf;AACA,8DAAe;;AAE+D;AAC9E;;;;;;;;;;;;;;;;;;AC9oCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,KAAK,cAAc;AACnD;AACA;AACA,sFAAsF,QAAQ;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAE4D;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1NqD;AACL;AACT;AAC+F;AAC5C;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;AAEvC;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2CAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,UAAU,6CAAQ;AAClB,UAAU,6CAAQ;AAClB,UAAU,6CAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,WAAW;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA,gJAAgJ,qBAAqB;AACrK,+HAA+H,WAAW;AAC1I;AACA,0IAA0I,WAAW;AACrJ,4IAA4I,WAAW;AACvJ;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC,wHAAwH,WAAW;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAAM,mDAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4CAA4C,GAAG,IAAI;AACrF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,6CAA6C,UAAU,gBAAgB,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,GAAG,mBAAmB;AAC1G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,GAAG,MAAM;AAC7F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC,cAAc,SAAS,YAAY,UAAU;AAC7C;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU;AAC/D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAA2C;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,8BAA8B;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU,gBAAgB,IAAI,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mDAAmD;AAC7E,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mEAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,uDAAuD;AACvD;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,8DAAe;AACnB;AACA,IAAI,8DAAe;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yEAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAoB;AAC5B,QAAQ,iEAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qDAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,WAAW,2DAAY,CAAC,kEAAkB;AAC1C;AACA;AACA,mBAAmB,iBAAiB;AACpC,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB,eAAe,oBAAoB;AACvE;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA,wDAAwD,iBAAiB;AACzE,QAAQ,iBAAiB;AACzB;AACA;AACA,UAAU,eAAe;AACzB,YAAY,sBAAsB;AAClC;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C,0BAA0B,MAAM,oBAAoB;AACpD;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA;AACA,yBAAyB,sBAAsB;AAC/C;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEwK;AACxK;;;;;;;;;;;;;;;AC97DA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAgD;AAClB;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAAe;AACf;;;;;;;;;;;;;;;;;;;;;;;;ACvBoC;AACpC;;;;;;;;;;;;;;;;;;;ACDmE;AACN;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yCAAyC,IAAI;AAC9E;AACA,wBAAwB,qDAAI;AAC5B;AACA;AACA,oBAAoB,qDAAI,sDAAsD,qDAAI;AAClF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qDAAI;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAY;AACZ;AACA;AACA;AACA,CAAC;;AAE2B;;;;;;;;;;;;;;;;;;;AC9F5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEqG;;;;;;;;;;;;;;;;;UCxLrG;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WC/BA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA,E;;;;;WCPA,uDAAuD,qCAAqC,kBAAkB;WAC9G;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,sDAAsD;WACtD,sCAAsC,mGAAmG;WACzI,8DAA8D,wBAAwB,uBAAuB;WAC7G;WACA,+BAA+B;WAC/B;WACA;WACA,E;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,2CAA2C,0CAA0C;WACrF,MAAM;WACN,2CAA2C,gCAAgC;WAC3E;WACA,KAAK,yBAAyB;WAC9B;WACA,GAAG;WACH;WACA;WACA,0CAA0C,wCAAwC;WAClF;WACA;WACA;WACA,E;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF,E;;;;;WCRA;WACA;WACA;WACA;WACA,E;;;;;WCJA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC,I;;;;;WCPD,8CAA8C,yD;;;;;WCA9C;WACA;WACA;WACA;WACA,uBAAuB,4BAA4B;WACnD;WACA;WACA;WACA,iBAAiB,oBAAoB;WACrC;WACA,mGAAmG,YAAY;WAC/G;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,4CAA4C,mBAAmB;WAC/D;WACA;WACA,mEAAmE,iCAAiC;WACpG;WACA;WACA;WACA,E;;;;;WCxCA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;WCNA;WACA;WACA,kDAAkD,iDAAiD,sCAAsC;WACzI,E;;;;;WCHA,gC;;;;;WCAA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA,iCAAiC;;WAEjC;WACA;WACA;WACA,KAAK;WACL,eAAe;WACf;WACA,2DAA2D,oEAAoE;WAC/H;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,iCAAiC,mCAAmC;WACpE;WACA;WACA;WACA;WACA;W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","sources":["webpack://tinode-webapp/./node_modules/@firebase/util/dist/index.esm.js","webpack://tinode-webapp/./src/config.js","webpack://tinode-webapp/./src/constants.js","webpack://tinode-webapp/./src/lib/blob-helpers.js","webpack://tinode-webapp/./src/lib/formatters.js","webpack://tinode-webapp/./src/lib/host-name.js","webpack://tinode-webapp/./src/lib/local-storage.js","webpack://tinode-webapp/./src/lib/navigation.js","webpack://tinode-webapp/./src/lib/strformat.js","webpack://tinode-webapp/./src/lib/utils.js","webpack://tinode-webapp/./src/version.js","webpack://tinode-webapp/./src/views/acc-general-view.jsx","webpack://tinode-webapp/./src/views/acc-notifications-view.jsx","webpack://tinode-webapp/./src/views/acc-support-view.jsx","webpack://tinode-webapp/./src/views/contacts-view.jsx","webpack://tinode-webapp/./src/views/login-view.jsx","webpack://tinode-webapp/./src/views/new-topic-view.jsx","webpack://tinode-webapp/./src/views/settings-view.jsx","webpack://tinode-webapp/./src/views/sidepanel-view.jsx","webpack://tinode-webapp/./src/views/tinode-web.jsx","webpack://tinode-webapp/./src/views/topic-common-view.jsx","webpack://tinode-webapp/./src/views/validation-view.jsx","webpack://tinode-webapp/./src/widgets/alert.jsx","webpack://tinode-webapp/./src/widgets/audio-player.jsx","webpack://tinode-webapp/./src/widgets/avatar-crop.jsx","webpack://tinode-webapp/./src/widgets/avatar-upload.jsx","webpack://tinode-webapp/./src/widgets/badge-list.jsx","webpack://tinode-webapp/./src/widgets/button-back.jsx","webpack://tinode-webapp/./src/widgets/call-incoming.jsx","webpack://tinode-webapp/./src/widgets/call-message.jsx","webpack://tinode-webapp/./src/widgets/call-status.jsx","webpack://tinode-webapp/./src/widgets/checkbox.jsx","webpack://tinode-webapp/./src/widgets/chip-input.jsx","webpack://tinode-webapp/./src/widgets/chip.jsx","webpack://tinode-webapp/./src/widgets/contact-action.jsx","webpack://tinode-webapp/./src/widgets/contact-badges.jsx","webpack://tinode-webapp/./src/widgets/contact-list.jsx","webpack://tinode-webapp/./src/widgets/contact.jsx","webpack://tinode-webapp/./src/widgets/context-menu.jsx","webpack://tinode-webapp/./src/widgets/cropper.jsx","webpack://tinode-webapp/./src/widgets/error-panel.jsx","webpack://tinode-webapp/./src/widgets/file-progress.jsx","webpack://tinode-webapp/./src/widgets/forward-dialog.jsx","webpack://tinode-webapp/./src/widgets/host-selector.jsx","webpack://tinode-webapp/./src/widgets/in-place-edit.jsx","webpack://tinode-webapp/./src/widgets/inline-video.jsx","webpack://tinode-webapp/./src/widgets/lazy-image.jsx","webpack://tinode-webapp/./src/widgets/letter-tile.jsx","webpack://tinode-webapp/./src/widgets/load-spinner.jsx","webpack://tinode-webapp/./src/widgets/menu-cancel.jsx","webpack://tinode-webapp/./src/widgets/menu-contacts.jsx","webpack://tinode-webapp/./src/widgets/menu-start.jsx","webpack://tinode-webapp/./src/widgets/new-topic-by-id.jsx","webpack://tinode-webapp/./src/widgets/new-topic-group.jsx","webpack://tinode-webapp/./src/widgets/search-contacts.jsx","webpack://tinode-webapp/./src/widgets/side-navbar.jsx","webpack://tinode-webapp/./src/widgets/tag-manager.jsx","webpack://tinode-webapp/./src/widgets/the-card-mini.jsx","webpack://tinode-webapp/./src/widgets/topic-desc-edit.jsx","webpack://tinode-webapp/./src/widgets/unread-badge.jsx","webpack://tinode-webapp/./src/widgets/uploading-image.jsx","webpack://tinode-webapp/./src/widgets/visible-password.jsx","webpack://tinode-webapp/./node_modules/react-dom/client.js","webpack://tinode-webapp/./node_modules/react/cjs/react-jsx-dev-runtime.development.js","webpack://tinode-webapp/./node_modules/react/jsx-dev-runtime.js","webpack://tinode-webapp/external var \"QRCode\"","webpack://tinode-webapp/external var \"React\"","webpack://tinode-webapp/external var \"ReactDOM\"","webpack://tinode-webapp/external var \"ReactIntl\"","webpack://tinode-webapp/external var \"tinode\"","webpack://tinode-webapp/./node_modules/@firebase/app/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/@firebase/component/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/@firebase/installations/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/@firebase/logger/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/@firebase/messaging/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/@firebase/util/dist/postinstall.mjs","webpack://tinode-webapp/./node_modules/firebase/app/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/firebase/messaging/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/idb/build/index.js","webpack://tinode-webapp/./node_modules/idb/build/wrap-idb-value.js","webpack://tinode-webapp/webpack/bootstrap","webpack://tinode-webapp/webpack/runtime/compat get default export","webpack://tinode-webapp/webpack/runtime/create fake namespace object","webpack://tinode-webapp/webpack/runtime/define property getters","webpack://tinode-webapp/webpack/runtime/ensure chunk","webpack://tinode-webapp/webpack/runtime/get javascript chunk filename","webpack://tinode-webapp/webpack/runtime/global","webpack://tinode-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://tinode-webapp/webpack/runtime/load script","webpack://tinode-webapp/webpack/runtime/make namespace object","webpack://tinode-webapp/webpack/runtime/set anonymous default export name","webpack://tinode-webapp/webpack/runtime/publicPath","webpack://tinode-webapp/webpack/runtime/jsonp chunk loading","webpack://tinode-webapp/./src/index.js"],"sourcesContent":["import { getDefaultsFromPostinstall } from './postinstall.mjs';\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\n */\nconst CONSTANTS = {\n /**\n * @define {boolean} Whether this is the client Node.js SDK.\n */\n NODE_CLIENT: false,\n /**\n * @define {boolean} Whether this is the Admin Node.js SDK.\n */\n NODE_ADMIN: false,\n /**\n * Firebase SDK Version\n */\n SDK_VERSION: '${JSCORE_VERSION}'\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Throws an error if the provided assertion is falsy\n */\nconst assert = function (assertion, message) {\n if (!assertion) {\n throw assertionError(message);\n }\n};\n/**\n * Returns an Error object suitable for throwing.\n */\nconst assertionError = function (message) {\n return new Error('Firebase Database (' +\n CONSTANTS.SDK_VERSION +\n ') INTERNAL ASSERT FAILED: ' +\n message);\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst stringToByteArray$1 = function (str) {\n // TODO(user): Use native implementations if/when available\n const out = [];\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n if (c < 128) {\n out[p++] = c;\n }\n else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n }\n else if ((c & 0xfc00) === 0xd800 &&\n i + 1 < str.length &&\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n else {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return out;\n};\n/**\n * Turns an array of numbers into the string given by the concatenation of the\n * characters to which the numbers correspond.\n * @param bytes Array of numbers representing characters.\n * @return Stringification of the array.\n */\nconst byteArrayToString = function (bytes) {\n // TODO(user): Use native implementations if/when available\n const out = [];\n let pos = 0, c = 0;\n while (pos < bytes.length) {\n const c1 = bytes[pos++];\n if (c1 < 128) {\n out[c++] = String.fromCharCode(c1);\n }\n else if (c1 > 191 && c1 < 224) {\n const c2 = bytes[pos++];\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n }\n else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n const c4 = bytes[pos++];\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\n 0x10000;\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n }\n else {\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n }\n }\n return out.join('');\n};\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\n// TODO(dlarocque): Define this as a class, since we no longer target ES5.\nconst base64 = {\n /**\n * Maps bytes to characters.\n */\n byteToCharMap_: null,\n /**\n * Maps characters to bytes.\n */\n charToByteMap_: null,\n /**\n * Maps bytes to websafe characters.\n * @private\n */\n byteToCharMapWebSafe_: null,\n /**\n * Maps websafe characters to bytes.\n * @private\n */\n charToByteMapWebSafe_: null,\n /**\n * Our default alphabet, shared between\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n */\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n /**\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n */\n get ENCODED_VALS() {\n return this.ENCODED_VALS_BASE + '+/=';\n },\n /**\n * Our websafe alphabet.\n */\n get ENCODED_VALS_WEBSAFE() {\n return this.ENCODED_VALS_BASE + '-_.';\n },\n /**\n * Whether this browser supports the atob and btoa functions. This extension\n * started at Mozilla but is now implemented by many browsers. We use the\n * ASSUME_* variables to avoid pulling in the full useragent detection library\n * but still allowing the standard per-browser compilations.\n *\n */\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\n /**\n * Base64-encode an array of bytes.\n *\n * @param input An array of bytes (numbers with\n * value in [0, 255]) to encode.\n * @param webSafe Boolean indicating we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeByteArray(input, webSafe) {\n if (!Array.isArray(input)) {\n throw Error('encodeByteArray takes an array as a parameter');\n }\n this.init_();\n const byteToCharMap = webSafe\n ? this.byteToCharMapWebSafe_\n : this.byteToCharMap_;\n const output = [];\n for (let i = 0; i < input.length; i += 3) {\n const byte1 = input[i];\n const haveByte2 = i + 1 < input.length;\n const byte2 = haveByte2 ? input[i + 1] : 0;\n const haveByte3 = i + 2 < input.length;\n const byte3 = haveByte3 ? input[i + 2] : 0;\n const outByte1 = byte1 >> 2;\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\n let outByte4 = byte3 & 0x3f;\n if (!haveByte3) {\n outByte4 = 64;\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\n }\n return output.join('');\n },\n /**\n * Base64-encode a string.\n *\n * @param input A string to encode.\n * @param webSafe If true, we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeString(input, webSafe) {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return btoa(input);\n }\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\n },\n /**\n * Base64-decode a string.\n *\n * @param input to decode.\n * @param webSafe True if we should use the\n * alternative alphabet.\n * @return string representing the decoded value.\n */\n decodeString(input, webSafe) {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return atob(input);\n }\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n },\n /**\n * Base64-decode a string.\n *\n * In base-64 decoding, groups of four characters are converted into three\n * bytes. If the encoder did not apply padding, the input length may not\n * be a multiple of 4.\n *\n * In this case, the last group will have fewer than 4 characters, and\n * padding will be inferred. If the group has one or two characters, it decodes\n * to one byte. If the group has three characters, it decodes to two bytes.\n *\n * @param input Input to decode.\n * @param webSafe True if we should use the web-safe alphabet.\n * @return bytes representing the decoded value.\n */\n decodeStringToByteArray(input, webSafe) {\n this.init_();\n const charToByteMap = webSafe\n ? this.charToByteMapWebSafe_\n : this.charToByteMap_;\n const output = [];\n for (let i = 0; i < input.length;) {\n const byte1 = charToByteMap[input.charAt(i++)];\n const haveByte2 = i < input.length;\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n const haveByte3 = i < input.length;\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n const haveByte4 = i < input.length;\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw new DecodeBase64StringError();\n }\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\n output.push(outByte1);\n if (byte3 !== 64) {\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\n output.push(outByte2);\n if (byte4 !== 64) {\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\n output.push(outByte3);\n }\n }\n }\n return output;\n },\n /**\n * Lazy static initialization function. Called before\n * accessing any of the static map variables.\n * @private\n */\n init_() {\n if (!this.byteToCharMap_) {\n this.byteToCharMap_ = {};\n this.charToByteMap_ = {};\n this.byteToCharMapWebSafe_ = {};\n this.charToByteMapWebSafe_ = {};\n // We want quick mappings back and forth, so we precompute two maps.\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\n // Be forgiving when decoding and correctly decode both encodings.\n if (i >= this.ENCODED_VALS_BASE.length) {\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n }\n }\n }\n }\n};\n/**\n * An error encountered while decoding base64 string.\n */\nclass DecodeBase64StringError extends Error {\n constructor() {\n super(...arguments);\n this.name = 'DecodeBase64StringError';\n }\n}\n/**\n * URL-safe base64 encoding\n */\nconst base64Encode = function (str) {\n const utf8Bytes = stringToByteArray$1(str);\n return base64.encodeByteArray(utf8Bytes, true);\n};\n/**\n * URL-safe base64 encoding (without \".\" padding in the end).\n * e.g. Used in JSON Web Token (JWT) parts.\n */\nconst base64urlEncodeWithoutPadding = function (str) {\n // Use base64url encoding and remove padding in the end (dot characters).\n return base64Encode(str).replace(/\\./g, '');\n};\n/**\n * URL-safe base64 decoding\n *\n * NOTE: DO NOT use the global atob() function - it does NOT support the\n * base64Url variant encoding.\n *\n * @param str To be decoded\n * @return Decoded result, if possible\n */\nconst base64Decode = function (str) {\n try {\n return base64.decodeString(str, true);\n }\n catch (e) {\n console.error('base64Decode failed: ', e);\n }\n return null;\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Do a deep-copy of basic JavaScript Objects or Arrays.\n */\nfunction deepCopy(value) {\n return deepExtend(undefined, value);\n}\n/**\n * Copy properties from source to target (recursively allows extension\n * of Objects and Arrays). Scalar values in the target are over-written.\n * If target is undefined, an object of the appropriate type will be created\n * (and returned).\n *\n * We recursively copy all child properties of plain Objects in the source- so\n * that namespace- like dictionaries are merged.\n *\n * Note that the target can be a function, in which case the properties in\n * the source Object are copied onto it as static properties of the Function.\n *\n * Note: we don't merge __proto__ to prevent prototype pollution\n */\nfunction deepExtend(target, source) {\n if (!(source instanceof Object)) {\n return source;\n }\n switch (source.constructor) {\n case Date:\n // Treat Dates like scalars; if the target date object had any child\n // properties - they will be lost!\n const dateValue = source;\n return new Date(dateValue.getTime());\n case Object:\n if (target === undefined) {\n target = {};\n }\n break;\n case Array:\n // Always copy the array source and overwrite the target.\n target = [];\n break;\n default:\n // Not a plain Object - treat it as a scalar.\n return source;\n }\n for (const prop in source) {\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\n continue;\n }\n target[prop] = deepExtend(target[prop], source[prop]);\n }\n return target;\n}\nfunction isValidKey(key) {\n return key !== '__proto__';\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Polyfill for `globalThis` object.\n * @returns the `globalThis` object for the given environment.\n * @public\n */\nfunction getGlobal() {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('Unable to locate global object.');\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\n/**\n * Attempt to read defaults from a JSON string provided to\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\n * The dots are in parens because certain compilers (Vite?) cannot\n * handle seeing that variable in comments.\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\n */\nconst getDefaultsFromEnvVariable = () => {\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\n return;\n }\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\n if (defaultsJsonString) {\n return JSON.parse(defaultsJsonString);\n }\n};\nconst getDefaultsFromCookie = () => {\n if (typeof document === 'undefined') {\n return;\n }\n let match;\n try {\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\n }\n catch (e) {\n // Some environments such as Angular Universal SSR have a\n // `document` object but error on accessing `document.cookie`.\n return;\n }\n const decoded = match && base64Decode(match[1]);\n return decoded && JSON.parse(decoded);\n};\n/**\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\n * (1) if such an object exists as a property of `globalThis`\n * (2) if such an object was provided on a shell environment variable\n * (3) if such an object exists in a cookie\n * @public\n */\nconst getDefaults = () => {\n try {\n return (getDefaultsFromPostinstall() ||\n getDefaultsFromGlobal() ||\n getDefaultsFromEnvVariable() ||\n getDefaultsFromCookie());\n }\n catch (e) {\n /**\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\n * to any environment case we have not accounted for. Log to\n * info instead of swallowing so we can find these unknown cases\n * and add paths for them if needed.\n */\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\n return;\n }\n};\n/**\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\n * @public\n */\nconst getDefaultEmulatorHost = (productName) => getDefaults()?.emulatorHosts?.[productName];\n/**\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\n * @public\n */\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\n const host = getDefaultEmulatorHost(productName);\n if (!host) {\n return undefined;\n }\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\n }\n // eslint-disable-next-line no-restricted-globals\n const port = parseInt(host.substring(separatorIndex + 1), 10);\n if (host[0] === '[') {\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\n return [host.substring(1, separatorIndex - 1), port];\n }\n else {\n return [host.substring(0, separatorIndex), port];\n }\n};\n/**\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\n * @public\n */\nconst getDefaultAppConfig = () => getDefaults()?.config;\n/**\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\n * prefixed by \"_\")\n * @public\n */\nconst getExperimentalSetting = (name) => getDefaults()?.[`_${name}`];\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass Deferred {\n constructor() {\n this.reject = () => { };\n this.resolve = () => { };\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n /**\n * Our API internals are not promisified and cannot because our callback APIs have subtle expectations around\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\n */\n wrapCallback(callback) {\n return (error, value) => {\n if (error) {\n this.reject(error);\n }\n else {\n this.resolve(value);\n }\n if (typeof callback === 'function') {\n // Attaching noop handler just in case developer wasn't expecting\n // promises\n this.promise.catch(() => { });\n // Some of our callbacks don't expect a value and our own tests\n // assert that the parameter length is 1\n if (callback.length === 1) {\n callback(error);\n }\n else {\n callback(error, value);\n }\n }\n };\n }\n}\n\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction createMockUserToken(token, projectId) {\n if (token.uid) {\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\n }\n // Unsecured JWTs use \"none\" as the algorithm.\n const header = {\n alg: 'none',\n type: 'JWT'\n };\n const project = projectId || 'demo-project';\n const iat = token.iat || 0;\n const sub = token.sub || token.user_id;\n if (!sub) {\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\n }\n const payload = {\n // Set all required fields to decent defaults\n iss: `https://securetoken.google.com/${project}`,\n aud: project,\n iat,\n exp: iat + 3600,\n auth_time: iat,\n sub,\n user_id: sub,\n firebase: {\n sign_in_provider: 'custom',\n identities: {}\n },\n // Override with user options\n ...token\n };\n // Unsecured JWTs use the empty string as a signature.\n const signature = '';\n return [\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\n signature\n ].join('.');\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns navigator.userAgent string or '' if it's not defined.\n * @return user agent string\n */\nfunction getUA() {\n if (typeof navigator !== 'undefined' &&\n typeof navigator['userAgent'] === 'string') {\n return navigator['userAgent'];\n }\n else {\n return '';\n }\n}\n/**\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\n *\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\n * wait for a callback.\n */\nfunction isMobileCordova() {\n return (typeof window !== 'undefined' &&\n // @ts-ignore Setting up an broadly applicable index signature for Window\n // just to deal with this case would probably be a bad idea.\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\n}\n/**\n * Detect Node.js.\n *\n * @return true if Node.js environment is detected or specified.\n */\n// Node detection logic from: https://github.com/iliakan/detect-node/\nfunction isNode() {\n const forceEnvironment = getDefaults()?.forceEnvironment;\n if (forceEnvironment === 'node') {\n return true;\n }\n else if (forceEnvironment === 'browser') {\n return false;\n }\n try {\n return (Object.prototype.toString.call(global.process) === '[object process]');\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Detect Browser Environment.\n * Note: This will return true for certain test frameworks that are incompletely\n * mimicking a browser, and should not lead to assuming all browser APIs are\n * available.\n */\nfunction isBrowser() {\n return typeof window !== 'undefined' || isWebWorker();\n}\n/**\n * Detect Web Worker context.\n */\nfunction isWebWorker() {\n return (typeof WorkerGlobalScope !== 'undefined' &&\n typeof self !== 'undefined' &&\n self instanceof WorkerGlobalScope);\n}\n/**\n * Detect Cloudflare Worker context.\n */\nfunction isCloudflareWorker() {\n return (typeof navigator !== 'undefined' &&\n navigator.userAgent === 'Cloudflare-Workers');\n}\nfunction isBrowserExtension() {\n const runtime = typeof chrome === 'object'\n ? chrome.runtime\n : typeof browser === 'object'\n ? browser.runtime\n : undefined;\n return typeof runtime === 'object' && runtime.id !== undefined;\n}\n/**\n * Detect React Native.\n *\n * @return true if ReactNative environment is detected.\n */\nfunction isReactNative() {\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\n}\n/** Detects Electron apps. */\nfunction isElectron() {\n return getUA().indexOf('Electron/') >= 0;\n}\n/** Detects Internet Explorer. */\nfunction isIE() {\n const ua = getUA();\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n}\n/** Detects Universal Windows Platform apps. */\nfunction isUWP() {\n return getUA().indexOf('MSAppHost/') >= 0;\n}\n/**\n * Detect whether the current SDK build is the Node version.\n *\n * @return true if it's the Node SDK build.\n */\nfunction isNodeSdk() {\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\n}\n/** Returns true if we are running in Safari. */\nfunction isSafari() {\n return (!isNode() &&\n !!navigator.userAgent &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome'));\n}\n/** Returns true if we are running in Safari or WebKit */\nfunction isSafariOrWebkit() {\n return (!isNode() &&\n !!navigator.userAgent &&\n (navigator.userAgent.includes('Safari') ||\n navigator.userAgent.includes('WebKit')) &&\n !navigator.userAgent.includes('Chrome'));\n}\n/**\n * This method checks if indexedDB is supported by current browser/service worker context\n * @return true if indexedDB is supported by current browser/service worker context\n */\nfunction isIndexedDBAvailable() {\n try {\n return typeof indexedDB === 'object';\n }\n catch (e) {\n return false;\n }\n}\n/**\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\n * if errors occur during the database open operation.\n *\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\n * private browsing)\n */\nfunction validateIndexedDBOpenable() {\n return new Promise((resolve, reject) => {\n try {\n let preExist = true;\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\n const request = self.indexedDB.open(DB_CHECK_NAME);\n request.onsuccess = () => {\n request.result.close();\n // delete database only when it doesn't pre-exist\n if (!preExist) {\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\n }\n resolve(true);\n };\n request.onupgradeneeded = () => {\n preExist = false;\n };\n request.onerror = () => {\n reject(request.error?.message || '');\n };\n }\n catch (error) {\n reject(error);\n }\n });\n}\n/**\n *\n * This method checks whether cookie is enabled within current browser\n * @return true if cookie is enabled within current browser\n */\nfunction areCookiesEnabled() {\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\n return false;\n }\n return true;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Standardized Firebase Error.\n *\n * Usage:\n *\n * // TypeScript string literals for type-safe codes\n * type Err =\n * 'unknown' |\n * 'object-not-found'\n * ;\n *\n * // Closure enum for type-safe error codes\n * // at-enum {string}\n * var Err = {\n * UNKNOWN: 'unknown',\n * OBJECT_NOT_FOUND: 'object-not-found',\n * }\n *\n * let errors: Map = {\n * 'generic-error': \"Unknown error\",\n * 'file-not-found': \"Could not find file: {$file}\",\n * };\n *\n * // Type-safe function - must pass a valid error code as param.\n * let error = new ErrorFactory('service', 'Service', errors);\n *\n * ...\n * throw error.create(Err.GENERIC);\n * ...\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\n * ...\n * // Service: Could not file file: foo.txt (service/file-not-found).\n *\n * catch (e) {\n * assert(e.message === \"Could not find file: foo.txt.\");\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\n * console.log(\"Could not read file: \" + e['file']);\n * }\n * }\n */\nconst ERROR_NAME = 'FirebaseError';\n// Based on code from:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\nclass FirebaseError extends Error {\n constructor(\n /** The error code for this error. */\n code, message, \n /** Custom data for this error. */\n customData) {\n super(message);\n this.code = code;\n this.customData = customData;\n /** The custom name for all FirebaseErrors. */\n this.name = ERROR_NAME;\n // Fix For ES5\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n // TODO(dlarocque): Replace this with `new.target`: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#support-for-newtarget\n // which we can now use since we no longer target ES5.\n Object.setPrototypeOf(this, FirebaseError.prototype);\n // Maintains proper stack trace for where our error was thrown.\n // Only available on V8.\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\n }\n }\n}\nclass ErrorFactory {\n constructor(service, serviceName, errors) {\n this.service = service;\n this.serviceName = serviceName;\n this.errors = errors;\n }\n create(code, ...data) {\n const customData = data[0] || {};\n const fullCode = `${this.service}/${code}`;\n const template = this.errors[code];\n const message = template ? replaceTemplate(template, customData) : 'Error';\n // Service Name: Error message (service/code).\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\n const error = new FirebaseError(fullCode, fullMessage, customData);\n return error;\n }\n}\nfunction replaceTemplate(template, data) {\n return template.replace(PATTERN, (_, key) => {\n const value = data[key];\n return value != null ? String(value) : `<${key}?>`;\n });\n}\nconst PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Evaluates a JSON string into a javascript object.\n *\n * @param {string} str A string containing JSON.\n * @return {*} The javascript object representing the specified JSON.\n */\nfunction jsonEval(str) {\n return JSON.parse(str);\n}\n/**\n * Returns JSON representing a javascript object.\n * @param {*} data JavaScript object to be stringified.\n * @return {string} The JSON contents of the object.\n */\nfunction stringify(data) {\n return JSON.stringify(data);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Decodes a Firebase auth. token into constituent parts.\n *\n * Notes:\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\n * - Doesn't check if the token is actually valid.\n */\nconst decode = function (token) {\n let header = {}, claims = {}, data = {}, signature = '';\n try {\n const parts = token.split('.');\n header = jsonEval(base64Decode(parts[0]) || '');\n claims = jsonEval(base64Decode(parts[1]) || '');\n signature = parts[2];\n data = claims['d'] || {};\n delete claims['d'];\n }\n catch (e) { }\n return {\n header,\n claims,\n data,\n signature\n };\n};\n/**\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\n *\n * Notes:\n * - May return a false negative if there's no native base64 decoding support.\n * - Doesn't check if the token is actually valid.\n */\nconst isValidTimestamp = function (token) {\n const claims = decode(token).claims;\n const now = Math.floor(new Date().getTime() / 1000);\n let validSince = 0, validUntil = 0;\n if (typeof claims === 'object') {\n if (claims.hasOwnProperty('nbf')) {\n validSince = claims['nbf'];\n }\n else if (claims.hasOwnProperty('iat')) {\n validSince = claims['iat'];\n }\n if (claims.hasOwnProperty('exp')) {\n validUntil = claims['exp'];\n }\n else {\n // token will expire after 24h by default\n validUntil = validSince + 86400;\n }\n }\n return (!!now &&\n !!validSince &&\n !!validUntil &&\n now >= validSince &&\n now <= validUntil);\n};\n/**\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\n *\n * Notes:\n * - May return null if there's no native base64 decoding support.\n * - Doesn't check if the token is actually valid.\n */\nconst issuedAtTime = function (token) {\n const claims = decode(token).claims;\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\n return claims['iat'];\n }\n return null;\n};\n/**\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\n *\n * Notes:\n * - May return a false negative if there's no native base64 decoding support.\n * - Doesn't check if the token is actually valid.\n */\nconst isValidFormat = function (token) {\n const decoded = decode(token), claims = decoded.claims;\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\n};\n/**\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\n *\n * Notes:\n * - May return a false negative if there's no native base64 decoding support.\n * - Doesn't check if the token is actually valid.\n */\nconst isAdmin = function (token) {\n const claims = decode(token).claims;\n return typeof claims === 'object' && claims['admin'] === true;\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction contains(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nfunction safeGet(obj, key) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj[key];\n }\n else {\n return undefined;\n }\n}\nfunction isEmpty(obj) {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n}\nfunction map(obj, fn, contextObj) {\n const res = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = fn.call(contextObj, obj[key], key, obj);\n }\n }\n return res;\n}\n/**\n * Deep equal two objects. Support Arrays and Objects.\n */\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n for (const k of aKeys) {\n if (!bKeys.includes(k)) {\n return false;\n }\n const aProp = a[k];\n const bProp = b[k];\n if (isObject(aProp) && isObject(bProp)) {\n if (!deepEqual(aProp, bProp)) {\n return false;\n }\n }\n else if (aProp !== bProp) {\n return false;\n }\n }\n for (const k of bKeys) {\n if (!aKeys.includes(k)) {\n return false;\n }\n }\n return true;\n}\nfunction isObject(thing) {\n return thing !== null && typeof thing === 'object';\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\n * @internal\n */\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\n const deferredPromise = new Deferred();\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\n promise.then(deferredPromise.resolve, deferredPromise.reject);\n return deferredPromise.promise;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\n * params object (e.g. {arg: 'val', arg2: 'val2'})\n * Note: You must prepend it with ? when adding it to a URL.\n */\nfunction querystring(querystringParams) {\n const params = [];\n for (const [key, value] of Object.entries(querystringParams)) {\n if (Array.isArray(value)) {\n value.forEach(arrayVal => {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\n });\n }\n else {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n }\n }\n return params.length ? '&' + params.join('&') : '';\n}\n/**\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\n * (e.g. {arg: 'val', arg2: 'val2'})\n */\nfunction querystringDecode(querystring) {\n const obj = {};\n const tokens = querystring.replace(/^\\?/, '').split('&');\n tokens.forEach(token => {\n if (token) {\n const [key, value] = token.split('=');\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n });\n return obj;\n}\n/**\n * Extract the query string part of a URL, including the leading question mark (if present).\n */\nfunction extractQuerystring(url) {\n const queryStart = url.indexOf('?');\n if (!queryStart) {\n return '';\n }\n const fragmentStart = url.indexOf('#', queryStart);\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview SHA-1 cryptographic hash.\n * Variable names follow the notation in FIPS PUB 180-3:\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\n *\n * Usage:\n * var sha1 = new sha1();\n * sha1.update(bytes);\n * var hash = sha1.digest();\n *\n * Performance:\n * Chrome 23: ~400 Mbit/s\n * Firefox 16: ~250 Mbit/s\n *\n */\n/**\n * SHA-1 cryptographic hash constructor.\n *\n * The properties declared here are discussed in the above algorithm document.\n * @constructor\n * @final\n * @struct\n */\nclass Sha1 {\n constructor() {\n /**\n * Holds the previous values of accumulated variables a-e in the compress_\n * function.\n * @private\n */\n this.chain_ = [];\n /**\n * A buffer holding the partially computed hash result.\n * @private\n */\n this.buf_ = [];\n /**\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\n * as the message schedule in the docs.\n * @private\n */\n this.W_ = [];\n /**\n * Contains data needed to pad messages less than 64 bytes.\n * @private\n */\n this.pad_ = [];\n /**\n * @private {number}\n */\n this.inbuf_ = 0;\n /**\n * @private {number}\n */\n this.total_ = 0;\n this.blockSize = 512 / 8;\n this.pad_[0] = 128;\n for (let i = 1; i < this.blockSize; ++i) {\n this.pad_[i] = 0;\n }\n this.reset();\n }\n reset() {\n this.chain_[0] = 0x67452301;\n this.chain_[1] = 0xefcdab89;\n this.chain_[2] = 0x98badcfe;\n this.chain_[3] = 0x10325476;\n this.chain_[4] = 0xc3d2e1f0;\n this.inbuf_ = 0;\n this.total_ = 0;\n }\n /**\n * Internal compress helper function.\n * @param buf Block to compress.\n * @param offset Offset of the block in the buffer.\n * @private\n */\n compress_(buf, offset) {\n if (!offset) {\n offset = 0;\n }\n const W = this.W_;\n // get 16 big endian words\n if (typeof buf === 'string') {\n for (let i = 0; i < 16; i++) {\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\n // have a bug that turns the post-increment ++ operator into pre-increment\n // during JIT compilation. We have code that depends heavily on SHA-1 for\n // correctness and which is affected by this bug, so I've removed all uses\n // of post-increment ++ in which the result value is used. We can revert\n // this change once the Safari bug\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\n // most clients have been updated.\n W[i] =\n (buf.charCodeAt(offset) << 24) |\n (buf.charCodeAt(offset + 1) << 16) |\n (buf.charCodeAt(offset + 2) << 8) |\n buf.charCodeAt(offset + 3);\n offset += 4;\n }\n }\n else {\n for (let i = 0; i < 16; i++) {\n W[i] =\n (buf[offset] << 24) |\n (buf[offset + 1] << 16) |\n (buf[offset + 2] << 8) |\n buf[offset + 3];\n offset += 4;\n }\n }\n // expand to 80 words\n for (let i = 16; i < 80; i++) {\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\n }\n let a = this.chain_[0];\n let b = this.chain_[1];\n let c = this.chain_[2];\n let d = this.chain_[3];\n let e = this.chain_[4];\n let f, k;\n // TODO(user): Try to unroll this loop to speed up the computation.\n for (let i = 0; i < 80; i++) {\n if (i < 40) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5a827999;\n }\n else {\n f = b ^ c ^ d;\n k = 0x6ed9eba1;\n }\n }\n else {\n if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8f1bbcdc;\n }\n else {\n f = b ^ c ^ d;\n k = 0xca62c1d6;\n }\n }\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\n e = d;\n d = c;\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\n b = a;\n a = t;\n }\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\n }\n update(bytes, length) {\n // TODO(johnlenz): tighten the function signature and remove this check\n if (bytes == null) {\n return;\n }\n if (length === undefined) {\n length = bytes.length;\n }\n const lengthMinusBlock = length - this.blockSize;\n let n = 0;\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\n const buf = this.buf_;\n let inbuf = this.inbuf_;\n // The outer while loop should execute at most twice.\n while (n < length) {\n // When we have no data in the block to top up, we can directly process the\n // input buffer (assuming it contains sufficient data). This gives ~25%\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\n // the data is provided in large chunks (or in multiples of 64 bytes).\n if (inbuf === 0) {\n while (n <= lengthMinusBlock) {\n this.compress_(bytes, n);\n n += this.blockSize;\n }\n }\n if (typeof bytes === 'string') {\n while (n < length) {\n buf[inbuf] = bytes.charCodeAt(n);\n ++inbuf;\n ++n;\n if (inbuf === this.blockSize) {\n this.compress_(buf);\n inbuf = 0;\n // Jump to the outer loop so we use the full-block optimization.\n break;\n }\n }\n }\n else {\n while (n < length) {\n buf[inbuf] = bytes[n];\n ++inbuf;\n ++n;\n if (inbuf === this.blockSize) {\n this.compress_(buf);\n inbuf = 0;\n // Jump to the outer loop so we use the full-block optimization.\n break;\n }\n }\n }\n }\n this.inbuf_ = inbuf;\n this.total_ += length;\n }\n /** @override */\n digest() {\n const digest = [];\n let totalBits = this.total_ * 8;\n // Add pad 0x80 0x00*.\n if (this.inbuf_ < 56) {\n this.update(this.pad_, 56 - this.inbuf_);\n }\n else {\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\n }\n // Add # bits.\n for (let i = this.blockSize - 1; i >= 56; i--) {\n this.buf_[i] = totalBits & 255;\n totalBits /= 256; // Don't use bit-shifting here!\n }\n this.compress_(this.buf_);\n let n = 0;\n for (let i = 0; i < 5; i++) {\n for (let j = 24; j >= 0; j -= 8) {\n digest[n] = (this.chain_[i] >> j) & 255;\n ++n;\n }\n }\n return digest;\n }\n}\n\n/**\n * Helper to make a Subscribe function (just like Promise helps make a\n * Thenable).\n *\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\nfunction createSubscribe(executor, onNoObservers) {\n const proxy = new ObserverProxy(executor, onNoObservers);\n return proxy.subscribe.bind(proxy);\n}\n/**\n * Implement fan-out for any number of Observers attached via a subscribe\n * function.\n */\nclass ObserverProxy {\n /**\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\n constructor(executor, onNoObservers) {\n this.observers = [];\n this.unsubscribes = [];\n this.observerCount = 0;\n // Micro-task scheduling by calling task.then().\n this.task = Promise.resolve();\n this.finalized = false;\n this.onNoObservers = onNoObservers;\n // Call the executor asynchronously so subscribers that are called\n // synchronously after the creation of the subscribe function\n // can still receive the very first value generated in the executor.\n this.task\n .then(() => {\n executor(this);\n })\n .catch(e => {\n this.error(e);\n });\n }\n next(value) {\n this.forEachObserver((observer) => {\n observer.next(value);\n });\n }\n error(error) {\n this.forEachObserver((observer) => {\n observer.error(error);\n });\n this.close(error);\n }\n complete() {\n this.forEachObserver((observer) => {\n observer.complete();\n });\n this.close();\n }\n /**\n * Subscribe function that can be used to add an Observer to the fan-out list.\n *\n * - We require that no event is sent to a subscriber synchronously to their\n * call to subscribe().\n */\n subscribe(nextOrObserver, error, complete) {\n let observer;\n if (nextOrObserver === undefined &&\n error === undefined &&\n complete === undefined) {\n throw new Error('Missing Observer.');\n }\n // Assemble an Observer object when passed as callback functions.\n if (implementsAnyMethods(nextOrObserver, [\n 'next',\n 'error',\n 'complete'\n ])) {\n observer = nextOrObserver;\n }\n else {\n observer = {\n next: nextOrObserver,\n error,\n complete\n };\n }\n if (observer.next === undefined) {\n observer.next = noop;\n }\n if (observer.error === undefined) {\n observer.error = noop;\n }\n if (observer.complete === undefined) {\n observer.complete = noop;\n }\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\n // Attempt to subscribe to a terminated Observable - we\n // just respond to the Observer with the final error or complete\n // event.\n if (this.finalized) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n try {\n if (this.finalError) {\n observer.error(this.finalError);\n }\n else {\n observer.complete();\n }\n }\n catch (e) {\n // nothing\n }\n return;\n });\n }\n this.observers.push(observer);\n return unsub;\n }\n // Unsubscribe is synchronous - we guarantee that no events are sent to\n // any unsubscribed Observer.\n unsubscribeOne(i) {\n if (this.observers === undefined || this.observers[i] === undefined) {\n return;\n }\n delete this.observers[i];\n this.observerCount -= 1;\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\n this.onNoObservers(this);\n }\n }\n forEachObserver(fn) {\n if (this.finalized) {\n // Already closed by previous event....just eat the additional values.\n return;\n }\n // Since sendOne calls asynchronously - there is no chance that\n // this.observers will become undefined.\n for (let i = 0; i < this.observers.length; i++) {\n this.sendOne(i, fn);\n }\n }\n // Call the Observer via one of it's callback function. We are careful to\n // confirm that the observe has not been unsubscribed since this asynchronous\n // function had been queued.\n sendOne(i, fn) {\n // Execute the callback asynchronously\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n if (this.observers !== undefined && this.observers[i] !== undefined) {\n try {\n fn(this.observers[i]);\n }\n catch (e) {\n // Ignore exceptions raised in Observers or missing methods of an\n // Observer.\n // Log error to console. b/31404806\n if (typeof console !== 'undefined' && console.error) {\n console.error(e);\n }\n }\n }\n });\n }\n close(err) {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n if (err !== undefined) {\n this.finalError = err;\n }\n // Proxy is no longer needed - garbage collect references\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n this.observers = undefined;\n this.onNoObservers = undefined;\n });\n }\n}\n/** Turn synchronous function into one called asynchronously. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction async(fn, onError) {\n return (...args) => {\n Promise.resolve(true)\n .then(() => {\n fn(...args);\n })\n .catch((error) => {\n if (onError) {\n onError(error);\n }\n });\n };\n}\n/**\n * Return true if the object passed in implements any of the named methods.\n */\nfunction implementsAnyMethods(obj, methods) {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n for (const method of methods) {\n if (method in obj && typeof obj[method] === 'function') {\n return true;\n }\n }\n return false;\n}\nfunction noop() {\n // do nothing\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Check to make sure the appropriate number of arguments are provided for a public function.\n * Throws an error if it fails.\n *\n * @param fnName The function name\n * @param minCount The minimum number of arguments to allow for the function call\n * @param maxCount The maximum number of argument to allow for the function call\n * @param argCount The actual number of arguments provided.\n */\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\n let argError;\n if (argCount < minCount) {\n argError = 'at least ' + minCount;\n }\n else if (argCount > maxCount) {\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\n }\n if (argError) {\n const error = fnName +\n ' failed: Was called with ' +\n argCount +\n (argCount === 1 ? ' argument.' : ' arguments.') +\n ' Expects ' +\n argError +\n '.';\n throw new Error(error);\n }\n};\n/**\n * Generates a string to prefix an error message about failed argument validation\n *\n * @param fnName The function name\n * @param argName The name of the argument\n * @return The prefix to add to the error thrown for validation.\n */\nfunction errorPrefix(fnName, argName) {\n return `${fnName} failed: ${argName} argument `;\n}\n/**\n * @param fnName\n * @param argumentNumber\n * @param namespace\n * @param optional\n */\nfunction validateNamespace(fnName, namespace, optional) {\n if (optional && !namespace) {\n return;\n }\n if (typeof namespace !== 'string') {\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\n }\n}\nfunction validateCallback(fnName, argumentName, \n// eslint-disable-next-line @typescript-eslint/ban-types\ncallback, optional) {\n if (optional && !callback) {\n return;\n }\n if (typeof callback !== 'function') {\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\n }\n}\nfunction validateContextObject(fnName, argumentName, context, optional) {\n if (optional && !context) {\n return;\n }\n if (typeof context !== 'object' || context === null) {\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\n// so it's been modified.\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\n// use 2 characters in JavaScript. All 4-byte UTF-8 characters begin with a first\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\n// pair).\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\n/**\n * @param {string} str\n * @return {Array}\n */\nconst stringToByteArray = function (str) {\n const out = [];\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n // Is this the lead surrogate in a surrogate pair?\n if (c >= 0xd800 && c <= 0xdbff) {\n const high = c - 0xd800; // the high 10 bits.\n i++;\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\n c = 0x10000 + (high << 10) + low;\n }\n if (c < 128) {\n out[p++] = c;\n }\n else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n }\n else if (c < 65536) {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n else {\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return out;\n};\n/**\n * Calculate length without actually converting; useful for doing cheaper validation.\n * @param {string} str\n * @return {number}\n */\nconst stringLength = function (str) {\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 128) {\n p++;\n }\n else if (c < 2048) {\n p += 2;\n }\n else if (c >= 0xd800 && c <= 0xdbff) {\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\n p += 4;\n i++; // skip trail surrogate.\n }\n else {\n p += 3;\n }\n }\n return p;\n};\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The amount of milliseconds to exponentially increase.\n */\nconst DEFAULT_INTERVAL_MILLIS = 1000;\n/**\n * The factor to backoff by.\n * Should be a number greater than 1.\n */\nconst DEFAULT_BACKOFF_FACTOR = 2;\n/**\n * The maximum milliseconds to increase to.\n *\n *

Visible for testing\n */\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\n/**\n * The percentage of backoff time to randomize by.\n * See\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\n * for context.\n *\n *

Visible for testing\n */\nconst RANDOM_FACTOR = 0.5;\n/**\n * Based on the backoff method from\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\n */\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\n // Calculates an exponentially increasing value.\n // Deviation: calculates value from count and a constant interval, so we only need to save value\n // and count to restore state.\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\n // A random \"fuzz\" to avoid waves of retries.\n // Deviation: randomFactor is required.\n const randomWait = Math.round(\n // A fraction of the backoff value to add/subtract.\n // Deviation: changes multiplication order to improve readability.\n RANDOM_FACTOR *\n currBaseValue *\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\n // if we add or subtract.\n (Math.random() - 0.5) *\n 2);\n // Limits backoff to max to avoid effectively permanent backoff.\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Provide English ordinal letters after a number\n */\nfunction ordinal(i) {\n if (!Number.isFinite(i)) {\n return `${i}`;\n }\n return i + indicator(i);\n}\nfunction indicator(i) {\n i = Math.abs(i);\n const cent = i % 100;\n if (cent >= 10 && cent <= 20) {\n return 'th';\n }\n const dec = i % 10;\n if (dec === 1) {\n return 'st';\n }\n if (dec === 2) {\n return 'nd';\n }\n if (dec === 3) {\n return 'rd';\n }\n return 'th';\n}\n\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction getModularInstance(service) {\n if (service && service._delegate) {\n return service._delegate;\n }\n else {\n return service;\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Checks whether host is a cloud workstation or not.\n * @public\n */\nfunction isCloudWorkstation(url) {\n // `isCloudWorkstation` is called without protocol in certain connect*Emulator functions\n // In HTTP request builders, it's called with the protocol.\n // If called with protocol prefix, it's a valid URL, so we extract the hostname\n // If called without, we assume the string is the hostname.\n try {\n const host = url.startsWith('http://') || url.startsWith('https://')\n ? new URL(url).hostname\n : url;\n return host.endsWith('.cloudworkstations.dev');\n }\n catch {\n return false;\n }\n}\n/**\n * Makes a fetch request to the given server.\n * Mostly used for forwarding cookies in Firebase Studio.\n * @public\n */\nasync function pingServer(endpoint) {\n const result = await fetch(endpoint, {\n credentials: 'include'\n });\n return result.ok;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @public\n * Generates a SHA-256 hash for the given input string.\n *\n * @param input The string to hash.\n * @returns A promise that resolves to the SHA-256 hash as a hex string.\n */\nasync function generateSHA256Hash(input) {\n const textEncoder = new TextEncoder();\n const data = textEncoder.encode(input);\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n // Convert ArrayBuffer to hex string\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hexHash = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n return hexHash;\n}\n\nexport { CONSTANTS, DecodeBase64StringError, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, generateSHA256Hash, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getDefaults, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isCloudWorkstation, isCloudflareWorker, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isSafariOrWebkit, isUWP, isValidFormat, isValidTimestamp, isWebWorker, issuedAtTime, jsonEval, map, ordinal, pingServer, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm.js.map\n","import { PACKAGE_VERSION } from './version.js';\n\n// Version-independent name of this application, used for Firebase app name.\nexport const BASE_APP_NAME = 'TinodeWeb';\n// Name of this application, used in the User-Agent.\nexport const APP_NAME = BASE_APP_NAME + '/' + (PACKAGE_VERSION || '0.25');\n\n// API key. Use https://github.com/tinode/chat/tree/master/keygen to generate your own\nexport const API_KEY = 'AQEAAAABAAD_rAp4DJh05a1HAwFT3A6K';\n\n// The array of possible hosts to connect to.\nexport const KNOWN_HOSTS = {hosted: 'web.tinode.co', local: 'localhost:6060'};\n\n// Default host name and port to connect to.\nexport const DEFAULT_HOST = KNOWN_HOSTS.hosted;\n\n// Enable console logging.\nexport const LOGGING_ENABLED = true;\n\n// Minimum time between two keypress notifications, milliseconds.\nexport const KEYPRESS_DELAY = 3_000;\n// Delay before sending a read notification, milliseconds.\nexport const READ_DELAY = 1_500;\n\n// The default shortest allowed tag length. Matches the value on the server.\nexport const MIN_TAG_LENGTH = 2;\n// The default greatest allowed tag length. Matches the value on the server.\nexport const MAX_TAG_LENGTH = 96;\n// The default maximum number of tags allowed. Matches the value on the server.\nexport const MAX_TAG_COUNT = 16;\n\n// Access mode for P2P subscriptions initiated by the current user.\nexport const DEFAULT_P2P_ACCESS_MODE = 'JRWPS';\n// Access mode for new group topics created by the current user.\nexport const NEW_GRP_ACCESS_MODE = 'JRWPSAO';\n// Access mode for a channel.\nexport const CHANNEL_ACCESS_MODE = 'JR';\n\n// Access mode for no access.\nexport const NO_ACCESS_MODE = 'N';\n\n// Mediaquery breakpoint between desktop and mobile, in px. Should match the value\n// in @media (max-size: 640px) in base.css\nexport const MEDIA_BREAKPOINT = 640;\n// Size of css 'rem' unit in pixels. Default 1rem = 10pt = 13px.\nexport const REM_SIZE = 13;\n\n// Size of the avatar image: when image dimensions are greater or the image is not square, it's resized to\n// a square of this size or less.\nexport const AVATAR_SIZE = 384;\n\n// Maximum size of an avatar in bytes for sending in-band. Bigger avatars will be sent out of band (as uploads).\nexport const MAX_AVATAR_BYTES = 4096;\n\n// Size of the broken_image shown in MessagesView\nexport const BROKEN_IMAGE_SIZE = 32;\n\n// Size of video preview when dimensions are missing.\nexport const NO_DIMENSIONS_VIDEO = 128;\n\n// Number of chat messages to fetch in one call.\nexport const MESSAGES_PAGE = 24;\n\n// Default maximum in-band (included directly into the message) attachment size which fits into\n// a message of 256K in size. Used when the server-provided value is unavailable. The actual\n// binary size of the attachment should be smaller due to base64 encoding expansion and some overhead,\n// for instance 1024 bytes.\n// Increase this limit to a greater value in production, if desired. Also increase\n// max_message_size in the server config.\nexport const MAX_INBAND_ATTACHMENT_SIZE = 262_144;\n\n// Default absolute maximum attachment size to be used with the server = 8MB.\n// Used when the server-provided value is unavailable. Increase to something like 100MB in production.\nexport const MAX_EXTERN_ATTACHMENT_SIZE = 1 << 23;\n\n// Maximum allowed linear dimension (pixels) of an image sent inline. Larger images will be shrunk\n// to make the larger dimension fit under this size. You may want to adjust it to 1600 or\n// 2400 for production.\nexport const MAX_IMAGE_DIM = 1024;\n\n// Linear dimensions of image preview: shrink image under this size for previews.\nexport const IMAGE_PREVIEW_DIM = 64;\n\n// Linear dimensions of video screencapture: shrink image under this size for previews.\nexport const VIDEO_PREVIEW_DIM = 96;\n\n// Linear dimensions of image thumbnail: shrink image under this size for thumbnails in reply quote previews.\nexport const IMAGE_THUMBNAIL_DIM = 36;\n// Width of video thumbnail: allow it to be wider, but not taller. Use IMAGE_THUMBNAIL_DIM for height.\nexport const VIDEO_THUMBNAIL_WIDTH = 48;\n\n// Maximum number of online users to be shown in a topic title bar. Others will be\n// hidden under \"+X more\"\nexport const MAX_ONLINE_IN_TOPIC = 4;\n\n// Maximum length of user name, topic title, and private comment.\nexport const MAX_TITLE_LENGTH = 60;\n// Maximum length of topic description.\nexport const MAX_TOPIC_DESCRIPTION_LENGTH = 360;\n// Maximum length of user name when displaying a video call.\nexport const MAX_PEER_TITLE_LENGTH = 24;\n\n// Length of message previews in chat list, in characters.\nexport const MESSAGE_PREVIEW_LENGTH = 80;\n\n// Length of a quote in quoted reply (for outgoing messages).\nexport const QUOTED_REPLY_LENGTH = 30;\n// Length of a preview of a forwarded message.\nexport const FORWARDED_PREVIEW_LENGTH = 84;\n// Length of preview for a message being edited.\nexport const EDIT_PREVIEW_LENGTH = 48;\n\n// Minimum duration of an audio recording in milliseconds (2 sec).\nexport const MIN_DURATION = 2_000;\n// Maximum duration of an audio recording in milliseconds (10 min).\nexport const MAX_DURATION = 600_000;\n\n// Link for \"Contact Us\".\nexport const LINK_CONTACT_US = 'mailto:support@tinode.co';\n\n// Link to Privacy Policy.\nexport const LINK_PRIVACY_POLICY = 'https://tinode.co/privacy.html';\n\n// Link to Terms of Service.\nexport const LINK_TERMS_OF_SERVICE = 'https://tinode.co/terms.html';\n\n// When user starts a P2P topic, automatic subscription does not\n// happen until the first message. Setting this option to true enables\n// immediate subscription.\nexport const IMMEDIATE_P2P_SUBSCRIPTION = false;\n\n// URL schemes permitted to appear in links (i.e. no javascript: scheme).\nexport const CLICKABLE_URL_SCHEMES = ['http', 'https', 'ftp', 'ftps'];\n\n// Size of the QR code in the app.\nexport const QRCODE_SIZE = 128;\n\n// How much time has to pass to consider computer awoken from sleep (80 sec).\n// Chrome throttles ticker events in inactive tabs to once per minute. This\n// value ensures that these once-a-minute events do not trigger a reconnect.\nexport const WAKE_UP_TIMEOUT = 80000;\n// Timer interval between checks if computer woke up from sleep (1 sec).\nexport const WAKE_UP_TICK = 1000;\n\n// Swipe distance to register as a gesture, in pixels.\nexport const MIN_SWIPE_DISTANCE = REM_SIZE * 3;\n\n// Self-topic avatar as an SVG icon encoded as data URI\nexport const SELF_AVATAR_URI = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZpZXdCb3g9IjAgMCAxNyAxNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMy41NjIgMXYxNS40NTlsNC42ODYtMy4yNyA0Ljc1MiAzLjI2di0xNS40NDloLTkuNDM4ek0xMiAxNC41NTFsLTMuNzU2LTIuNTc4LTMuNjgxIDIuNTY4di0xMi41NDFoNy40Mzd2MTIuNTUxeiIgZmlsbD0iIzU1NTU1NSIgLz48L3N2Zz4=' // eslint-disable-line max-len\n\n// Toast display duration, milliseconds.\nexport const TOAST_DURATION = 3_000;\n\n// Initial/default color scheme.\nexport const DEFAULT_COLOR_SCHEME = 'auto';\n\n// Default text size in points.\nexport const DEFAULT_TEXT_SIZE = 10;\n\n// MIME type for the legacy Drafty form-response data.\nexport const DRAFTY_FR_MIME_TYPE_LEGACY = 'application/json'; // Remove in 2026.\n\n// Path to wallpaper images.\nexport const WALLPAPER_DEFAULTS = {type: 'patt', index: 0, path:'img/bkg/'};\n","// Video call states.\nexport const CALL_STATE_NONE = 0;\nexport const CALL_STATE_OUTGOING_INITATED = 1;\nexport const CALL_STATE_INCOMING_RECEIVED = 2;\nexport const CALL_STATE_IN_PROGRESS = 3;\n\n// Video call message headers representing call state.\nexport const CALL_HEAD_STARTED = 'started';\n\n","// File and image helper functions.\nimport { TheCard } from 'tinode-sdk';\n\n// Supported image MIME types and corresponding file extensions.\nexport const SUPPORTED_IMAGE_FORMATS = ['image/jpeg', 'image/gif', 'image/png', 'image/svg', 'image/svg+xml'];\nexport const MIME_EXTENSIONS = ['jpg', 'gif', 'png', 'svg', 'svg'];\n\n// Get an URL from a theCard photo: either create a data: URL or return reference URL.\nexport function makeImageUrl(photo) {\n if (photo && typeof photo == 'object') {\n if (photo.ref) {\n return photo.ref\n }\n if (photo.data && photo.type) {\n const mime = photo.type.startsWith('image/') ? photo.type : ('image/' + photo.type);\n return 'data:' + mime + ';base64,' + photo.data;\n }\n }\n return null;\n}\n\n// Calculate linear dimensions for scaling image down to fit under a certain size.\n// Returns an object which contains destination sizes, source sizes, and offsets\n// into source (when making square images).\nexport function fitImageSize(width, height, maxWidth, maxHeight, forceSquare) {\n // Sanitize input\n width = width | 0;\n height = height | 0;\n maxWidth = maxWidth | 0;\n maxHeight = maxHeight | 0;\n\n if (width <= 0 || height <= 0 || maxWidth <= 0 || maxHeight <= 0) {\n return null;\n }\n\n if (forceSquare) {\n maxWidth = maxHeight = Math.min(maxWidth, maxHeight);\n }\n\n const scale = Math.min(\n Math.min(width, maxWidth) / width,\n Math.min(height, maxHeight) / height\n );\n\n const size = {\n dstWidth: (width * scale) | 0,\n dstHeight: (height * scale) | 0,\n };\n\n if (forceSquare) {\n // Also calculate parameters for making the image square.\n size.dstWidth = size.dstHeight = Math.min(size.dstWidth, size.dstHeight);\n size.srcWidth = size.srcHeight = Math.min(width, height);\n size.xoffset = ((width - size.srcWidth) / 2) | 0;\n size.yoffset = ((height - size.srcWidth) / 2) | 0;\n } else {\n size.xoffset = size.yoffset = 0;\n size.srcWidth = width;\n size.srcHeight = height;\n }\n return size;\n}\n\n// Ensure file's extension matches mime content type\nexport function fileNameForMime(fname, mime) {\n const idx = SUPPORTED_IMAGE_FORMATS.indexOf(mime);\n if (idx < 0 || !fname) {\n // Unknown mime or empty name.\n return fname;\n }\n const ext = MIME_EXTENSIONS[idx];\n\n const at = fname.lastIndexOf('.');\n if (at >= 0) {\n fname = fname.substring(0, at);\n }\n return fname + '.' + ext;\n}\n\n// Scale uploaded image to fit under certain dimensions and byte size, optionally constraining to a square.\n// Returns a promise which is resolven on success or rejected on failure.\nexport function imageScaled(fileOrBlob, maxWidth, maxHeight, maxSize, forceSquare) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = function(err) {\n reject(new Error(\"Image format unrecognized\"));\n }\n img.onload = async function() {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n // Calculate the desired image dimensions.\n const dim = fitImageSize(img.width, img.height, maxWidth, maxHeight, forceSquare);\n if (!dim) {\n reject(new Error(\"Invalid image\"));\n return;\n }\n let canvas = document.createElement('canvas');\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n\n const mime = SUPPORTED_IMAGE_FORMATS.includes(fileOrBlob.type) ? fileOrBlob.type : 'image/jpeg';\n // Generate blob to check size of the image.\n let blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n if (!blob) {\n reject(new Error(\"Unsupported image format\"));\n return;\n }\n // Ensure the image is not too large. Shrink the image keeping the aspect ratio.\n // Do nothing if maxsize is <= 0.\n while (maxSize > 0 && blob.length > maxSize) {\n dim.dstWidth = (dim.dstWidth * 0.70710678118) | 0;\n dim.dstHeight = (dim.dstHeight * 0.70710678118) | 0;\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n }\n\n canvas = null;\n resolve({mime: mime, blob: blob, width: dim.dstWidth, height: dim.dstHeight, name: fileNameForMime(fileOrBlob.name, mime)});\n };\n img.src = URL.createObjectURL(fileOrBlob);\n });\n}\n\n// Scale and crop image according to specified dimensions.\n// The coordinates are in unscaled image pixels, i.e. cut the rectangle first then scale it.\n// returns a promise.\nexport function imageCrop(mime, objURL, left, top, width, height, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = _ => {\n reject(new Error(\"Image format unrecognized\"));\n };\n img.onload = _ => {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n let canvas = document.createElement('canvas');\n canvas.width = width * scale;\n canvas.height = height * scale;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, left, top, width, height, 0, 0, canvas.width, canvas.height);\n\n mime = SUPPORTED_IMAGE_FORMATS.includes(mime) ? mime : 'image/jpeg';\n // Generate blob to check size of the image.\n canvas.toBlob((blob) => {\n // Allow GC.\n canvas = null;\n if (blob) {\n resolve({mime: mime, blob: blob, width: width, height: height});\n } else {\n reject(new Error(\"Unsupported image format\"));\n }\n }, mime);\n };\n img.src = objURL;\n });\n}\n\n// Convert file to base64 string.\nexport function fileToBase64(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: file.type, bits: reader.result.split(',')[1], name: file.name});\n };\n reader.readAsDataURL(file);\n });\n}\n\n// Convert Blob to base64 string. Returns a promise resolved with the base64 string and mime.\nexport function blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: blob.type, bits: reader.result.split(',')[1]});\n };\n reader.readAsDataURL(blob);\n });\n}\n\n// File pasted from the clipboard. It's either an inline image or a file attachment.\nexport function filePasted(event, onImageSuccess, onAttachmentSuccess, onError) {\n const items = (event.clipboardData || event.originalEvent.clipboardData || {}).items;\n if (!items || !items.length) {\n return false;\n }\n\n for (let i in items) {\n const item = items[i];\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (!file) {\n console.error(\"Failed to get file object from pasted file item\", item.kind, item.type);\n onError(\"Failed to get file object from pasted file item\");\n continue;\n }\n if (file.type && file.type.split('/')[0] == 'image') {\n onImageSuccess(file);\n } else {\n onAttachmentSuccess(file);\n }\n // Indicate that the pasted data contains a file.\n return true;\n }\n }\n // No file found.\n return false;\n}\n\n// Get mime type from data URL header.\nexport function getMimeType(header) {\n const mime = /^data:(image\\/[-+a-z0-9.]+);base64/.exec(header);\n return (mime && mime.length > 1) ? mime[1] : null;\n}\n\n// Given length of a binary object in bytes, calculate the length after\n// base64 encoding.\nexport function base64EncodedLen(n) {\n return Math.floor((n + 2) / 3) * 4;\n}\n\n// Given length of a base64-encoded object, calculate decoded size of the\n// pbject in bytes.\nexport function base64DecodedLen(n) {\n return Math.floor(n / 4) * 3;\n}\n\n// Re-encode string to standard base64 encoding with padding.\n// The string may be base64-URL encoded without the padding.\nexport function base64ReEncode(str) {\n if (str) {\n str = str.replace(/-/g, '+').replace(/_/g, '/');\n try {\n str = btoa(atob(str));\n } catch(err) {\n console.error(\"Failed to base64 re-encode string.\", err);\n str = null;\n }\n }\n return str;\n}\n\n// Convert a base64 encoded string with the provided mime type into a Blob.\nexport function base64ToBlob(str, mime) {\n if (!str) {\n return null;\n }\n\n try {\n // Make blob.\n const bin = atob(str);\n const length = bin.length;\n const buf = new ArrayBuffer(length);\n const arr = new Uint8Array(buf);\n for (let i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n\n return new Blob([buf], { type: mime });\n } catch(err) {\n console.error(\"Failed to convert base64 to blob: \", err);\n }\n\n return null;\n}\n\nexport function intArrayToBase64(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n try {\n let bin = '';\n new Uint8Array(arr).forEach(b => bin += String.fromCharCode(b));\n return window.btoa(bin);\n } catch (err) {}\n return null;\n}\n\nexport function base64ToIntArray(b64) {\n const arr = [];\n try {\n const bin = window.atob(b64);\n [...bin].forEach(c => {\n arr.push(c.charCodeAt(0));\n });\n return arr;\n } catch (err) {}\n return null;\n}\n\nexport function importVCard(fileOrBlob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n const card = TheCard.importVCard(reader.result);\n if (!card) {\n reject(new Error(\"Failed to parse vCard\"));\n return;\n }\n resolve(card);\n };\n reader.readAsText(fileOrBlob);\n });\n}\n","import React from 'react';\nimport { defineMessages } from 'react-intl';\n\nimport { Drafty, TheCard } from 'tinode-sdk';\n\nimport AudioPlayer from '../widgets/audio-player.jsx'\nimport CallMessage from '../widgets/call-message.jsx'\nimport CallStatus from '../widgets/call-status.jsx';\nimport InlineVideo from '../widgets/inline-video.jsx';\nimport LazyImage from '../widgets/lazy-image.jsx';\nimport TheCardMini from '../widgets/the-card-mini.jsx';\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { BROKEN_IMAGE_SIZE, CLICKABLE_URL_SCHEMES, IMAGE_THUMBNAIL_DIM, NO_DIMENSIONS_VIDEO,\n REM_SIZE, VIDEO_THUMBNAIL_WIDTH } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, sanitizeUrl, sanitizeUrlForMime } from './utils.js';\n\nconst messages = defineMessages({\n drafty_form: {\n id: 'drafty_form',\n defaultMessage: 'Form: ',\n description: 'Comment for form in Drafty'\n },\n drafty_attachment: {\n id: 'drafty_attachment',\n defaultMessage: 'Attachment',\n description: 'Comment for attachment in Drafty'\n },\n drafty_image: {\n id: 'drafty_image',\n defaultMessage: 'Picture',\n description: 'Comment for embedded images in Drafty'\n },\n drafty_video: {\n id: 'drafty_video',\n defaultMessage: 'Video recording',\n description: 'Comment for videos embedded in Drafty'\n },\n drafty_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\n});\n\n// The main Drafty formatter: converts Drafty elements into React classes. 'this' is set by the caller.\n// 'this' must contain:\n// viewportWidth:\n// authorizeURL:\n// onHandleClick:\nexport function fullFormatter(style, data, values, key, stack) {\n if (stack.includes('QQ')) {\n return quoteFormatter.call(this, style, data, values, key);\n }\n\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch (style) {\n case 'AU':\n // Show audio player.\n if (attr.src) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'audio'));\n attr.duration = data.duration > 0 ? (data.duration | 0) : undefined;\n attr.preview = data.preview;\n attr.loading = 'lazy';\n }\n el = AudioPlayer;\n // Audio element cannot have content.\n values = null;\n break;\n case 'BR':\n values = null;\n break;\n case 'EX':\n // Ignore.\n break;\n case 'HL':\n // Highlighted text. Assign class name.\n attr.className = 'highlight';\n break;\n case 'HD':\n el = null;\n values = null;\n break;\n case 'IM':\n // Additional processing for images\n el = handleImageData.call(this, el, data, attr);\n // Image element cannot have content.\n values = null;\n break;\n case 'BN':\n // Button\n attr.onClick = (e) => this.onHandleClick(e, 'form_button');\n let inner = React.Children.map(values, (child) => {\n return typeof child == 'string' ? child : undefined;\n });\n if (!inner || inner.length == 0) {\n inner = [attr.name]\n }\n // Get text which will be sent back when the button is clicked.\n attr['data-title'] = inner.join('');\n break;\n case 'LN':\n if (attr) {\n // Ensure only safe URL schemes are clickable.\n attr.href = typeof attr.href == 'string' ? sanitizeUrl(attr.href, CLICKABLE_URL_SCHEMES) : '';\n }\n break;\n case 'MN':\n // Mention\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'FM':\n // Form\n attr.className = 'bot-form';\n break;\n case 'RW':\n // Form element formatting is dependent on element content.\n break;\n case 'QQ':\n // Quote/citation.\n attr.className = 'reply-quote'\n attr.onClick = (e) => this.onHandleClick(e, 'quote');\n break;\n case 'TC':\n // TheCard\n el = TheCardMini;\n attr.content = data;\n attr.authorizeURL = this.authorizeURL;\n attr.onChatClick = (e) => this.onHandleClick(e, 'contact_chat');\n attr.onFindClick = (e) => this.onHandleClick(e, 'contact_find');\n values = null;\n break;\n case 'VC':\n el = CallMessage;\n // Video call messages do not have content.\n values = null;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n break;\n case 'VD':\n // Additional processing for videos.\n el = handleVideoData.call(this, el, data, attr);\n // Video element cannot have content.\n values = null;\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n attr = {key: key};\n // Generate comment for unknown element.\n let body = values;\n if (!Array.isArray(values) || !values.join('').trim()) {\n body = [React.createElement('span',\n {key: 'x1', className: 'gray'},\n this.formatMessage(messages.drafty_unknown)\n )];\n }\n values = [React.createElement('i',\n {key: 'x0', className: 'material-icons gray'},\n 'extension'\n ), ' '].concat(body);\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n}\n\n// Additional processing of image data.\nfunction handleImageData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_image.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: BROKEN_IMAGE_SIZE, dstHeight: BROKEN_IMAGE_SIZE};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (attr.src) {\n if (Math.max(data.width || 0, data.height || 0) > IMAGE_THUMBNAIL_DIM) {\n // Allow previews for large enough images.\n attr.onClick = (e) => this.onHandleClick(e, 'image');\n attr.className += ' image-clickable';\n }\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n } else {\n // Use custom element instead of or

\n
\n
\n \n
\n
\n
    \n
  • \n  \n \n
  • \n
  • \n  \n \n
  • \n
  • \n  \n \n
  • \n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
    \n
  • \n  \n \n
    \n \n \n \n
    \n
  • \n
  • \n  \n \n
    \n \n \n \n
    \n
  • \n
\n
\n
\n );\n }\n};\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\n\nexport default class AccNotificationsView extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handleCheckboxClick(what, checked) {\n if (what == 'sound') {\n this.props.onToggleMessageSounds(checked);\n } else if (what == 'alert') {\n this.props.onTogglePushNotifications(checked);\n }\n }\n\n render() {\n return (\n
\n
\n \n \n
\n
\n \n \n
\n
\n );\n }\n};\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport { APP_NAME, LINK_CONTACT_US, LINK_PRIVACY_POLICY, LINK_TERMS_OF_SERVICE } from '../config.js';\n\nexport default class AccSupportView extends React.PureComponent {\n render() {\n return (\n
\n \n
\n
\n
\n \n {APP_NAME}\n
\n
\n \n {Tinode.getLibrary()}\n
\n
\n \n {this.props.serverVersion}\n
\n
\n \n {this.props.serverAddress}\n
\n
\n
\n );\n }\n};\n","/* ContactsView holds all contacts-related stuff */\nimport React from 'react';\nimport { FormattedMessage, defineMessages } from 'react-intl';\n\nimport ContactList from '../widgets/contact-list.jsx';\n\nimport { updateFavicon } from '../lib/utils.js';\n\nconst messages = defineMessages({\n archived_contacts_title: {\n id: \"archived_contacts\",\n defaultMessage: \"Archived contacts ({count})\",\n description: \"Label for archived chats\"\n }\n});\n\nexport default class ContactsView extends React.Component {\n constructor(props) {\n super(props);\n\n this.handleAction = this.handleAction.bind(this);\n\n this.state = ContactsView.deriveStateFromProps(props);\n }\n\n static deriveStateFromProps(props) {\n const contacts = [];\n let unreadThreads = 0;\n let archivedCount = 0;\n\n const me = props.tinode.getMeTopic();\n props.chatList.forEach(c => {\n const blocked = c.acs && !c.acs.isJoiner();\n c.pinned = me.pinnedTopicRank(c.topic);\n\n // Show only blocked contacts only when props.blocked == true.\n if (blocked && props.blocked) {\n contacts.push(c);\n }\n if (blocked || props.blocked) {\n return;\n }\n\n if (c.private && c.private.arch) {\n if (props.archive) {\n contacts.push(c);\n } else {\n archivedCount ++;\n }\n } else if (!props.archive) {\n contacts.push(c);\n unreadThreads += c.unread > 0 ? 1 : 0;\n }\n });\n\n contacts.sort((a, b) => {\n const pin = b.pinned - a.pinned;\n return pin != 0 ? pin : (b.touched || 0) - (a.touched || 0);\n });\n\n if (archivedCount > 0) {\n contacts.push({\n action: 'archive',\n title: messages.archived_contacts_title,\n values: {count: archivedCount}\n });\n }\n\n return {\n contactList: contacts,\n unreadThreads: unreadThreads\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.chatList != this.props.chatList ||\n prevProps.archive != this.props.archive ||\n prevProps.blocked != this.props.blocked) {\n const newState = ContactsView.deriveStateFromProps(this.props);\n this.setState(newState);\n if (newState.unreadThreads != prevState.unreadThreads) {\n updateFavicon(newState.unreadThreads);\n }\n }\n }\n\n handleAction(action_ignored) {\n this.props.onShowArchive();\n }\n\n render() {\n return (\n {\n (no_contacts) => \n }\n );\n }\n};\n","// Login form.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\nimport VisiblePassword from '../widgets/visible-password.jsx';\n\nexport default class LoginView extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n login: props.login,\n password: '',\n hostName: props.serverAddress,\n saveToken: props.persist\n };\n this.handleLoginChange = this.handleLoginChange.bind(this);\n this.handlePasswordChange = this.handlePasswordChange.bind(this);\n this.handleToggleSaveToken = this.handleToggleSaveToken.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n }\n\n handleLoginChange(e) {\n this.setState({login: e.target.value});\n }\n\n handlePasswordChange(e) {\n this.setState({password: e.target.value});\n }\n\n handleToggleSaveToken() {\n this.props.onPersistenceChange(!this.state.saveToken);\n this.setState({saveToken: !this.state.saveToken});\n }\n\n handleSubmit(e) {\n e.preventDefault();\n this.props.onLogin(this.state.login.trim(), this.state.password.trim());\n }\n\n render() {\n let submitClasses = 'primary';\n if (this.props.disabled) {\n submitClasses += ' disabled';\n }\n\n return (\n
\n \n {\n (login_prompt) => \n }\n \n \n {\n (password_prompt) => \n }\n \n
\n \n \n \n \n \n
\n
\n \n
\n
\n );\n }\n};\n","// Create new topic and invite users or send an invite.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport ContactList from '../widgets/contact-list.jsx';\nimport NewTopicById from '../widgets/new-topic-by-id.jsx';\nimport NewTopicGroup from '../widgets/new-topic-group.jsx';\nimport SearchContacts from '../widgets/search-contacts.jsx';\n\nimport HashNavigation from '../lib/navigation.js';\nimport { asEmail, asPhone, theCard } from '../lib/utils.js';\n\nconst messages = defineMessages({\n search_for_contacts: {\n id: \"search_for_contacts\",\n defaultMessage: \"Use search to find contacts\",\n description: \"Text shown in contacts view when user entered no search query.\"\n },\n search_no_results: {\n id: \"search_no_results\",\n defaultMessage: \"Search returned no results\",\n description: \"Text shown in contacts view when query returned no results.\"\n },\n search_placeholder: {\n id: \"search_placeholder\",\n defaultMessage: \"List like alice@example.com, +17025550003...\",\n description: \"Placeholder in contacts search field\"\n },\n});\n\nclass NewTopicView extends React.Component {\n constructor(props) {\n super(props);\n\n const urlParams = HashNavigation.parseUrlHash(window.location.hash).params;\n const initialTab = urlParams['tab'] || 'find';\n const initialQuery = initialTab == 'find' ? (urlParams['q'] || null) : null;\n\n this.state = {\n tabSelected: initialTab,\n searchQuery: initialQuery\n };\n\n this.handleTabClick = this.handleTabClick.bind(this);\n this.handleSearchContacts = this.handleSearchContacts.bind(this);\n this.handleSearchResultSelected = this.handleSearchResultSelected.bind(this);\n this.handleNewGroupSubmit = this.handleNewGroupSubmit.bind(this);\n this.handleGroupByID = this.handleGroupByID.bind(this);\n }\n\n componentDidMount() {\n this.props.onInitFind();\n }\n\n handleTabClick(e) {\n e.preventDefault();\n HashNavigation.navigateTo(HashNavigation.addUrlParam(window.location.hash, 'tab', e.currentTarget.dataset.id));\n this.setState({tabSelected: e.currentTarget.dataset.id});\n }\n\n handleSearchContacts(query) {\n query = query.trim() || Tinode.DEL_CHAR;\n if (!/[\\s,:]/.test(query) && query != Tinode.DEL_CHAR) {\n // No colons, spaces or commas, not DEL char. Try as email, phone, or alias.\n const email = asEmail(query);\n if (email) {\n query = `${Tinode.TAG_EMAIL}${email}`;\n } else {\n const tel = asPhone(query);\n if (tel) {\n query = `${Tinode.TAG_PHONE}${tel}`;\n } else {\n if (query[0] == '@') {\n // Strip the leading '@' sign if present.\n query = query.substring(1);\n }\n // 'alice' -> 'alias:alice,alice'\n query = `${Tinode.TAG_ALIAS}${query},${query}`;\n }\n }\n }\n this.props.onSearchContacts(query);\n this.setState({searchQuery: Tinode.isNullValue(query) ? null : query});\n }\n\n handleSearchResultSelected(topicName) {\n if (this.state.tabSelected == 'find') {\n HashNavigation.navigateTo(HashNavigation.removeUrlParams(window.location.hash, ['tab', 'q']));\n this.props.onCreateTopic(topicName);\n }\n }\n\n handleNewGroupSubmit(name, description, dataUrl, priv, tags, isChannel) {\n HashNavigation.navigateTo(HashNavigation.removeUrlParams(window.location.hash, ['tab', 'q']));\n this.props.onCreateTopic(undefined,\n {public: theCard(name, dataUrl, null, description), private: priv, tags: tags}, isChannel);\n }\n\n handleGroupByID(topicName) {\n HashNavigation.navigateTo(HashNavigation.removeUrlParams(window.location.hash, ['tab', 'q']));\n this.props.onCreateTopic(topicName);\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n const no_contacts_placeholder = formatMessage(this.state.searchQuery ?\n messages.search_no_results : messages.search_for_contacts);\n const search_placeholder = formatMessage(messages.search_placeholder);\n return (\n
\n \n {this.state.tabSelected === 'grp' ?\n :\n\n this.state.tabSelected === 'byid' ?\n :\n\n
\n \n \n
}\n
\n );\n }\n};\n\nexport default injectIntl(NewTopicView);\n","// Tinode config panel.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\n\nimport HostSelector from '../widgets/host-selector.jsx';\n\nexport default class SettingsView extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n transport: props.transport || 'def',\n serverAddress: props.serverAddress,\n secureConnection: props.secureConnection,\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleTransportSelected = this.handleTransportSelected.bind(this);\n this.handleServerAddressChange = this.handleServerAddressChange.bind(this);\n this.handleToggleSecure = this.handleToggleSecure.bind(this);\n }\n\n handleSubmit(e) {\n e.preventDefault();\n this.props.onUpdate({\n transport: this.state.transport,\n serverAddress: this.state.serverAddress,\n secureConnection: this.state.secureConnection,\n });\n }\n\n handleTransportSelected(e) {\n this.setState({transport: e.currentTarget.value});\n }\n\n handleServerAddressChange(name) {\n this.setState({serverAddress: name});\n }\n\n handleToggleSecure(e) {\n this.setState({secureConnection: !this.state.secureConnection});\n }\n\n render() {\n const names = {def: \"default\", ws: \"websocket\", lp: \"long polling\"};\n const transportOptions = [];\n ['def', 'ws', 'lp'].forEach(item => {\n const id = 'transport-' + item;\n const name = names[item];\n transportOptions.push(\n
  • \n \n \n
  • \n );\n });\n\n return (\n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n
      \n {transportOptions}\n
    \n
    \n
    \n \n
    \n \n );\n }\n};\n","import React, { Suspense } from 'react';\nimport { defineMessages, FormattedMessage, injectIntl } from 'react-intl';\n\nimport ErrorPanel from '../widgets/error-panel.jsx';\nimport LoadSpinner from '../widgets/load-spinner.jsx';\nimport SideNavbar from '../widgets/side-navbar.jsx';\nimport TopicCommonView from './topic-common-view.jsx';\n\nconst AccountSettingsView = React.lazy(_ => import('./account-settings-view.jsx'));\nimport ContactsView from './contacts-view.jsx';\nconst CreateAccountView = React.lazy(_ => import('./create-account-view.jsx'));\nimport AccGeneralView from './acc-general-view.jsx';\nimport AccNotificationsView from './acc-notifications-view.jsx';\nconst AccSecurityView = React.lazy(_ => import('./acc-security-view.jsx'));\nimport AccSupportView from './acc-support-view.jsx';\nimport LoginView from './login-view.jsx';\nimport NewTopicView from './new-topic-view.jsx';\nconst PasswordResetView = React.lazy(_ => import('./password-reset-view.jsx'));\nimport SettingsView from './settings-view.jsx';\nimport ValidationView from './validation-view.jsx';\nconst WallpapersView = React.lazy(_ => import('./wallpapers.jsx'));\n\n// Panel titles for translation.\nconst messages = defineMessages({\n login: {\n id: 'sidepanel_title_login',\n description: 'Sidepanel title for LoginView.',\n defaultMessage: 'Sign In'\n },\n register: {\n id: 'sidepanel_title_register',\n description: 'Sidepanel title for CreateAccountView.',\n defaultMessage: 'Create Account'\n },\n settings: {\n id: 'sidepanel_title_settings',\n description: 'Sidepanel title for SettingsView.',\n defaultMessage: 'Settings'\n },\n edit: {\n id: 'sidepanel_title_account_settings',\n description: 'Sidepanel title for AccountSettingsView.',\n defaultMessage: 'Account Settings'\n },\n general: {\n id: 'panel_title_general',\n description: 'Title for TopicCommon.',\n defaultMessage: 'General'\n },\n security: {\n id: 'panel_title_security',\n description: 'Title for TopicSecirity and AccSecurity.',\n defaultMessage: 'Security'\n },\n crop: {\n id: 'panel_title_crop',\n description: 'Title for AvatarCropView.',\n defaultMessage: 'Drag to Adjust'\n },\n notif: {\n id: 'sidepanel_title_acc_notifications',\n description: 'Sidepanel title for AccNotificationsView.',\n defaultMessage: 'Notifications'\n },\n acc_general: {\n id: 'sidepanel_title_acc_general',\n description: 'Sidepanel title for AccGeneralView.',\n defaultMessage: 'General'\n },\n support: {\n id: 'sidepanel_title_acc_support',\n description: 'Sidepanel title for AccSupportView.',\n defaultMessage: 'Support'\n },\n newtpk: {\n id: 'sidepanel_title_newtpk',\n description: 'Sidepanel title for NewTopicView.',\n defaultMessage: 'Start New Chat'\n },\n cred: {\n id: 'sidepanel_title_cred',\n description: 'Sidepanel title for ValidationView.',\n defaultMessage: 'Confirm Credentials'\n },\n reset: {\n id: 'sidepanel_title_reset',\n description: 'Sidepanel title for PasswordResetView.',\n defaultMessage: 'Reset Password'\n },\n archive: {\n id: 'sidepanel_title_archive',\n description: 'Sidepanel title for ContactsView-Archive.',\n defaultMessage: 'Archived Chats'\n },\n blocked: {\n id: 'sidepanel_title_blocked',\n description: 'Sidepanel title for ContactsView-Blocked.',\n defaultMessage: 'Blocked Chats'\n },\n wallpapers: {\n id: 'wallpapers',\n description: 'Link or title for working with wallpapers.',\n defaultMessage: 'Wallpapers'\n }\n});\n\nclass SidepanelView extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleNewTopic = this.handleNewTopic.bind(this);\n }\n\n handleNewTopic() {\n this.props.onNavigate('newtpk');\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n const view = this.props.state || (this.props.myUserId ? 'contacts' : 'login');\n\n let title, avatar, badges;\n if (view == 'contacts') {\n title = this.props.title;\n avatar = this.props.avatar ? this.props.avatar : true;\n badges = this.props.trustedBadges;\n } else {\n title = formatMessage(messages[view]);\n avatar = false;\n badges = null;\n }\n\n let onCancel;\n if (['login', 'contacts'].indexOf(view) == -1) {\n onCancel = this.props.onCancel;\n }\n\n return (\n
    \n \n\n \n\n \n\n {view === 'login' ?\n :\n\n view === 'register' ?\n
    }>\n \n :\n\n view === 'settings' ?\n :\n\n view === 'edit' ?\n
    }>\n \n :\n\n (view === 'general' || view === 'crop') ?\n :\n\n view === 'acc_general' ?\n :\n\n view === 'notif' ?\n :\n\n view === 'security' ?\n
    }>\n \n :\n\n view === 'support' ?\n :\n\n view === 'wallpapers' ?\n
    }>\n \n :\n\n (view === 'contacts' || view == 'archive' || view == 'blocked') ?\n :\n\n view === 'newtpk' ?\n :\n\n view === 'cred' ?\n :\n\n view === 'reset' ?\n
    }>\n \n :\n null}\n \n );\n }\n};\n\nexport default injectIntl(SidepanelView);\n","// The top-level class to hold all functionality together.\nimport React, { Suspense } from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport { initializeApp as firebaseInitApp } from 'firebase/app';\nimport { getMessaging as firebaseGetMessaging, getToken as firebaseGetToken,\n deleteToken as firebaseDelToken, onMessage as firebaseOnMessage } from 'firebase/messaging';\n\nimport { Drafty, Tinode } from 'tinode-sdk';\n\nimport Alert from '../widgets/alert.jsx';\nimport ContextMenu from '../widgets/context-menu.jsx';\nimport ForwardDialog from '../widgets/forward-dialog.jsx';\nimport CallIncoming from '../widgets/call-incoming.jsx';\nconst PhoneCountrySelector = React.lazy(_ => import('../widgets/phone-country-selector.jsx'));\n\nconst InfoView = React.lazy(_ => import('./info-view.jsx'));\nconst MessagesView = React.lazy(_ => import('./messages-view.jsx'));\nimport SidepanelView from './sidepanel-view.jsx';\n\nimport { API_KEY, APP_NAME, BASE_APP_NAME, DEFAULT_COLOR_SCHEME, DEFAULT_P2P_ACCESS_MODE, DEFAULT_TEXT_SIZE, FORWARDED_PREVIEW_LENGTH,\n LOGGING_ENABLED, MEDIA_BREAKPOINT, WAKE_UP_TICK, WAKE_UP_TIMEOUT } from '../config.js';\nimport { CALL_STATE_NONE, CALL_STATE_OUTGOING_INITATED,\n CALL_STATE_INCOMING_RECEIVED, CALL_STATE_IN_PROGRESS,\n CALL_HEAD_STARTED } from '../constants.js';\nimport { PACKAGE_VERSION } from '../version.js';\nimport { base64ReEncode, makeImageUrl } from '../lib/blob-helpers.js';\nimport { detectServerAddress, isLocalHost, isSecureConnection } from '../lib/host-name.js';\nimport LocalStorageUtil from '../lib/local-storage.js';\nimport HashNavigation from '../lib/navigation.js';\nimport { secondsToTime } from '../lib/strformat.js'\nimport { defaultWallpaper, updateFavicon } from '../lib/utils.js';\n\n// Sound to play on message received.\nconst POP_SOUND = new Audio('audio/msg.m4a');\n\nconst messages = defineMessages({\n reconnect_countdown: {\n id: 'reconnect_countdown',\n defaultMessage: 'Disconnected. Reconnecting in {seconds}…',\n description: 'Message shown when an app update is available.'\n },\n reconnect_now: {\n id: 'reconnect_now',\n defaultMessage: 'Try now',\n description: 'Prompt for reconnecting now'\n },\n push_init_failed: {\n id: 'push_init_failed',\n defaultMessage: 'Failed to initialize push notifications',\n description: 'Error message when push notifications have failed to initialize.'\n },\n invalid_security_token: {\n id: 'invalid_security_token',\n defaultMessage: 'Invalid security token',\n description: 'Error message when resetting password.'\n },\n no_connection: {\n id: 'no_connection',\n defaultMessage: 'No connection',\n description: 'Warning that the user is offline.'\n },\n code_doesnot_match: {\n id: 'code_doesnot_match',\n defaultMessage: 'Code does not match',\n description: 'Error message when the credential validation code is incorrect.'\n },\n menu_item_info: {\n id: 'menu_item_info',\n defaultMessage: 'Info',\n description: 'Show extended topic information'\n },\n menu_item_audio_call: {\n id: 'menu_item_audio_call',\n defaultMessage: 'Call',\n description: 'Start audio call'\n },\n menu_item_video_call: {\n id: 'menu_item_video_call',\n defaultMessage: 'Video call',\n description: 'Start video call'\n },\n cred_confirmed_successfully: {\n id: 'cred_confirmed_successfully',\n defaultMessage: 'Confirmed successfully',\n description: 'Notification message that the credential was successfully validated.'\n },\n password_reset_success: {\n id: 'password_reset_success',\n defaultMessage: 'Password reset successfully',\n description: 'Notification message that the password was successfully reset.'\n },\n select_country: {\n id: 'select_country',\n defaultMessage: 'Select country',\n description: 'Placeholder for the country selector'\n }\n});\n\nclass TinodeWeb extends React.Component {\n constructor(props) {\n super(props);\n\n this.selfRef = React.createRef();\n\n this.state = this.getBlankState();\n\n this.handleResize = this.handleResize.bind(this);\n this.handleHashRoute = this.handleHashRoute.bind(this);\n this.handleOnline = this.handleOnline.bind(this);\n this.handleEscapeKey = this.handleEscapeKey.bind(this);\n this.handleColorSchemeChange = this.handleColorSchemeChange.bind(this);\n this.checkForAppUpdate = this.checkForAppUpdate.bind(this);\n this.handleVisibilityEvent = this.handleVisibilityEvent.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleLoginRequest = this.handleLoginRequest.bind(this);\n this.handlePersistenceChange = this.handlePersistenceChange.bind(this);\n this.handleConnected = this.handleConnected.bind(this);\n this.handleAutoreconnectIteration = this.handleAutoreconnectIteration.bind(this);\n this.doLogin = this.doLogin.bind(this);\n this.handleLoginSuccessful = this.handleLoginSuccessful.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.tnMeMetaDesc = this.tnMeMetaDesc.bind(this);\n this.tnMeContactUpdate = this.tnMeContactUpdate.bind(this);\n this.tnMeSubsUpdated = this.tnMeSubsUpdated.bind(this);\n this.resetContactList = this.resetContactList.bind(this);\n this.tnInitFind = this.tnInitFind.bind(this);\n this.tnFndSubsUpdated = this.tnFndSubsUpdated.bind(this);\n this.handleSearchContacts = this.handleSearchContacts.bind(this);\n this.handleTopicSelected = this.handleTopicSelected.bind(this);\n this.handleHideMessagesView = this.handleHideMessagesView.bind(this);\n this.handleSendMessage = this.handleSendMessage.bind(this);\n this.handleNewChatInvitation = this.handleNewChatInvitation.bind(this);\n this.handleNewAccount = this.handleNewAccount.bind(this);\n this.handleNewAccountRequest = this.handleNewAccountRequest.bind(this);\n this.handleUpdatePasswordRequest = this.handleUpdatePasswordRequest.bind(this);\n this.handleUpdateAccountTagsRequest = this.handleUpdateAccountTagsRequest.bind(this);\n this.handleToggleIncognitoMode = this.handleToggleIncognitoMode.bind(this);\n this.handleChangeColorSchema = this.handleChangeColorSchema.bind(this);\n this.handleChangeTextSize = this.handleChangeTextSize.bind(this);\n this.handleSendOnEnter = this.handleSendOnEnter.bind(this);\n this.handleSelectWallpapers = this.handleSelectWallpapers.bind(this);\n this.handleWallpaperSelected = this.handleWallpaperSelected.bind(this);\n this.handleSettings = this.handleSettings.bind(this);\n this.handleGlobalSettings = this.handleGlobalSettings.bind(this);\n this.handleShowArchive = this.handleShowArchive.bind(this);\n this.handleShowBlocked = this.handleShowBlocked.bind(this);\n this.handleToggleMessageSounds = this.handleToggleMessageSounds.bind(this);\n this.handleCredAdd = this.handleCredAdd.bind(this);\n this.handleCredDelete = this.handleCredDelete.bind(this);\n this.handleCredConfirm = this.handleCredConfirm.bind(this);\n this.initFCMessaging = this.initFCMessaging.bind(this);\n this.toggleFCMToken = this.toggleFCMToken.bind(this);\n this.handlePushMessage = this.handlePushMessage.bind(this);\n this.handleSidepanelCancel = this.handleSidepanelCancel.bind(this);\n this.handleStartTopicRequest = this.handleStartTopicRequest.bind(this);\n this.handleNewTopicCreated = this.handleNewTopicCreated.bind(this);\n this.handleTopicUpdateRequest = this.handleTopicUpdateRequest.bind(this);\n this.handleUnarchive = this.handleUnarchive.bind(this);\n this.handleChangePermissions = this.handleChangePermissions.bind(this);\n this.handleTagsUpdateRequest = this.handleTagsUpdateRequest.bind(this);\n this.handleLogout = this.handleLogout.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n this.handleDeleteTopicRequest = this.handleDeleteTopicRequest.bind(this);\n this.handleDeleteMessagesRequest = this.handleDeleteMessagesRequest.bind(this);\n this.handleLeaveUnsubRequest = this.handleLeaveUnsubRequest.bind(this);\n this.handleBlockTopicRequest = this.handleBlockTopicRequest.bind(this);\n this.handleReportTopic = this.handleReportTopic.bind(this);\n this.handleShareTheCard = this.handleShareTheCard.bind(this);\n this.handleShowContextMenu = this.handleShowContextMenu.bind(this);\n this.defaultTopicContextMenu = this.defaultTopicContextMenu.bind(this);\n this.handleHideContextMenu = this.handleHideContextMenu.bind(this);\n this.handleShowAlert = this.handleShowAlert.bind(this);\n this.handleShowInfoView = this.handleShowInfoView.bind(this);\n this.handleMemberUpdateRequest = this.handleMemberUpdateRequest.bind(this);\n this.handleValidateCredentialsRequest = this.handleValidateCredentialsRequest.bind(this);\n this.handlePasswordResetRequest = this.handlePasswordResetRequest.bind(this);\n this.handleResetPassword = this.handleResetPassword.bind(this);\n this.handleContextMenuAction = this.handleContextMenuAction.bind(this);\n this.handleShowCountrySelector = this.handleShowCountrySelector.bind(this);\n\n this.handleShowForwardDialog = this.handleShowForwardDialog.bind(this);\n this.handleHideForwardDialog = this.handleHideForwardDialog.bind(this);\n\n this.handleStartVideoCall = this.handleStartVideoCall.bind(this);\n this.handleStartAudioCall = this.handleStartAudioCall.bind(this);\n this.handleInfoMessage = this.handleInfoMessage.bind(this);\n this.handleDataMessage = this.handleDataMessage.bind(this);\n this.handleCallClose = this.handleCallClose.bind(this);\n\n this.handleCallInvite = this.handleCallInvite.bind(this);\n this.handleCallRinging = this.handleCallRinging.bind(this);\n this.handleCallHangup = this.handleCallHangup.bind(this);\n this.handleCallSendOffer = this.handleCallSendOffer.bind(this);\n this.handleCallIceCandidate = this.handleCallIceCandidate.bind(this);\n this.handleCallSendAnswer = this.handleCallSendAnswer.bind(this);\n\n this.handleCallAccept = this.handleCallAccept.bind(this);\n\n this.sendMessageToTopic = this.sendMessageToTopic.bind(this);\n\n // FIXME: this is unused.\n this.callTimeoutTimer = null;\n }\n\n getBlankState() {\n const settings = LocalStorageUtil.getObject('settings') || {};\n const persist = !!LocalStorageUtil.getObject('keep-logged-in');\n if (!settings.wallpaper) {\n const wallpaper = defaultWallpaper();\n settings.wallpaper = wallpaper.name || '';\n settings.wallpaperSize = wallpaper.size || 0;\n settings.wallpaperBlur = 0;\n }\n return {\n connected: false,\n // Connected and subscribed to 'me'\n ready: false,\n // Try to re-login on new connection.\n autoLogin: false,\n transport: settings.transport || null,\n serverAddress: settings.serverAddress || detectServerAddress(),\n secureConnection: settings.secureConnection === undefined ?\n isSecureConnection() : settings.secureConnection,\n serverVersion: \"no connection\",\n // \"On\" is the default, so saving the \"off\" state.\n messageSounds: !settings.messageSoundsOff,\n incognitoMode: false,\n // Manually selected color scheme. Default: 'system default' ('auto').\n colorSchema: settings.colorSchema || DEFAULT_COLOR_SCHEME,\n systemColorSchema: window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light',\n // Wallpaper settings.\n wallpaper: settings.wallpaper,\n wallpaperSize: settings.wallpaperSize,\n wallpaperBlur: 0,\n // Text size in points. Default size: 10pt\n textSize: settings.textSize || DEFAULT_TEXT_SIZE,\n // Default: 'plain' (just Enter)\n sendOnEnter: settings.sendOnEnter || 'plain',\n // Persistent request to enable alerts.\n desktopAlerts: persist && !!settings.desktopAlerts,\n // Enable / disable checkbox.\n desktopAlertsEnabled: (isSecureConnection() || isLocalHost()) &&\n (typeof firebaseInitApp != 'undefined') && (typeof navigator != 'undefined') &&\n (typeof FIREBASE_INIT != 'undefined'),\n firebaseToken: persist ? LocalStorageUtil.getObject('firebase-token') : null,\n\n applicationVisible: !document.hidden,\n\n errorText: '',\n errorLevel: null,\n errorAction: undefined,\n errorActionText: null,\n\n sidePanelSelected: 'login',\n sidePanelTitle: null,\n sidePanelAvatar: null,\n myTrustedBadges: [],\n loadSpinnerVisible: false,\n\n login: '',\n password: '',\n persist: persist,\n myUserId: null,\n liveConnection: navigator.onLine,\n topicSelected: '',\n topicSelectedOnline: false,\n topicSelectedAcs: null,\n newTopicParams: null,\n loginDisabled: false,\n displayMobile: (window.innerWidth <= MEDIA_BREAKPOINT),\n infoPanel: undefined,\n mobilePanel: 'sidepanel',\n\n // Video calls.\n callTopic: undefined,\n callState: CALL_STATE_NONE,\n callAudioOnly: undefined,\n // If true, call state should be transitioned to CALL_STATE_IN_PROGRESS upon\n // switching to the call topic.\n callShouldStart: false,\n\n contextMenuVisible: false,\n contextMenuBounds: null,\n contextMenuClickAt: null,\n contextMenuParams: null,\n contextMenuItems: [],\n\n forwardDialogVisible: false,\n forwardMessage: null,\n\n // Modal alert dialog.\n alertVisible: false,\n alertParams: {},\n\n // Chats as shown in the ContactsView\n chatList: [],\n // Contacts returned by a search query.\n searchResults: [],\n // Merged results of a search query and p2p chats.\n searchableContacts: [],\n // Credential validation.\n reqCredMethod: undefined,\n credMethod: undefined,\n credCode: undefined,\n credToken: undefined,\n // Topic to go to after login.\n requestedTopic: undefined\n };\n }\n\n componentDidMount() {\n window.addEventListener('resize', this.handleResize);\n this.handleOnlineOn = _ => { this.handleOnline(true); }\n window.addEventListener('online', this.handleOnlineOn);\n this.handleOnlineOff = _ => { this.handleOnline(false); }\n window.addEventListener('offline', this.handleOnlineOff);\n window.addEventListener('hashchange', this.handleHashRoute);\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', this.handleColorSchemeChange);\n\n // Window/tab visible or invisible for pausing timers.\n document.addEventListener('visibilitychange', this.handleVisibilityEvent);\n\n // Listen for Escape key to clear selections.\n document.addEventListener('keydown', this.handleEscapeKey);\n\n document.documentElement.style.colorScheme = this.state.colorSchema == 'auto' ? 'light dark' : this.state.colorSchema;\n document.documentElement.style.setProperty('--message-text-size', `${this.state.textSize}pt`);\n\n this.applyWallpaperSettings(this.state.wallpaper, this.state.wallpaperSize, this.state.wallpaperBlur,\n this.state.colorSchema == 'auto' ? this.state.systemColorSchema : this.state.colorSchema);\n\n // Process background notifications from the service worker.\n if (typeof BroadcastChannel == 'function') {\n const serviceWorkerChannel = new BroadcastChannel('tinode-sw');\n serviceWorkerChannel.addEventListener('message', this.handlePushMessage);\n } else {\n // Safari is broken by design.\n console.warn(\"Your browser does not support BroadcastChannel. Some features will not be available\");\n }\n\n // Detect if computer just woke up from sleep. Checks how much time has passed since the last tick.\n // If too much time has passed then the computer was asleep.\n this.lastWakeUpCheck = new Date().getTime();\n this.wakeUpTicker = setInterval(_ => {\n const now = new Date().getTime();\n if (now - this.lastWakeUpCheck > WAKE_UP_TIMEOUT) {\n // Trigger reconnect.\n this.handleOnlineOn();\n }\n this.lastWakeUpCheck = now;\n }, WAKE_UP_TICK);\n\n this.setState({\n viewportWidth: document.documentElement.clientWidth,\n viewportHeight: document.documentElement.clientHeight\n });\n\n new Promise((resolve, reject) => {\n this.tinode = TinodeWeb.tnSetup(this.state.serverAddress, isSecureConnection(), this.state.transport,\n this.props.intl.locale, this.state.persist, resolve);\n this.tinode.onConnect = this.handleConnected;\n this.tinode.onDisconnect = this.handleDisconnect;\n this.tinode.onAutoreconnectIteration = this.handleAutoreconnectIteration;\n this.tinode.onInfoMessage = this.handleInfoMessage;\n this.tinode.onDataMessage = this.handleDataMessage;\n }).then(_ => {\n // Initialize desktop alerts.\n if (this.state.desktopAlertsEnabled) {\n this.initFCMessaging().catch(_ => {\n // do nothing: handled earlier.\n // catch needed to pervent unnecessary logging of error.\n });\n }\n\n // Read contacts from cache.\n this.resetContactList();\n\n const token = this.state.persist ? LocalStorageUtil.getObject('auth-token') : undefined;\n if (token) {\n this.setState({autoLogin: true});\n\n // When reading from storage, date is returned as string.\n token.expires = new Date(token.expires);\n this.tinode.setAuthToken(token);\n this.tinode.connect().catch(err => {\n // Socket error\n this.handleError(err.message, 'err');\n });\n }\n\n // Parse the hash navigation params.\n const parsedNav = HashNavigation.parseUrlHash(window.location.hash);\n // Maybe navigate to home screen.\n if (!['cred', 'reset', 'register'].includes(parsedNav.path[0])) {\n // Save possible topic name.\n this.setState({requestedTopic: parsedNav.path[1]});\n const path = parsedNav.params && parsedNav.params.cred_done ?\n HashNavigation.addUrlParam('', 'cred_done', parsedNav.params.cred_done):\n '';\n HashNavigation.navigateTo(path);\n } else {\n this.handleHashRoute();\n }\n });\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleResize);\n window.removeEventListener('hashchange', this.handleHashRoute);\n window.removeEventListener('online', this.handleOnlineOn);\n window.removeEventListener('offline', this.handleOnlineOff);\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', this.handleColorSchemeChange);\n document.removeEventListener('visibilitychange', this.handleVisibilityEvent);\n document.removeEventListener('keydown', this.handleEscapeKey);\n\n clearInterval(this.wakeUpTicker);\n }\n\n // Setup transport (usually websocket) and server address. This will terminate connection with the server.\n static tnSetup(serverAddress, secureConnection, transport, locale, persistentCache, onSetupCompleted) {\n const tinode = new Tinode({appName: APP_NAME, host: serverAddress, apiKey: API_KEY, transport: transport,\n secure: secureConnection, persist: persistentCache}, onSetupCompleted);\n tinode.setHumanLanguage(locale);\n tinode.enableLogging(LOGGING_ENABLED, true);\n return tinode;\n }\n\n // Tinode received a push notification from the server.\n handlePushMessage(payload) {\n this.tinode.oobNotification(payload.data || {});\n }\n\n initFCMessaging() {\n const {formatMessage, locale} = this.props.intl;\n const onError = (msg, err) => {\n console.error(msg, err);\n this.handleError(formatMessage(messages.push_init_failed), 'err');\n this.setState({firebaseToken: null});\n LocalStorageUtil.updateObject('settings', {desktopAlerts: false});\n }\n\n try {\n this.fcm = firebaseGetMessaging(firebaseInitApp(FIREBASE_INIT, BASE_APP_NAME));\n return navigator.serviceWorker.getRegistration('/service-worker.js').then(reg => {\n return reg || navigator.serviceWorker.register('/service-worker.js').then(reg => {\n this.checkForAppUpdate(reg);\n return reg;\n });\n }).then(reg => {\n // Pass locale and version config to the service worker.\n (reg.active || reg.installing).postMessage(JSON.stringify({locale: locale, version: PACKAGE_VERSION}));\n // Request token.\n return TinodeWeb.requestFCMToken(this.fcm, reg);\n }).then(token => {\n const persist = LocalStorageUtil.getObject('keep-logged-in');\n if (token != this.state.firebaseToken) {\n this.tinode.setDeviceToken(token);\n if (persist) {\n LocalStorageUtil.setObject('firebase-token', token);\n }\n }\n this.setState({firebaseToken: token, desktopAlerts: true});\n if (persist) {\n LocalStorageUtil.updateObject('settings', {desktopAlerts: true});\n }\n\n // Handhe FCM pushes\n // (a) for channels always,\n // (b) pushes when the app is in foreground but has no focus.\n firebaseOnMessage(this.fcm, payload => { this.handlePushMessage(payload); });\n }).catch(err => {\n // SW registration or FCM has failed :(\n onError(err);\n throw err;\n });\n } catch (err) {\n onError(err);\n return Promise.reject(err);\n }\n }\n\n // Google's FCM API is idiotic.\n static requestFCMToken(fcm, sw) {\n return firebaseGetToken(fcm, {\n serviceWorkerRegistration: sw,\n vapidKey: FIREBASE_INIT.messagingVapidKey\n }).then(token => {\n if (token) {\n return token;\n } else if (typeof Notification != 'undefined') {\n // Try to request permissions.\n return Notification.requestPermission().then(permission => {\n if (permission === 'granted') {\n return firebaseGetToken(fcm, {\n serviceWorkerRegistration: sw,\n vapidKey: FIREBASE_INIT.messagingVapidKey\n }).then(token => {\n if (token) {\n return token;\n } else {\n throw new Error(\"Failed to initialize notifications\");\n }\n });\n } else {\n throw new Error(\"No permission to send notifications: \" + permission);\n }\n });\n }\n throw new Error(\"Notifications are not supported\");\n });\n }\n\n handleResize() {\n const mobile = document.documentElement.clientWidth <= MEDIA_BREAKPOINT;\n this.setState({\n viewportWidth: document.documentElement.clientWidth,\n viewportHeight: document.documentElement.clientHeight\n });\n if (this.state.displayMobile != mobile) {\n this.setState({displayMobile: mobile});\n }\n }\n\n handleEscapeKey(e) {\n if (e.key === 'Escape' || e.keyCode === 27) {\n // Clear selections and navigate to base state\n this.setState({\n topicSelected: null,\n errorText: '',\n errorLevel: null,\n mobilePanel: 'sidepanel',\n topicSelectedOnline: false,\n topicSelectedAcs: null,\n infoPanel: undefined,\n forwardMessage: null,\n contextMenuVisible: false,\n forwardDialogVisible: false,\n alertVisible: false\n });\n // Navigate to contacts or login view\n HashNavigation.navigateTo(HashNavigation.setUrlTopic('', null));\n }\n }\n\n // Check if a newer version of TinodeWeb app is available at the server.\n checkForAppUpdate(reg) {\n reg.onupdatefound = _ => {\n const installingWorker = reg.installing;\n installingWorker.onstatechange = _ => {\n if (installingWorker.state == 'installed' && navigator.serviceWorker.controller) {\n const msg = <>\n \n \n .;\n this.handleError(msg, 'info');\n }\n }\n }\n }\n\n // Handle for hash navigation (hashchange) event: update state.\n handleHashRoute() {\n const hash = HashNavigation.parseUrlHash(window.location.hash);\n // Start with panel parameters.\n const newState = {\n infoPanel: hash.params.info,\n newTopicTabSelected: hash.params.tab\n };\n\n if (hash.path && hash.path.length > 0) {\n // Left-side panel selector.\n if (['acc_general','archive','blocked','contacts','cred','crop','edit','general',\n 'newtpk','notif','register','reset','security','settings','support','wallpapers',\n ''].includes(hash.path[0])) {\n newState.sidePanelSelected = hash.path[0];\n } else {\n console.warn(\"Unknown sidepanel view\", hash.path[0]);\n }\n\n // Topic for MessagesView selector.\n let topicName = hash.path[1] || null;\n if (topicName != this.state.topicSelected) {\n if (!Tinode.topicType(topicName)) {\n // Clear invalid topic name and hide messages view on mobile.\n topicName = null;\n newState.mobilePanel = 'sidepanel';\n } else {\n // Topic valid: show messages view on mobile.\n newState.mobilePanel = 'topic-view';\n }\n Object.assign(newState, {\n topicSelected: topicName,\n topicSelectedAcs: this.tinode.getTopicAccessMode(topicName)\n });\n }\n } else {\n // Empty hashpath\n Object.assign(newState, {sidePanelSelected: '', topicSelected: null});\n }\n\n // Save credential validation parameters, if available.\n if (hash.params.method) {\n newState.credMethod = hash.params.method;\n }\n if (hash.params.code) {\n newState.credCode = hash.params.code;\n }\n if (hash.params.token) {\n newState.credToken = hash.params.token;\n }\n\n // Show a message if validation was successful.\n if (hash.params.cred_done) {\n Object.assign(newState,\n TinodeWeb.stateForError(this.props.intl.formatMessage(messages.cred_confirmed_successfully), 'info'));\n }\n\n this.setState(newState);\n }\n\n handleOnline(online) {\n if (online) {\n this.handleError();\n clearInterval(this.reconnectCountdown);\n this.tinode.reconnect();\n } else {\n this.handleError(this.props.intl.formatMessage(messages.no_connection), 'warn');\n }\n this.setState({liveConnection: online});\n }\n\n handleVisibilityEvent() {\n this.setState({applicationVisible: !document.hidden});\n }\n\n static stateForError(err, level, action, actionText) {\n return {\n errorText: err,\n errorLevel: level,\n errorAction: action,\n errorActionText: actionText,\n callShouldStart: false,\n };\n }\n\n handleError(err, level, action, actionText) {\n this.setState(TinodeWeb.stateForError(err, level, action, actionText));\n }\n\n // User clicked Login button in the side panel.\n handleLoginRequest(login, password) {\n this.setState({\n loginDisabled: true,\n login: login,\n password: password,\n loadSpinnerVisible: true,\n autoLogin: true\n });\n this.handleError('', null);\n\n if (this.tinode.isConnected()) {\n this.doLogin(login, password, null, {meth: this.state.credMethod, resp: this.state.credCode});\n } else {\n this.tinode.connect().catch(err => {\n // Socket error\n this.setState({loginDisabled: false, autoLogin: false, loadSpinnerVisible: false});\n this.handleError(err.message, 'err');\n });\n }\n\n if (this.state.desktopAlertsEnabled && !this.state.firebaseToken) {\n // Firefox and Safari: \"The Notification permission may only be requested from inside a\n // short running user-generated event handler\".\n this.initFCMessaging();\n }\n }\n\n // Enable or disable saving the password and IndexedDB.\n handlePersistenceChange(persist) {\n if (persist) {\n this.tinode.initStorage().then(_ => {\n LocalStorageUtil.setObject('keep-logged-in', true);\n this.setState({persist: true});\n });\n } else {\n this.tinode.clearStorage().then(_ => {\n LocalStorageUtil.setObject('keep-logged-in', false);\n this.setState({persist: false});\n });\n }\n }\n\n // Connection succeeded.\n handleConnected() {\n // Just to be sure.\n clearInterval(this.reconnectCountdown);\n this.handleError();\n\n const params = this.tinode.getServerInfo();\n this.setState({\n serverVersion: params.ver + ' ' + (params.build ? params.build : 'none'),\n // \"reqCred\":{\"auth\":[\"email\"]}\n reqCredMethod: ((params.reqCred || {}).auth || [])[0] || 'email'\n });\n\n if (this.state.autoLogin) {\n this.doLogin(this.state.login, this.state.password, null,\n {meth: this.state.credMethod, resp: this.state.credCode});\n }\n }\n\n // Called for each auto-reconnect iteration.\n handleAutoreconnectIteration(sec, prom) {\n clearInterval(this.reconnectCountdown);\n\n if (sec < 0) {\n // Clear error\n this.handleError();\n return;\n }\n\n if (prom) {\n // Reconnecting now\n prom.then(_ => {\n // Reconnected: clear error\n this.handleError();\n }).catch(err => {\n this.handleError(err.message, 'err');\n });\n return;\n }\n\n const {formatMessage} = this.props.intl;\n let count = sec / 1000;\n count = count | count;\n this.reconnectCountdown = setInterval(_ => {\n if (count < -10) {\n // Count could go to negative if computer woke up from sleep.\n clearInterval(this.reconnectCountdown);\n this.tinode.reconnect();\n return;\n }\n\n const fmtTime = (count > 99) ? secondsToTime(count) : count;\n this.handleError(\n formatMessage(messages.reconnect_countdown, {seconds: fmtTime}),\n 'warn',\n _ => {\n clearInterval(this.reconnectCountdown);\n this.tinode.reconnect();\n },\n formatMessage(messages.reconnect_now)\n );\n count -= 1;\n }, 1000);\n }\n\n // Connection lost\n handleDisconnect(err) {\n this.setState({\n connected: false,\n ready: false,\n topicSelectedOnline: false,\n errorText: err && err.message ? err.message : \"Disconnected\",\n errorLevel: err && err.message ? 'err' : 'warn',\n loginDisabled: false,\n contextMenuVisible: false,\n forwardDialogVisible: false,\n serverVersion: \"no connection\"\n });\n }\n\n doLogin(login, password, tmpToken, cred) {\n if (this.tinode.isAuthenticated()) {\n // Already logged in. Go to default screen.\n HashNavigation.navigateTo('');\n return;\n }\n\n let token = tmpToken || (this.tinode.getAuthToken() || {}).token;\n if (!(login && password) && !token) {\n // No login credentials provided.\n // Make sure we are on the login page.\n HashNavigation.navigateTo('');\n this.setState({loginDisabled: false});\n return;\n }\n\n // Sanitize and package credentail.\n cred = Tinode.credential(cred);\n // May be disconnected.\n let connectionPromise = this.tinode.isConnected() ? Promise.resolve() : this.tinode.connect();\n // Try to login with login/password. If they are not available, try token; if no token, ask for login/password.\n let loginPromise;\n if (login && password) {\n token = null;\n this.setState({password: null});\n loginPromise = connectionPromise.then(_ => this.tinode.loginBasic(login, password, cred));\n } else {\n loginPromise = connectionPromise.then(_ => this.tinode.loginToken(token, cred));\n }\n\n loginPromise.then(ctrl => {\n if (ctrl.code >= 300 && ctrl.text === 'validate credentials') {\n this.setState({loadSpinnerVisible: false});\n if (cred) {\n this.handleError(this.props.intl.formatMessage(messages.code_doesnot_match), 'warn');\n }\n TinodeWeb.navigateToCredentialsView(ctrl.params);\n } else {\n this.handleLoginSuccessful();\n }\n }).catch(err => {\n const autoLogin = err.code >= 500;\n // Connection or login failed, report error.\n this.setState({\n loginDisabled: false,\n credMethod: undefined,\n credCode: undefined,\n loadSpinnerVisible: false,\n autoLogin: autoLogin\n });\n this.handleError(err.message, 'err');\n console.warn(\"Login failed\", err);\n if (!autoLogin) {\n if (token) {\n this.handleLogout();\n }\n HashNavigation.navigateTo('');\n }\n });\n }\n\n static navigateToCredentialsView(params) {\n const parsed = HashNavigation.parseUrlHash(window.location.hash);\n parsed.path[0] = 'cred';\n parsed.params['method'] = params.cred[0];\n parsed.params['token'] = params.token;\n parsed.params['code'] = params.code;\n HashNavigation.navigateTo(HashNavigation.composeUrlHash(parsed.path, parsed.params));\n }\n\n handleLoginSuccessful() {\n this.handleError();\n\n // Refresh authentication token.\n if (LocalStorageUtil.getObject('keep-logged-in')) {\n LocalStorageUtil.setObject('auth-token', this.tinode.getAuthToken());\n }\n\n // On reconnect, requestedTopic is undefined but topicSelected may still be set.\n // Preserve the open topic so it gets restored after re-login.\n const goToTopic = this.state.requestedTopic || this.state.topicSelected;\n // Logged in fine, subscribe to 'me' attaching callbacks from the contacts view.\n const me = this.tinode.getMeTopic();\n me.onMetaDesc = this.tnMeMetaDesc;\n me.onContactUpdate = this.tnMeContactUpdate;\n me.onSubsUpdated = this.tnMeSubsUpdated;\n this.setState({\n connected: true,\n credMethod: undefined,\n credCode: undefined,\n credToken: undefined,\n myUserId: this.tinode.getCurrentUserID(),\n autoLogin: true,\n requestedTopic: undefined,\n });\n // Subscribe, fetch topic desc, the list of subscriptions. Messages are not fetched.\n me.subscribe(\n me.startMetaQuery().\n withLaterSub().\n withDesc().\n withTags().\n withCred().\n build()\n ).catch(err => {\n this.tinode.disconnect();\n localStorage.removeItem('auth-token');\n this.handleError(err.message, 'err');\n HashNavigation.navigateTo('');\n }).finally(_ => {\n this.setState({loadSpinnerVisible: false});\n });\n let urlHash = HashNavigation.setUrlSidePanel(window.location.hash, 'contacts');\n if (goToTopic) {\n urlHash = HashNavigation.setUrlTopic(urlHash, goToTopic);\n }\n HashNavigation.navigateTo(urlHash);\n }\n\n tnMeMetaDesc(desc) {\n if (!desc) {\n return;\n }\n\n if (desc.public) {\n this.setState({\n sidePanelTitle: desc.public.fn,\n sidePanelAvatar: makeImageUrl(desc.public.photo)\n });\n }\n\n if (desc.trusted) {\n const badges = [];\n for (const [key, val] of Object.entries(desc.trusted)) {\n if (val) {\n badges.push(key);\n }\n }\n this.setState({\n myTrustedBadges: badges,\n });\n }\n\n if (desc.acs) {\n this.setState({\n incognitoMode: !desc.acs.isPresencer()\n });\n }\n\n if (TinodeWeb.checkIfPinsUpdated(desc, this.state.chatList)) {\n this.resetContactList();\n }\n }\n\n // Reactions to updates to the contact list.\n tnMeContactUpdate(what, cont) {\n if (what == 'on' || what == 'off') {\n this.resetContactList();\n if (this.state.topicSelected == cont.topic) {\n this.setState({topicSelectedOnline: (what == 'on')});\n }\n } else if (what == 'read') {\n this.resetContactList();\n } else if (what == 'msg' && cont) {\n // Check if the topic is archived. If so, don't play a sound.\n const topic = this.tinode.getTopic(cont.topic);\n const archived = topic && topic.isArchived();\n\n // New message received. Maybe the message is from the current user, then unread is 0.\n if (cont.unread > 0 && this.state.messageSounds && !archived) {\n // Skip update if the topic is currently open, otherwise the badge will annoyingly flash.\n if (document.hidden || this.state.topicSelected != cont.topic) {\n POP_SOUND.play().catch(_ => {\n // play() throws if the user did not click the app first: https://goo.gl/xX8pDD.\n });\n }\n }\n // Reorder contact list to use possibly updated 'touched'.\n this.resetContactList();\n } else if (what == 'recv') {\n // Explicitly ignoring \"recv\" -- it causes no visible updates to contact list.\n } else if (what == 'gone' || what == 'unsub') {\n // Topic deleted or user unsubscribed. Remove topic from view.\n // If the currently selected topic is gone, clear the selection.\n if (this.state.topicSelected == cont.topic) {\n this.handleTopicSelected(null);\n }\n // Redraw without the deleted topic.\n this.resetContactList();\n } else if (what == 'acs') {\n // Permissions changed. If it's for the currently selected topic,\n // update the views.\n if (this.state.topicSelected == cont.topic) {\n this.setState({topicSelectedAcs: cont.acs});\n }\n } else if (what == 'del') {\n // TODO: messages deleted (hard or soft) -- update pill counter.\n } else if (what == 'upd' || what == 'call') {\n // upd, call - handled by the SDK. Explicitly ignoring here.\n } else {\n // TODO(gene): handle other types of notifications:\n // * ua -- user agent changes (maybe display a pictogram for mobile/desktop).\n console.info(\"Unsupported (yet) presence update:\", what, \"in\", (cont || {}).topic);\n }\n }\n\n tnMeSubsUpdated(unused) {\n this.resetContactList();\n }\n\n // Merge search results and contact list to create a single flat\n // list of known contacts for GroupManager to use.\n static prepareSearchableContacts(chatList, foundContacts) {\n const merged = {};\n\n // For chatList topics merge only p2p topics and convert them to the\n // same format as foundContacts.\n for (const c of chatList) {\n if (Tinode.isP2PTopicName(c.topic)) {\n merged[c.topic] = {\n user: c.topic,\n updated: c.updated,\n public: c.public,\n private: c.private,\n acs: c.acs\n };\n }\n }\n\n // Add all foundCountacts if they have not been added already.\n for (const c of foundContacts) {\n if (!merged[c.user]) {\n merged[c.user] = c;\n }\n }\n\n return Object.values(merged);\n }\n\n resetContactList() {\n const newState = {\n chatList: []\n };\n\n if (!this.state.ready) {\n newState.ready = true;\n }\n\n const me = this.tinode.getMeTopic();\n me.contacts(c => {\n if (!c.topic && !c.user) {\n // Contacts expect c.topic to be set.\n c.topic = c.name;\n }\n\n newState.chatList.push(c);\n if (this.state.topicSelected == c.topic) {\n newState.topicSelectedOnline = c.online;\n newState.topicSelectedAcs = c.acs;\n }\n });\n\n const past = new Date(0);\n newState.chatList.sort((a, b) => {\n // Pinned topics take precedence.\n const pins = me.pinnedTopicRank(b.topic) - me.pinnedTopicRank(a.topic);\n // Then sort by last touched time.\n return pins != 0 ? pins : (b.touched || past).getTime() - (a.touched || past).getTime();\n });\n\n // Merge search results and chat list.\n newState.searchableContacts = TinodeWeb.prepareSearchableContacts(newState.chatList, this.state.searchResults);\n this.setState(newState);\n }\n\n static checkIfPinsUpdated(me, chatList) {\n for (let i = 0; i < chatList.length; i++) {\n const c = chatList[i];\n if (!!me.pinnedTopicRank(c.topic) != c.pinned) {\n return true;\n }\n }\n return false;\n }\n\n /* Fnd topic: find contacts by tokens */\n tnInitFind() {\n const fnd = this.tinode.getFndTopic();\n fnd.onSubsUpdated = this.tnFndSubsUpdated;\n if (fnd.isSubscribed()) {\n this.tnFndSubsUpdated();\n } else {\n fnd.subscribe(fnd.startMetaQuery().withSub().build()).catch(err => {\n this.handleError(err.message, 'err');\n });\n }\n }\n\n tnFndSubsUpdated() {\n const foundContacts = [];\n // Don't attempt to create P2P topics which already exist. Server will reject the duplicates.\n this.tinode.getFndTopic().contacts((s) => {\n foundContacts.push(s);\n });\n this.setState({\n searchResults: foundContacts,\n searchableContacts: TinodeWeb.prepareSearchableContacts(this.state.chatList, foundContacts)\n });\n }\n\n /** Called when the user enters a contact into the contact search field in the NewAccount panel\n @param query {Array} is an array of contacts to search for\n */\n handleSearchContacts(query) {\n const fnd = this.tinode.getFndTopic();\n fnd.setMeta({desc: {public: query}})\n .then(_ => fnd.getMeta(fnd.startMetaQuery().withSub().build()))\n .catch(err => this.handleError(err.message, 'err'));\n }\n\n // User clicked on a topic in the side panel or deleted a topic.\n handleTopicSelected(topicName) {\n // Clear newTopicParams after use.\n if (this.state.newTopicParams && this.state.newTopicParams._topicName != topicName) {\n this.setState({\n newTopicParams: null\n });\n }\n\n if (topicName) {\n this.setState({\n errorText: '',\n errorLevel: null,\n mobilePanel: 'topic-view',\n infoPanel: undefined\n });\n // Different topic selected.\n if (this.state.topicSelected != topicName) {\n this.setState({\n topicSelectedOnline: this.tinode.isTopicOnline(topicName),\n topicSelectedAcs: this.tinode.getTopicAccessMode(topicName),\n forwardMessage: null\n });\n HashNavigation.navigateTo(HashNavigation.setUrlTopic('', topicName));\n }\n } else {\n // Currently selected contact deleted\n this.setState({\n topicSelected: null,\n errorText: '',\n errorLevel: null,\n mobilePanel: 'sidepanel',\n topicSelectedOnline: false,\n topicSelectedAcs: null,\n infoPanel: undefined,\n forwardMessage: null\n });\n\n HashNavigation.navigateTo(HashNavigation.setUrlTopic('', null));\n }\n }\n\n // In mobile view user requested to show sidepanel\n handleHideMessagesView() {\n this.setState({\n mobilePanel: 'sidepanel'\n });\n HashNavigation.navigateTo(HashNavigation.setUrlTopic(window.location.hash, null));\n }\n\n // User is sending a message, either plain text or a drafty object, possibly\n // with attachments.\n // - msg - Drafty message with content\n // - promise - Promise to be resolved when the upload is completed\n // - uploadCompletionPromise - for tracking progress\n // - head - head dictionary to be attached to the message\n handleSendMessage(msg, uploadCompletionPromise, uploader, head) {\n const topic = this.tinode.getTopic(this.state.topicSelected);\n return this.sendMessageToTopic(topic, msg, uploadCompletionPromise, uploader, head);\n }\n\n sendMessageToTopic(topic, msg, uploadCompletionPromise, uploader, head) {\n msg = topic.createMessage(msg, false);\n // The uploader is used to show progress.\n msg._uploader = uploader;\n\n if (head) {\n msg.head = Object.assign(msg.head || {}, head);\n }\n\n const completion = [];\n if (uploadCompletionPromise) {\n completion.push(uploadCompletionPromise);\n }\n\n if (!topic.isSubscribed()) {\n // Topic is not subscribed yet. Subscribe.\n const subscribePromise =\n topic.subscribe()\n .then(_ => {\n // If there are unsent messages (except video call messages),\n // try sending them now. Unsent video call messages will be dropped.\n let calls = [];\n topic.queuedMessages(pub => {\n if (pub._sending || pub.seq == msg.seq) {\n return;\n }\n if (pub.head && pub.head.webrtc) {\n // Filter out unsent video call messages.\n calls.push(pub.seq);\n return;\n }\n if (topic.isSubscribed()) {\n topic.publishMessage(pub);\n }\n });\n if (calls.length > 0) {\n topic.delMessagesList(calls, true);\n }\n });\n completion.push(subscribePromise);\n }\n\n // TODO: check if return is required.\n return topic.publishDraft(msg, Promise.all(completion))\n .then(ctrl => {\n if (topic.isArchived()) {\n topic.archive(false);\n }\n return ctrl;\n })\n .catch(err => this.handleError(err.message, 'err'));\n }\n\n handleNewChatInvitation(topicName, action) {\n const topic = this.tinode.getTopic(topicName);\n let response = null;\n switch (action) {\n case 'accept':\n // Accept given permissions.\n const mode = topic.getAccessMode().getGiven();\n response = topic.setMeta({sub: {mode: mode}});\n if (topic.isP2PType()) {\n // For P2P topics change 'given' permission of the peer too.\n // In p2p topics the other user has the same name as the topic.\n response = response.then(_ => topic.setMeta({sub: {user: topicName, mode: mode}}));\n }\n break;\n case 'delete':\n // Ignore invitation by deleting it.\n response = topic.delTopic(true);\n break;\n case 'block':\n // Ban the topic making futher invites impossible.\n // Just self-ban.\n const am = topic.getAccessMode().updateWant('-JP').getWant();\n response = topic.setMeta({sub: {mode: am}}).then(_ => this.handleTopicSelected(null));\n break;\n default:\n console.warn(\"Unknown invitation action\", '\"' + action + '\"\"');\n }\n\n if (response != null) {\n response.catch(err => this.handleError(err.message, 'err'));\n }\n }\n\n // User chose a Sign Up menu item.\n handleNewAccount() {\n this.handleError();\n\n HashNavigation.navigateTo(HashNavigation.setUrlSidePanel(window.location.hash, 'register'));\n }\n\n // Actual registration of a new account.\n handleNewAccountRequest(login_, password_, public_, cred_, tags_) {\n // Clear old error, if any.\n this.handleError();\n\n this.tinode.connect(this.state.serverAddress)\n .then(_ => {\n let attachments;\n if (public_ && public_.photo && public_.photo.ref) {\n attachments = [public_.photo.ref];\n }\n return this.tinode.createAccountBasic(login_, password_,\n {public: public_, tags: tags_, cred: Tinode.credential(cred_), attachments: attachments});\n }).then(ctrl => {\n if (ctrl.code >= 300 && ctrl.text == 'validate credentials') {\n TinodeWeb.navigateToCredentialsView(ctrl.params);\n } else {\n this.handleLoginSuccessful(this);\n }\n }).catch(err => {\n this.handleError(err.message, 'err');\n });\n }\n\n handleToggleIncognitoMode(on) {\n // Make state undefined.\n this.setState({incognitoMode: null});\n\n const me = this.tinode.getMeTopic();\n const am = me.getAccessMode().updateWant(on ? '-P' : '+P').getWant();\n me.setMeta({sub: {mode: am}}).catch(err => {\n // Request failed, keep existing state.\n this.setState({incognitoMode: !on});\n this.handleError(err.message, 'err');\n });\n }\n\n // Manual change of color scheme: 'dark', 'light', 'auto'.\n handleChangeColorSchema(schema) {\n this.setState({colorSchema: schema});\n LocalStorageUtil.updateObject('settings', {colorSchema: schema});\n document.documentElement.style.colorScheme = schema == 'auto' ? 'light dark' : schema;\n this.applyColorSchema(schema, this.state.systemColorSchema, this.state.wallpaperSize);\n }\n\n // System color scheme has changed.\n handleColorSchemeChange(event) {\n const systemSchema = event.matches ? 'dark' : 'light';\n this.setState({systemColorSchema: systemSchema});\n this.applyColorSchema(this.state.colorSchema, systemSchema, this.state.wallpaperSize);\n }\n\n applyColorSchema(schema, systemSchema, size) {\n const effectiveSchema = schema == 'auto' ? systemSchema : schema;\n document.documentElement.style.setProperty('--wallpaper-invert', effectiveSchema == 'dark' && size ? '1' : '0');\n document.documentElement.style.setProperty('--wallpaper-brightness', effectiveSchema == 'dark' && !size ? '0.5' : '1');\n }\n\n handleSelectWallpapers() {\n this.handleError();\n HashNavigation.navigateTo(HashNavigation.setUrlSidePanel(window.location.hash, 'wallpapers'));\n }\n\n applyWallpaperSettings(wallpaper, size, blur, effectiveSchema) {\n document.documentElement.style.setProperty('--wallpaper-url', `url('${wallpaper}')`);\n document.documentElement.style.setProperty('--wallpaper-repeat', size ? 'repeat' : 'no-repeat');\n document.documentElement.style.setProperty('--wallpaper-blur', size ? '0px' : `${blur}px`);\n document.documentElement.style.setProperty('--wallpaper-size', size ? `${size}px` : 'cover');\n document.documentElement.style.setProperty('--wallpaper-position', size ? 'unset' : 'center');\n document.documentElement.style.setProperty('--wallpaper-invert', effectiveSchema == 'dark' && size ? '1' : '0');\n document.documentElement.style.setProperty('--wallpaper-brightness', effectiveSchema == 'dark' && !size ? '0.5' : '1');\n }\n\n handleWallpaperSelected(wallpaper, size, blur) {\n this.handleError();\n LocalStorageUtil.updateObject('settings', {wallpaper: wallpaper, wallpaperSize: size, wallpaperBlur: blur});\n this.setState({wallpaper: wallpaper, wallpaperSize: size, wallpaperBlur: blur});\n this.applyWallpaperSettings(wallpaper, size, blur,\n this.state.colorSchema == 'auto' ? this.state.systemColorSchema : this.state.colorSchema);\n }\n\n handleChangeTextSize(size) {\n this.setState({textSize: size | 0});\n LocalStorageUtil.updateObject('settings', {textSize: size});\n document.documentElement.style.setProperty('--message-text-size', `${size}pt`);\n }\n\n handleSendOnEnter(option) {\n this.setState({sendOnEnter: option});\n LocalStorageUtil.updateObject('settings', {sendOnEnter: option});\n }\n\n handleUpdateAccountTagsRequest(_, tags) {\n this.tinode.getMeTopic().setMeta({tags: tags})\n .catch(err => this.handleError(err.message, 'err'));\n }\n\n // User chose Settings menu item.\n handleSettings() {\n this.handleError();\n\n HashNavigation.navigateTo(HashNavigation.setUrlSidePanel(window.location.hash,\n this.state.myUserId ? 'edit' : 'settings'));\n }\n\n // User updated global parameters.\n handleGlobalSettings(settings) {\n const serverAddress = settings.serverAddress || this.state.serverAddress;\n const transport = settings.transport || this.state.transport;\n const secureConnection = settings.secureConnection === undefined ?\n this.state.secureConnection : settings.secureConnection;\n if (this.tinode) {\n this.tinode.clearStorage();\n this.tinode.onDisconnect = undefined;\n this.tinode.disconnect();\n }\n this.tinode = TinodeWeb.tnSetup(serverAddress, secureConnection, transport,\n this.props.intl.locale, LocalStorageUtil.getObject('keep-logged-in'));\n this.tinode.onConnect = this.handleConnected;\n this.tinode.onDisconnect = this.handleDisconnect;\n this.tinode.onAutoreconnectIteration = this.handleAutoreconnectIteration;\n this.tinode.onInfoMessage = this.handleInfoMessage;\n this.tinode.onDataMessage = this.handleDataMessage;\n\n this.setState({\n serverAddress: serverAddress,\n transport: transport,\n secureConnection: secureConnection,\n });\n LocalStorageUtil.setObject('settings', {\n serverAddress: serverAddress,\n transport: transport,\n secureConnection: secureConnection,\n });\n\n HashNavigation.navigateTo(HashNavigation.setUrlSidePanel(window.location.hash, ''));\n }\n\n // User chose 'Archived chats'.\n handleShowArchive() {\n HashNavigation.navigateTo(HashNavigation.setUrlSidePanel(window.location.hash,\n this.state.myUserId ? 'archive' : ''));\n }\n\n // User viewes 'Blocked chats'.\n handleShowBlocked() {\n HashNavigation.navigateTo(HashNavigation.setUrlSidePanel(window.location.hash,\n this.state.myUserId ? 'blocked' : ''));\n }\n\n toggleFCMToken(enabled) {\n if (enabled) {\n this.setState({desktopAlerts: null});\n if (!this.state.firebaseToken) {\n this.initFCMessaging();\n } else {\n this.setState({desktopAlerts: true});\n if (LocalStorageUtil.getObject('keep-logged-in')) {\n LocalStorageUtil.updateObject('settings', {desktopAlerts: true});\n }\n }\n } else if (this.state.firebaseToken && this.fcm) {\n firebaseDelToken(this.fcm).catch(err => {\n console.error(\"Unable to delete token.\", err);\n }).finally(_ => {\n LocalStorageUtil.updateObject('settings', {desktopAlerts: false});\n localStorage.removeItem('firebase-token');\n this.setState({desktopAlerts: false, firebaseToken: null});\n // Inform the server that the token was deleted.\n this.tinode.setDeviceToken(null);\n });\n } else {\n this.setState({desktopAlerts: false, firebaseToken: null});\n LocalStorageUtil.updateObject('settings', {desktopAlerts: false});\n }\n }\n\n handleToggleMessageSounds(enabled) {\n this.setState({messageSounds: enabled});\n LocalStorageUtil.updateObject('settings', {\n messageSoundsOff: !enabled\n });\n }\n\n handleCredAdd(method, value) {\n const me = this.tinode.getMeTopic();\n me.setMeta({cred: {meth: method, val: value}})\n .catch(err => this.handleError(err.message, 'err'));\n }\n\n handleCredDelete(method, value) {\n const me = this.tinode.getMeTopic();\n me.delCredential(method, value)\n .catch(err => this.handleError(err.message, 'err'));\n }\n\n handleCredConfirm(method, response) {\n TinodeWeb.navigateToCredentialsView({cred: [method], code: response});\n }\n\n // User clicked Cancel button in Setting or Sign Up panel.\n handleSidepanelCancel() {\n const parsed = HashNavigation.parseUrlHash(window.location.hash);\n let path = '';\n if (['security','support','general','notif','acc_general'].includes(parsed.path[0])) {\n path = 'edit';\n } else if ('crop' == parsed.path[0]) {\n path = 'general';\n } else if ('blocked' == parsed.path[0]) {\n path = 'security';\n } else if ('wallpapers' == parsed.path[0]) {\n path = 'acc_general';\n } else if (this.state.myUserId) {\n path = 'contacts';\n }\n parsed.path[0] = path;\n if (parsed.params) {\n delete parsed.params.code;\n delete parsed.params.method;\n delete parsed.params.tab;\n delete parsed.params.scheme;\n delete parsed.params.token;\n }\n HashNavigation.navigateTo(HashNavigation.composeUrlHash(parsed.path, parsed.params));\n this.setState({errorText: '', errorLevel: null});\n }\n\n // Sidepanel navigator. No need to bind to 'this'.\n basicNavigator(hash) {\n HashNavigation.navigateTo(HashNavigation.setUrlSidePanel(window.location.hash, hash));\n }\n\n // Topic info navigator. No need to bind to 'this'.\n infoNavigator(hash) {\n HashNavigation.navigateTo(HashNavigation.setUrlInfoPanel(window.location.hash, hash));\n }\n\n // Request to start a topic, new or selected from search results, or \"by ID\".\n handleStartTopicRequest(topicName, newTopicParams, isChannel) {\n // Check if topic is indeed new. If not, launch it.\n if (topicName && this.tinode.isTopicCached(topicName)) {\n this.handleTopicSelected(topicName);\n return;\n }\n\n const params = {};\n if (Tinode.isP2PTopicName(topicName)) {\n // Because we are initiating the subscription, set 'want' to all permissions.\n params.sub = {mode: DEFAULT_P2P_ACCESS_MODE};\n // Give the other user all permissions too.\n params.desc = {defacs: {auth: DEFAULT_P2P_ACCESS_MODE}};\n } else {\n topicName = topicName || this.tinode.newGroupTopicName(isChannel);\n if (newTopicParams) {\n params.desc = {public: newTopicParams.public, private: {comment: newTopicParams.private}};\n params.tags = newTopicParams.tags;\n }\n }\n params._topicName = topicName;\n this.setState({newTopicParams: params}, _ => {this.handleTopicSelected(topicName)});\n }\n\n // New topic was created, here is the new topic name.\n handleNewTopicCreated(oldName, newName) {\n let nextState = {};\n if (this.state.callShouldStart) {\n nextState = {callState: CALL_STATE_IN_PROGRESS, callShouldStart: false};\n }\n if (this.state.topicSelected == oldName && oldName != newName) {\n // If the current URl contains the old topic name, replace it with new.\n // Update the name of the selected topic first so the navigator doen't clear\n // the state.\n nextState.topicSelected = newName;\n }\n this.setState(nextState, _ => {\n HashNavigation.navigateTo(HashNavigation.setUrlTopic('', newName));\n });\n }\n\n handleTopicUpdateRequest(topicName, pub, priv, defacs) {\n this.handleError();\n\n const topic = this.tinode.getTopic(topicName);\n if (topic) {\n const params = {};\n let attachments;\n if (pub) {\n if (pub.photo) {\n if (pub.photo.ref && pub.photo.ref != Tinode.DEL_CHAR) {\n attachments = [pub.photo.ref];\n } else if (!pub.photo.data || pub.photo.data == Tinode.DEL_CHAR) {\n pub.photo = Tinode.DEL_CHAR;\n }\n }\n params.public = pub;\n }\n\n if (typeof priv == 'string') {\n params.private = (priv === Tinode.DEL_CHAR) ?\n Tinode.DEL_CHAR : {comment: priv};\n }\n if (defacs) {\n params.defacs = defacs;\n }\n topic.setMeta({desc: params, attachments: attachments})\n .catch(err => this.handleError(err.message, 'err'));\n }\n }\n\n handleUnarchive(topicName) {\n const topic = this.tinode.getTopic(topicName);\n if (topic) {\n topic.archive(false).catch(err => this.handleError(err.message, 'err'));\n }\n }\n\n handleUpdatePasswordRequest(password) {\n this.handleError();\n\n if (password) {\n this.tinode.updateAccountBasic(null, this.tinode.getCurrentLogin(), password)\n .catch(err => this.handleError(err.message, 'err'));\n }\n }\n\n handleChangePermissions(topicName, mode, uid) {\n const topic = this.tinode.getTopic(topicName);\n if (topic) {\n const am = topic.getAccessMode();\n if (uid) {\n am.updateGiven(mode);\n mode = am.getGiven();\n } else {\n am.updateWant(mode);\n mode = am.getWant();\n }\n topic.setMeta({sub: {user: uid, mode: mode}})\n .catch(err => this.handleError(err.message, 'err'));\n }\n }\n\n handleTagsUpdateRequest(topicName, tags) {\n const topic = this.tinode.getTopic(topicName);\n if (topic) {\n topic.setMeta({tags: tags})\n .catch(err => this.handleError(err.message, 'err'));\n }\n }\n\n handleLogout() {\n updateFavicon(0);\n\n // Remove stored data.\n localStorage.removeItem('auth-token');\n localStorage.removeItem('firebase-token');\n localStorage.removeItem('settings');\n if (this.state.firebaseToken && this.fcm) {\n // Unsubscribe failures (e.g. 403 token-unsubscribe-failed) should not block logout.\n firebaseDelToken(this.fcm).catch(err => {\n console.warn('Failed to delete FCM token on logout', err);\n });\n }\n\n // Reset color scheme.\n document.documentElement.style.colorScheme = DEFAULT_COLOR_SCHEME == 'auto' ? 'light dark' : DEFAULT_COLOR_SCHEME;\n document.documentElement.style.setProperty('--message-text-size', `${DEFAULT_TEXT_SIZE}pt`);\n\n clearInterval(this.reconnectCountdown);\n\n let cleared;\n if (this.tinode) {\n cleared = this.tinode.clearStorage();\n this.tinode.onDisconnect = undefined;\n this.tinode.disconnect();\n } else {\n cleared = Promose.resolve();\n }\n this.setState(this.getBlankState());\n\n cleared.then(_ => {\n this.tinode = TinodeWeb.tnSetup(this.state.serverAddress, isSecureConnection(),\n this.state.transport, this.props.intl.locale, LocalStorageUtil.getObject('keep-logged-in'), _ => {\n this.tinode.onConnect = this.handleConnected;\n this.tinode.onDisconnect = this.handleDisconnect;\n this.tinode.onAutoreconnectIteration = this.handleAutoreconnectIteration;\n this.tinode.onInfoMessage = this.handleInfoMessage;\n this.tinode.onDataMessage = this.handleDataMessage;\n HashNavigation.navigateTo('');\n })\n });\n }\n\n handleDeleteAccount() {\n this.tinode.delCurrentUser(true).then(_ => {\n this.handleLogout();\n });\n }\n\n handleDeleteTopicRequest(topicName) {\n const topic = this.tinode.getTopic(topicName);\n if (!topic) {\n return;\n }\n\n // Request to hard-delete topic.\n topic.delTopic(true).then(_ => {\n // Hide MessagesView and InfoView panels.\n HashNavigation.navigateTo(HashNavigation.setUrlTopic(window.location.hash, ''));\n }).catch(err => {\n this.handleError(err.message, 'err');\n });\n }\n\n handleDeleteMessagesRequest(topicName) {\n const topic = this.tinode.getTopic(topicName);\n if (!topic) {\n return;\n }\n\n // Request hard-delete all messages.\n topic.delMessagesAll(true)\n .catch(err => this.handleError(err.message, 'err'));\n }\n\n handleLeaveUnsubRequest(topicName) {\n const topic = this.tinode.getTopic(topicName);\n if (!topic) {\n return;\n }\n\n topic.leave(true).then(_ => {\n // Hide MessagesView and InfoView panels.\n HashNavigation.navigateTo(HashNavigation.setUrlTopic(window.location.hash, ''));\n }).catch(err => {\n this.handleError(err.message, 'err');\n });\n }\n\n handleBlockTopicRequest(topicName) {\n const topic = this.tinode.getTopic(topicName);\n if (!topic) {\n return;\n }\n\n topic.updateMode(null, '-JP')\n .then(_ => {\n // Hide MessagesView and InfoView panels.\n HashNavigation.navigateTo(HashNavigation.setUrlTopic(window.location.hash, ''));\n })\n .catch(err => this.handleError(err.message, 'err'));\n }\n\n handleReportTopic(topicName) {\n const topic = this.tinode.getTopic(topicName);\n if (!topic) {\n return;\n }\n\n // Publish spam report.\n this.tinode.report('report', topicName);\n\n // Remove J and P permissions.\n topic.updateMode(null, '-JP')\n .then(_ => {\n // Hide MessagesView and InfoView panels.\n HashNavigation.navigateTo(HashNavigation.setUrlTopic(window.location.hash, ''));\n })\n .catch(err => this.handleError(err.message, 'err'));\n }\n\n handleShowContextMenu(params, menuItems) {\n this.setState({\n contextMenuVisible: true,\n contextMenuClickAt: {x: params.x, y: params.y},\n contextMenuParams: params,\n contextMenuItems: menuItems || this.defaultTopicContextMenu(params.topicName),\n contextMenuBounds: this.selfRef.current.getBoundingClientRect()\n });\n }\n\n //\n handleShowForwardDialog(params) {\n if (this.state.sidePanelSelected == 'newtpk') {\n // If the Find panel is active, close it.\n this.handleSidepanelCancel();\n }\n const header = params.userName ? '➦ ' + params.userName : '';\n const content = typeof params.content == 'string' ? Drafty.init(params.content) : Drafty.forwardedContent(params.content);\n const preview = Drafty.preview(content, FORWARDED_PREVIEW_LENGTH, true);\n const msg = Drafty.append(Drafty.appendLineBreak(Drafty.mention(header, params.userFrom)), content);\n const msgPreview = Drafty.quote(header, params.userFrom, preview);\n\n const head = {\n forwarded: params.topicName + ':' + params.seq\n };\n this.setState({\n forwardDialogVisible: true,\n forwardMessage: { head: head, msg: msg, preview: msgPreview }\n });\n }\n\n handleShareTheCard(card) {\n this.setState({\n forwardDialogVisible: true,\n forwardMessage: {\n content: card,\n type: card.contentType,\n }\n });\n }\n\n defaultTopicContextMenu(topicName) {\n const topic = this.tinode.getTopic(topicName);\n\n if (topic._deleted) {\n return [\n 'topic_delete'\n ];\n }\n\n const me = this.tinode.getMeTopic();\n let muted = false, blocked = false, self_blocked = false, subscribed = false, deleter = false,\n archived = false, pinned = false, webrtc = false, writer = false, p2p = false, self = false;\n if (topic) {\n subscribed = topic.isSubscribed();\n archived = topic.isArchived();\n pinned = me.pinnedTopicRank(topicName) > 0;\n\n const acs = topic.getAccessMode();\n if (acs) {\n muted = acs.isMuted();\n blocked = !acs.isJoiner();\n self_blocked = !acs.isJoiner('want');\n deleter = acs.isDeleter();\n writer = acs.isWriter();\n }\n }\n\n webrtc = writer && !!this.tinode.getServerParam('iceServers');\n p2p = Tinode.isP2PTopicName(topicName);\n self = Tinode.isSelfTopicName(topicName);\n\n return [\n subscribed ? {\n title: this.props.intl.formatMessage(messages.menu_item_info),\n handler: this.handleShowInfoView\n } : null,\n subscribed && p2p && webrtc ? {\n title: this.props.intl.formatMessage(messages.menu_item_audio_call),\n handler: this.handleStartAudioCall\n } : null,\n subscribed && p2p && webrtc ? {\n title: this.props.intl.formatMessage(messages.menu_item_video_call),\n handler: this.handleStartVideoCall\n } : null,\n subscribed ? 'messages_clear' : null,\n subscribed && deleter && !self ? 'messages_clear_hard' : null,\n self ? null : (muted ? (blocked ? null : 'topic_unmute') : 'topic_mute'),\n self ? null : (self_blocked ? 'topic_unblock' : 'topic_block'),\n pinned ? 'topic_unpin' : 'topic_pin',\n archived ? 'topic_restore' : 'topic_archive',\n 'topic_delete'\n ];\n }\n\n handleHideContextMenu() {\n this.setState({\n contextMenuVisible: false,\n contextMenuClickAt: null,\n contextMenuParams: null,\n contextMenuBounds: null\n });\n }\n\n handleHideForwardDialog(keepForwardedMessage) {\n this.setState({\n forwardDialogVisible: false,\n forwardMessage: keepForwardedMessage ? this.state.forwardMessage : null\n });\n }\n\n handleContextMenuAction(action, promise, params) {\n if (action == 'topic_archive') {\n if (promise && params.topicName && params.topicName == this.state.topicSelected) {\n promise.then(_ => {\n this.handleTopicSelected(null);\n });\n }\n } else if (action == 'menu_item_forward') {\n this.handleShowForwardDialog(params);\n }\n }\n\n handleShowAlert(title, content, onConfirm, confirmText, onReject, rejectText) {\n this.setState({\n alertVisible: true,\n alertParams: {\n title: title,\n content: content,\n onConfirm: onConfirm,\n confirm: confirmText,\n onReject: onReject,\n reject: rejectText\n }\n });\n }\n\n handleShowInfoView() {\n HashNavigation.navigateTo(HashNavigation.addUrlParam(window.location.hash, 'info', 'info'));\n this.setState({infoPanel: 'info'});\n }\n\n handleMemberUpdateRequest(topicName, added, removed) {\n if (!topicName) {\n return;\n }\n\n const topic = this.tinode.getTopic(topicName);\n if (!topic) {\n return;\n }\n\n if (added && added.length > 0) {\n added.forEach(uid => {\n topic.invite(uid, null)\n .catch(err => this.handleError(err.message, 'err'));\n });\n }\n\n if (removed && removed.length > 0) {\n removed.forEach(uid => {\n topic.delSubscription(uid)\n .catch(err => this.handleError(err.message, 'err'));\n });\n }\n }\n\n handleValidateCredentialsRequest(cred, code, token) {\n if (this.tinode.isAuthenticated()) {\n // Adding new email or phone number in account setting.\n this.tinode.getMeTopic().setMeta({cred: {meth: cred, resp: code}})\n .then(_ => HashNavigation.navigateTo(HashNavigation.setUrlSidePanel(window.location.hash, 'contacts')))\n .catch(err => this.handleError(err.message, 'err'));\n } else {\n // Credential validation on signup.\n this.setState({credMethod: cred, credCode: code, credToken: token});\n this.doLogin(null, null, token, {meth: cred, resp: code});\n }\n }\n\n handlePasswordResetRequest(method, value) {\n // If already connected, connnect() will return a resolved promise.\n return this.tinode.connect()\n .then(_ => this.tinode.requestResetAuthSecret('basic', method, value))\n .catch(err => {\n // Socket error\n this.handleError(err.message, 'err');\n });\n }\n\n handleResetPassword(newPassword, tempAuth) {\n const secret = base64ReEncode(tempAuth.secret);\n if (!secret || !tempAuth.scheme) {\n this.handleError(this.props.intl.formatMessage(messages.invalid_security_token), 'err');\n } else {\n this.tinode.connect()\n .then(_ => this.tinode.updateAccountBasic(null, null, newPassword, {scheme: tempAuth.scheme, secret: secret}))\n .then(_ => {\n this.handleError(this.props.intl.formatMessage(messages.password_reset_success), 'info');\n HashNavigation.navigateTo('');\n })\n .catch(err => {\n this.handleError(err.message, 'err');\n });\n }\n }\n\n handleShowCountrySelector(code, dial, selectedCallback) {\n this.handleShowAlert(this.props.intl.formatMessage(messages.select_country),\n }>\n {\n this.setState({alertVisible: false});\n selectedCallback(c, d);\n }} />\n ,\n null, null, _ => {}, null);\n }\n\n handleStartVideoCall() {\n this.setState({\n callTopic: this.state.topicSelected,\n callState: CALL_STATE_OUTGOING_INITATED,\n callAudioOnly: false\n });\n }\n\n handleStartAudioCall() {\n this.setState({\n callTopic: this.state.topicSelected,\n callState: CALL_STATE_OUTGOING_INITATED,\n callAudioOnly: true\n });\n }\n\n handleCallInvite(callTopic, callSeq, callState, audioOnly) {\n switch (callState) {\n case CALL_STATE_OUTGOING_INITATED:\n const head = { webrtc: CALL_HEAD_STARTED, aonly: !!audioOnly };\n return this.handleSendMessage(Drafty.videoCall(audioOnly), undefined, undefined, head)\n .then(ctrl => {\n if (ctrl.code < 200 || ctrl.code >= 300 || !ctrl.params || !ctrl.params.seq) {\n this.handleCallClose();\n return ctrl;\n }\n this.setState({callSeq: ctrl.params['seq']});\n return ctrl\n });\n case CALL_STATE_IN_PROGRESS:\n const topic = this.tinode.getTopic(callTopic);\n if (!topic) {\n return;\n }\n // We've accepted the call. Let the other side know.\n topic.videoCall('accept', callSeq);\n break;\n }\n }\n\n handleCallRinging(callTopic, callSeq) {\n const topic = this.tinode.getTopic(callTopic);\n if (!topic) {\n return;\n }\n\n topic.videoCall('ringing', callSeq);\n }\n\n handleCallHangup(callTopic, callSeq) {\n const topic = this.tinode.getTopic(callTopic);\n if (!topic) {\n return;\n }\n\n topic.videoCall('hang-up', callSeq);\n }\n\n handleCallSendOffer(callTopic, callSeq, sdp) {\n const topic = this.tinode.getTopic(callTopic);\n if (!topic) {\n return;\n }\n\n topic.videoCall('offer', callSeq, sdp);\n }\n\n handleCallIceCandidate(callTopic, callSeq, candidate) {\n const topic = this.tinode.getTopic(callTopic);\n if (!topic) {\n return;\n }\n\n topic.videoCall('ice-candidate', callSeq, candidate);\n }\n handleCallSendAnswer(callTopic, callSeq, sdp) {\n const topic = this.tinode.getTopic(callTopic);\n if (!topic) {\n return;\n }\n\n topic.videoCall('answer', callSeq, sdp);\n }\n\n handleCallClose() {\n if (this.callTimeoutTimer) {\n clearTimeout(this.callTimeoutTimer);\n }\n this.setState({\n callTopic: undefined,\n callState: CALL_STATE_NONE,\n callAudioOnly: undefined\n });\n }\n\n handleCallAccept(topicName, setCallTopic, callSeq) {\n const topic = this.tinode.getTopic(topicName);\n if (!topic) {\n return;\n }\n if (topic.isSubscribed()) {\n this.handleTopicSelected(setCallTopic ? topicName : this.state.callTopic);\n const upd = {\n callState: CALL_STATE_IN_PROGRESS\n };\n if (setCallTopic) {\n upd.callTopic = topicName;\n upd.callSeq = callSeq;\n }\n this.setState(upd);\n } else {\n // We need to switch and subscribe to callTopic first.\n this.setState({\n callShouldStart: true,\n }, _ => this.handleTopicSelected(this.state.callTopic));\n }\n }\n\n handleInfoMessage(info) {\n if (info.what != 'call') {\n return;\n }\n switch (info.event) {\n case 'accept':\n // If another my session has accepted the call.\n if (Tinode.isMeTopicName(info.topic) && this.tinode.isMe(info.from)) {\n this.setState({\n callTopic: null,\n callState: CALL_STATE_NONE,\n callSeq: null,\n callAudioOnly: undefined\n });\n return;\n }\n if (info.topic == this.state.callTopic) {\n // Update state.\n this.setState({callState: CALL_STATE_IN_PROGRESS});\n }\n break;\n case 'hang-up':\n // Remote hangup.\n this.handleCallClose();\n break;\n }\n }\n\n handleDataMessage(data) {\n if (data.head && data.head.webrtc && data.head.webrtc == CALL_HEAD_STARTED && Tinode.isP2PTopicName(data.topic)) {\n // If it's a video call invite message.\n // See if we need to display incoming call UI.\n const topic = this.tinode.getTopic(data.topic);\n if (topic) {\n // Check if a later version of the message exists (which means the call\n // has been either accepted or finished already).\n const msg = topic.latestMsgVersion(data.seq) || data;\n if (msg.head && msg.head.webrtc && msg.head.webrtc == CALL_HEAD_STARTED) {\n // This is a legit new call.\n if (data.from != this.state.myUserId) {\n if (this.state.callState == CALL_STATE_NONE) {\n // Incoming call.\n this.setState({\n callTopic: data.topic,\n callState: CALL_STATE_INCOMING_RECEIVED,\n callSeq: data.seq,\n callAudioOnly: !!msg.head.aonly\n });\n } else {\n // Another call is either in progress or being established.\n // Reject the incoming call.\n this.handleCallHangup(data.topic, data.seq);\n }\n }\n }\n } else {\n console.warn(\"Received vc data message from unknown topic\", data.topic);\n }\n }\n }\n\n render() {\n const colorSchema = this.state.colorSchema !== 'auto' ? this.state.colorSchema : this.state.systemColorSchema;\n return (\n
    \n {this.state.contextMenuVisible ?\n {\n if (topicName == this.state.topicSelected) {\n this.handleTopicSelected(null);\n }\n }}\n onError={this.handleError} />\n :\n null\n }\n {this.state.forwardDialogVisible ?\n \n :\n null\n }\n {this.state.callTopic && this.state.callState == CALL_STATE_INCOMING_RECEIVED ?\n \n :\n null\n }\n {this.state.alertVisible ?\n this.setState({alertVisible: false})) : null}\n reject={this.state.alertParams.reject}\n onConfirm={this.state.alertParams.onConfirm ?\n (_ => {this.setState({alertVisible: false}); this.state.alertParams.onConfirm();}) : null}\n confirm={this.state.alertParams.confirm}\n /> : null}\n\n {!this.state.displayMobile || this.state.mobilePanel == 'sidepanel' ?\n \n : null}\n\n {!this.state.displayMobile || (this.state.mobilePanel == 'topic-view' && !this.state.infoPanel) ?\n
    }>\n \n \n : null}\n\n {this.state.infoPanel ?\n }>\n \n \n :\n null\n }\n \n );\n }\n};\n\nexport default injectIntl(TinodeWeb);\n","// View for editing topic parameters (including 'me' topic).\n\nimport React from 'react';\n\nimport TopicDescEdit from '../widgets/topic-desc-edit.jsx';\n\nimport { arrayEqual } from '../lib/utils.js';\n\nexport default class TopicCommonView extends React.Component {\n constructor(props) {\n super(props);\n\n const topic = this.props.tinode.getTopic(this.props.topic);\n const acs = topic.getAccessMode();\n this.state = {\n tags: []\n };\n\n this.previousTagsUpdated = undefined;\n\n this.onTagsUpdated = this.onTagsUpdated.bind(this);\n this.handleTagsUpdated = this.handleTagsUpdated.bind(this);\n }\n\n // No need to separately handle component mount.\n componentDidUpdate(props) {\n const topic = this.props.tinode.getTopic(props.topic);\n if (!topic) {\n return;\n }\n\n if (topic.onTagsUpdated != this.onTagsUpdated) {\n if (topic.getType() == 'grp') {\n this.previousTagsUpdated = topic.onTagsUpdated;\n topic.onTagsUpdated = this.onTagsUpdated;\n } else {\n this.previousTagsUpdated = undefined;\n }\n }\n\n if (this.state.topic != props.topic) {\n this.setState({topic: props.topic});\n }\n }\n\n componentWillUnmount() {\n const topic = this.props.tinode.getTopic(this.props.topic);\n topic.onTagsUpdated = this.previousTagsUpdated;\n }\n\n // Server informs that the tags have been updated.\n onTagsUpdated(tags) {\n this.setState({tags: tags});\n\n if (this.previousTagsUpdated && this.previousTagsUpdated != this.onTagsUpdated) {\n this.previousTagsUpdated(tags);\n }\n }\n\n // Request server to change tags.\n handleTagsUpdated(tags) {\n if (!arrayEqual(this.state.tags.slice(0), tags.slice(0))) {\n this.props.onUpdateTagsRequest(this.props.topic, tags);\n }\n }\n\n render() {\n return (\n
    \n \n
    \n );\n }\n};\n","// ValidationView: panel for confirming credentials, like email or phone.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nconst messages = defineMessages({\n phone: {\n id: 'phone_dative',\n defaultMessage: 'phone',\n description: \"Dative case of 'phone', i.e. 'phone' in 'by phone'\",\n },\n email: {\n id: 'email_dative',\n defaultMessage: 'email',\n description: \"Dative case of 'email', i.e. 'email' in 'by email'\",\n }\n});\n\nclass ValidationView extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n code: props.credCode || '',\n codeReceived: props.credCode\n };\n\n this.handleCodeChange = this.handleCodeChange.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.credCode != prevState.codeReceived) {\n return {\n code: nextProps.credCode || '',\n codeReceived: nextProps.credCode\n };\n }\n\n return prevState;\n }\n\n componentDidMount() {\n // Submit code automatically if it's received from the parent.\n if (this.props.credCode) {\n this.props.onSubmit(this.props.credMethod, this.props.credCode, this.props.credToken);\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n // Submit code automatically if it's received from the parent.\n if (this.state.codeReceived && this.state.code && this.state.code != prevState.code) {\n this.props.onSubmit(this.props.credMethod, this.state.code, this.props.credToken);\n }\n }\n\n\n handleCodeChange(e) {\n this.setState({code: e.target.value.replace(/[^\\d]/g, '')});\n }\n\n handleKeyPress(e) {\n if (e.key === 'Enter') {\n this.handleSubmit(e);\n } else if (e.key == 'Escape') {\n this.handleCancel(e);\n }\n }\n\n handleSubmit(e) {\n e.preventDefault();\n if (this.state.code && this.state.code.trim()) {\n this.props.onSubmit(this.props.credMethod, this.state.code.trim(), this.props.credToken);\n }\n }\n\n handleCancel(e) {\n e.preventDefault();\n this.props.onCancel();\n }\n\n render() {\n const { formatMessage } = this.props.intl;\n const methods = {'email': formatMessage(messages.email), 'tel': formatMessage(messages.phone)};\n const method = methods[this.props.credMethod] || this.props.credMethod;\n return (\n
    \n
    \n \n
    \n
    \n {\n (numbers_only) => \n }\n
    \n
    \n \n \n
    \n
    \n );\n }\n};\n\nexport default injectIntl(ValidationView);\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class Alert extends React.PureComponent {\n render() {\n return (
    \n
    \n
    {this.props.title}
    \n
    {this.props.content}
    \n
    \n {this.props.onReject ?\n \n :\n null\n }\n {this.props.onConfirm ?\n \n :\n null\n }\n
    \n
    \n
    );\n }\n};\n","// Audio recorder widget.\n\nimport React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat';\nimport { base64ToIntArray } from '../lib/blob-helpers';\n\n// Make canvas bigger than the element size to reduce blurring.\nconst CANVAS_UPSCALING = 2.0;\n// Thickness of a visualization bar.\nconst LINE_WIDTH = 3 * CANVAS_UPSCALING;\n// Spacing between two visualization bars.\nconst SPACING = 2 * CANVAS_UPSCALING;\n// Color of histogram bars.\nconst BAR_COLOR = '#888A';\nconst BAR_COLOR_DARK = '#666C';\nconst THUMB_COLOR = '#1781d7'; // average between dark and light accent colors.\n// Minimum number of amplitude bars to draw.\nconst MIN_PREVIEW_LENGTH = 16;\n\nconst messages = defineMessages({\n icon_title_play: {\n id: 'icon_title_play',\n defaultMessage: 'Play recording',\n description: 'Icon tool tip for starting audio playback'\n }\n});\n\nclass AudioPlayer extends React.PureComponent {\n constructor(props) {\n super(props);\n\n let preview = base64ToIntArray(this.props.preview);\n if (!Array.isArray(preview) || preview.length < MIN_PREVIEW_LENGTH) {\n preview = null;\n }\n\n this.state = {\n canPlay: false,\n playing: false,\n currentTime: '0:00',\n duration: this.props.duration > 0 ? secondsToTime(this.props.duration / 1000) : '-:--',\n longMin: this.props.duration >= 600000,\n preview: preview\n };\n\n this.initAudio = this.initAudio.bind(this);\n this.initCanvas = this.initCanvas.bind(this);\n this.resampleBars = this.resampleBars.bind(this);\n this.visualize = this.visualize.bind(this);\n\n this.handlePlay = this.handlePlay.bind(this);\n this.handleSeek = this.handleSeek.bind(this);\n this.handleError = this.handleError.bind(this);\n\n this.audioPlayer = null;\n\n this.viewBuffer = [];\n this.canvasRef = React.createRef();\n }\n\n componentDidMount() {\n if (this.props.src) {\n this.initAudio();\n }\n\n this.initCanvas();\n }\n\n componentWillUnmount() {\n if (this.audioPlayer) {\n this.audioPlayer.onloadedmetadata = null;\n this.audioPlayer.ontimeupdate = null;\n this.audioPlayer.onended = null;\n this.audioPlayer.pause();\n this.audioPlayer = null;\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.src != prevProps.src) {\n this.initAudio();\n }\n\n if (this.props.preview != prevProps.preview) {\n let preview = base64ToIntArray(this.props.preview);\n if (!Array.isArray(preview) || preview.length < MIN_PREVIEW_LENGTH) {\n preview = null;\n }\n this.setState({preview: preview}, this.initCanvas);\n }\n }\n\n initAudio() {\n this.audioPlayer = new Audio(this.props.src);\n this.audioPlayer.onloadedmetadata = _ => this.setState({canPlay: true});\n this.audioPlayer.ontimeupdate = _ => this.setState({\n currentTime: secondsToTime(this.audioPlayer.currentTime, this.state.longMin)\n });\n this.audioPlayer.onended = _ => {\n this.audioPlayer.currentTime = 0;\n this.setState({playing: false, currentTime: secondsToTime(0, this.state.longMin)})\n }\n }\n\n initCanvas() {\n // Force canvas aspect ratio to match one of the element + upscale canvas to reduce blurring.\n this.canvasRef.current.width = this.canvasRef.current.offsetWidth * CANVAS_UPSCALING;\n this.canvasRef.current.height = this.canvasRef.current.offsetHeight * CANVAS_UPSCALING;\n\n this.canvasContext = this.canvasRef.current.getContext('2d');\n this.canvasContext.lineCap = 'round';\n\n this.viewBuffer = this.resampleBars(this.state.preview);\n this.visualize();\n }\n\n // Draw amplitude of sound.\n visualize() {\n if (!this.canvasRef.current) {\n return;\n }\n\n const width = this.effectiveWidth;\n const height = this.canvasRef.current.height;\n\n this.canvasContext.lineWidth = LINE_WIDTH;\n\n const drawFrame = _ => {\n if (!this.canvasRef.current || !this.audioPlayer) {\n // The component is unmounted.\n return;\n }\n\n this.canvasContext.clearRect(0, 0, this.canvasRef.current.width, height);\n\n if (this.viewBuffer) {\n if (this.state.playing) {\n window.requestAnimationFrame(drawFrame);\n }\n\n // Current playback position.\n const thumbAt = this.props.duration ?\n Math.max(0, Math.min(this.audioPlayer.currentTime * 1000 / this.props.duration, 1)) * (width - LINE_WIDTH * 2) : -1;\n\n // Draw amplitude bars.\n this.canvasContext.beginPath();\n this.canvasContext.strokeStyle = BAR_COLOR_DARK;\n for (let i = 0; i < this.viewBuffer.length; i++) {\n let x = 1 + i * (LINE_WIDTH + SPACING) + LINE_WIDTH * 0.5;\n let y = Math.max(this.viewBuffer[i] * height * 0.9, 1);\n\n const color = x < thumbAt ? BAR_COLOR_DARK : BAR_COLOR;\n if (this.canvasContext.strokeStyle != color) {\n this.canvasContext.stroke();\n this.canvasContext.beginPath();\n this.canvasContext.strokeStyle = color;\n }\n\n this.canvasContext.moveTo(x, (height - y) * 0.5);\n this.canvasContext.lineTo(x, (height + y) * 0.5);\n }\n // Actually draw the bars on canvas.\n this.canvasContext.stroke();\n\n // Draw thumb.\n if (this.props.duration) {\n this.canvasContext.beginPath();\n this.canvasContext.arc(thumbAt + LINE_WIDTH * 2, height * 0.5, LINE_WIDTH * 2, 0, 2 * Math.PI);\n this.canvasContext.fillStyle = THUMB_COLOR;\n this.canvasContext.fill();\n }\n }\n }\n\n drawFrame();\n }\n\n // Quick and dirty downsampling of the original preview bars into a smaller (or equal) number of bars we can display here.\n resampleBars(original) {\n const dstCount = ((this.canvasRef.current.width - SPACING) / (LINE_WIDTH + SPACING)) | 0;\n // Remove extra padding on the right due to fractional bar which is not drawn.\n this.effectiveWidth = dstCount * (LINE_WIDTH + SPACING) + SPACING;\n\n if (!Array.isArray(original) || original.length == 0) {\n return Array.apply(null, Array(dstCount)).map(_ => 0.01);\n }\n\n const factor = original.length / dstCount;\n let amps = [];\n let maxAmp = -1;\n for (let i=0; i 0) {\n return amps.map(a => a / maxAmp);\n }\n return Array.apply(null, Array(dstCount)).map(_ => 0.01);\n }\n\n handlePlay(e) {\n e.preventDefault();\n if (!this.state.canPlay) {\n return;\n }\n\n if (this.state.playing) {\n this.audioPlayer.pause();\n this.setState({playing: false});\n } else if (this.audioPlayer.readyState >= 2) {\n this.audioPlayer.play();\n this.setState({playing: true}, this.visualize);\n }\n }\n\n handleError(err) {\n console.error(err);\n }\n\n handleSeek(e) {\n e.preventDefault();\n if (e.target && this.props.duration) {\n const rect = e.target.getBoundingClientRect();\n const offset = (e.clientX - rect.left) / this.effectiveWidth * CANVAS_UPSCALING;\n this.audioPlayer.currentTime = this.props.duration * offset / 1000;\n this.setState({currentTime: secondsToTime(this.audioPlayer.currentTime, this.state.longMin)});\n if (!this.state.playing) {\n this.visualize();\n }\n }\n }\n\n render() {\n const playClass = 'material-icons' +\n (this.props.short ? '' : ' large') +\n (this.state.canPlay ? '' : ' disabled');\n const play = (\n {this.state.playing ? 'pause_circle' :\n (this.state.canPlay ? 'play_circle' : 'not_interested')}\n );\n return (
    {this.props.short ?\n <>\n \n {play}\n \n :\n <>\n {play}\n
    \n \n
    {this.state.currentTime}/{this.state.duration}
    \n
    \n \n }\n
    );\n }\n}\n\nexport default injectIntl(AudioPlayer);\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport Cropper from './cropper.jsx';\nimport { imageCrop } from '../lib/blob-helpers.js';\n\nexport default class AvatarCrop extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n scale: 1\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleChange = this.handleChange.bind(this);\n }\n\n // Cut out in image coordinates and desired scale factor.\n handleChange(left, top, width, height, scale) {\n this.setState({\n left: left,\n top: top,\n width: width,\n height: height,\n scale: scale\n });\n }\n\n handleSubmit() {\n imageCrop(this.props.mime, this.props.avatar,\n this.state.left, this.state.top, this.state.width, this.state.height,\n this.state.scale)\n .then(img => {\n this.props.onSubmit(img.mime, img.blob, img.width, img.height);\n })\n .catch(err => {\n this.props.onError(err);\n });\n }\n\n render() {\n return (\n
    \n
    \n \n
    \n
    \n {this.props.onCancel ?\n \n : null}\n \n
    \n
    \n );\n }\n};\n","import React from 'react';\n\nimport LetterTile from './letter-tile.jsx';\nimport LoadSpinner from './load-spinner.jsx';\n\nimport { sanitizeUrlForMime } from '../lib/utils.js';\n\nimport { AVATAR_SIZE } from '../config.js';\n\nexport default class AvatarUpload extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n source: props.avatar\n };\n\n this.handleFileReceived = this.handleFileReceived.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.avatar != prevProps.avatar) {\n this.setState({source: this.props.avatar});\n }\n }\n\n handleFileReceived(e) {\n const image = e.target.files[0];\n this.props.onImageUpdated(image.type, URL.createObjectURL(image), image.name);\n // Clear the value so the same file can be uploaded again.\n e.target.value = '';\n }\n\n render() {\n // Randomize id value in case more than one AvatarUpload is shown\n // at the same time.\n const randId = 'file-input-avatar-' + ('' + Math.random()).substring(0, 4);\n const className = 'avatar-upload' + (this.props.readOnly ? ' read-only' : '');\n return (\n
    \n {this.props.readOnly || !this.state.source ?\n null :\n {e.preventDefault(); this.props.onImageUpdated();}}>\n clear\n }\n {this.state.source ?\n :\n this.props.readOnly && this.props.uid ?\n
    \n \n
    \n :\n
    {AVATAR_SIZE}×{AVATAR_SIZE}
    }\n {this.props.readOnly ? null :\n }\n {this.props.readOnly ? null :\n }\n \n
    \n );\n }\n};\n","import React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nconst icon_mapping = {'staff': 'verified_user'};\n\nconst messages = defineMessages({\n badge_verified: {\n id: 'badge_verified',\n defaultMessage: 'Verified/official',\n description: 'Explanation of a verified account or topic badge'\n },\n badge_staff: {\n id: 'badge_staff',\n defaultMessage: 'Staff-managed',\n description: 'Explanation of a staff-managed account or topic badge'\n },\n badge_danger: {\n id: 'badge_danger',\n defaultMessage: 'Untrustworthy',\n description: 'Suspicious or untrustworthy account or topic badge'\n },\n});\n\n\n/* Trusted badges with labels: verified, staff, danger */\nclass BadgeList extends React.PureComponent {\n render() {\n const {formatMessage} = this.props.intl;\n let badges = null;\n if (this.props.trustedBadges && this.props.trustedBadges.length > 0) {\n badges = [];\n this.props.trustedBadges.forEach(b => {\n const comment = this.props.short ? null : formatMessage(messages['badge_' + b]);\n const style = 'material-icons ' + b + '-color';\n badges.push(
    {icon_mapping[b] || b} {comment}
    );\n });\n return <>{badges};\n }\n return null;\n }\n};\n\nexport default injectIntl(BadgeList);\n","// The <- button to be displayed in title bars.\nimport React from 'react';\n\nexport default class ButtonBack extends React.PureComponent {\n render() {\n return (\n {e.preventDefault(); this.props.onBack();}}>\n arrow_back\n \n );\n }\n}\n","// IncomingCall: displays Accept & Reject buttons for incoming calls.\nimport React from 'react';\n\nimport BadgeList from './badge-list.jsx';\nimport LetterTile from './letter-tile.jsx';\n\nimport { MAX_TITLE_LENGTH, MAX_PEER_TITLE_LENGTH } from '../config.js';\nimport { CALL_STATE_INCOMING_RECEIVED } from '../constants.js';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\nimport { truncateString } from '../lib/strformat.js';\n\nconst RING_SOUND = new Audio('audio/call-in.m4a');\n\nexport default class CallIncoming extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n topic: null,\n fullName: undefined,\n avatar: null,\n trustedBadges: [],\n previousMetaDesc: undefined,\n };\n\n this.resetDesc = this.resetDesc.bind(this);\n this.onMetaDesc = this.onMetaDesc.bind(this);\n this.handleRejectCall = this.handleRejectCall.bind(this);\n this.handleAcceptCall = this.handleAcceptCall.bind(this);\n this.ringTimer = null;\n }\n\n componentDidMount() {\n const topic = this.props.tinode.getTopic(this.props.topic);\n if (!topic) {\n return;\n }\n\n this.resetDesc(topic);\n if (this.props.callState == CALL_STATE_INCOMING_RECEIVED) {\n // play() throws if the user did not click the app first: https://goo.gl/xX8pDD.\n RING_SOUND.play().catch(_ => {});\n this.ringTimer = setInterval(_ => {RING_SOUND.play().catch(_ => {})}, 2000);\n this.props.onRinging(this.props.topic, this.props.seq);\n }\n }\n\n // No need to separately handle component mount.\n componentDidUpdate(props) {\n const topic = this.props.tinode.getTopic(props.topic);\n if (!topic) {\n return;\n }\n\n if (this.onMetaDesc != topic.onMetaDesc) {\n this.previousMetaDesc = topic.onMetaDesc;\n topic.onMetaDesc = this.onMetaDesc;\n }\n\n if (this.state.topic != props.topic) {\n this.setState({topic: props.topic});\n this.resetDesc(topic, props);\n }\n }\n\n componentWillUnmount() {\n if (this.ringTimer != null) {\n clearInterval(this.ringTimer);\n RING_SOUND.pause();\n }\n const topic = this.props.tinode.getTopic(this.props.topic);\n if (!topic) {\n return;\n }\n this.setState({topic: null});\n topic.onMetaDesc = this.previousMetaDesc;\n }\n\n resetDesc(topic) {\n const badges = [];\n if (topic.trusted) {\n for (const [key, val] of Object.entries(topic.trusted)) {\n if (val) {\n badges.push(key);\n }\n }\n }\n\n this.setState({\n fullName: truncateString(topic.public ? topic.public.fn : undefined, MAX_TITLE_LENGTH),\n avatar: makeImageUrl(topic.public ? topic.public.photo : null),\n trustedBadges: badges,\n });\n }\n\n onMetaDesc(desc) {\n const topic = this.props.tinode.getTopic(this.props.topic);\n if (!topic) {\n return;\n }\n this.resetDesc(topic);\n\n if (this.previousMetaDesc && this.previousMetaDesc != this.onMetaDesc) {\n this.previousMetaDesc(desc);\n }\n }\n\n handleAcceptCall() {\n this.props.onAcceptCall(this.props.topic);\n }\n\n handleRejectCall() {\n this.props.onReject(this.props.topic, this.props.seq);\n this.props.onClose();\n }\n\n render() {\n return (\n
    \n
    \n
    \n
    \n \n
    \n
    {truncateString(this.state.fullName, MAX_PEER_TITLE_LENGTH)}\n
    \n
    \n
    \n {this.props.callState == CALL_STATE_INCOMING_RECEIVED ?\n <>\n \n \n \n :\n null\n }\n
    \n
    \n
    \n );\n }\n};\n","// Chat message describing a video or voice call.\n\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat.js';\n\nexport default class CallMessage extends React.PureComponent {\n render() {\n const isCallDropped = ['busy', 'declined', 'disconnected', 'missed'].includes(this.props.callState);\n const successClass = 'material-icons medium ' + (isCallDropped ? 'red' : 'green');\n const callIcon = this.props.incoming ?\n (isCallDropped ? 'call_missed' : 'call_received') :\n (isCallDropped ? 'call_missed_outgoing' : 'call_made');\n const title = this.props.incoming ?\n :\n ;\n let duration;\n if (isCallDropped) {\n switch (this.props.callState) {\n case 'busy':\n duration = ;\n break;\n case 'declined':\n duration = ;\n break;\n case 'missed':\n duration = this.props.incoming ?\n :\n ;\n break;\n default:\n duration = ;\n break;\n }\n } else {\n duration = {secondsToTime(this.props.duration / 1000)};\n }\n return
    \n
    call
    \n
    \n
    {title}
    \n
    {callIcon} {duration}
    \n
    \n
    ;\n }\n}\n","// The counter of unread messages in the topic.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat.js';\n\n// Props:\n// incoming: true | false.\n// callState: 'busy' | 'declined' | 'disconnected' | 'missed'.\n// duration: (call duration in milliseconds).\nexport default class CallStatus extends React.PureComponent {\n render() {\n const isCallDropped = ['busy', 'declined', 'disconnected', 'missed'].includes(this.props.callState);\n const icon2 = this.props.incoming ?\n (isCallDropped ? 'call_missed' : 'call_received') :\n (isCallDropped ? 'call_missed_outgoing' : 'call_made');\n let duration;\n if (isCallDropped) {\n switch (this.props.callState) {\n case 'busy':\n duration = ;\n break;\n case 'declined':\n duration = ;\n break;\n case 'missed':\n duration = this.props.incoming ?\n :\n ;\n break;\n default:\n duration = ;\n break;\n }\n } else if (['accepted', 'started'].includes(this.props.callState) && !this.props.duration) {\n duration = \n } else {\n duration = {secondsToTime(this.props.duration / 1000)};\n }\n return (\n <>\n
    \n call{icon2}\n
    {duration}\n \n );\n }\n};\n","import React from 'react';\n\n/* CheckBox: styled three-state checkbox, either clickable or static */\nexport default class CheckBox extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange() {\n this.props.onChange(this.props.name, !this.props.checked);\n }\n\n render() {\n let classList = ['material-icons'];\n let iconName;\n if (Array.isArray(this.props.className)) {\n classList.push(...this.props.className);\n } else if (this.props.className) {\n classList.push(this.props.className);\n }\n if (this.props.onChange) {\n if (this.props.checked) {\n classList.push('blue', 'clickable');\n iconName = 'check_box';\n } else if (this.props.checked === false) {\n classList.push('blue', 'clickable');\n iconName = 'check_box_outline_blank';\n } else {\n classList.push('lt-blue');\n iconName = 'indeterminate_check_box';\n }\n } else {\n if (this.props.checked) {\n iconName = 'check_box';\n } else {\n iconName = 'check_box_outline_blank';\n }\n }\n let attrs = {\n className: classList.join(' '),\n id: this.props.id,\n };\n if (this.props.onChange) {\n attrs.onClick = this.handleChange;\n }\n return React.createElement('i', attrs, iconName);\n }\n}\n","import React from 'react';\n\nimport Chip from './chip.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\n/* BEGIN ChipInput: group membership widget */\nexport default class ChipInput extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = ChipInput.deriveStateFromProps(props);\n this.state.input = '';\n this.state.focused = false;\n\n this.handleTextInput = this.handleTextInput.bind(this);\n this.removeChipAt = this.removeChipAt.bind(this);\n this.handleChipCancel = this.handleChipCancel.bind(this);\n this.handleFocusGained = this.handleFocusGained.bind(this);\n this.handleFocusLost = this.handleFocusLost.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n static deriveStateFromProps(props) {\n return {\n sortedChips: ChipInput.sortChips(props.chips, props.staticMembers),\n chipIndex: ChipInput.indexChips(props.chips)\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.chips != this.props.chips ||\n prevProps.staticMembers != this.props.staticMembers ||\n prevProps.prompt != this.props.prompt) {\n this.setState(ChipInput.deriveStateFromProps(this.props));\n }\n if (!prevState || this.props.chips.length > prevState.sortedChips.length) {\n this.setState({input: ''});\n }\n }\n\n // Map chip index to user name\n static indexChips(chips) {\n const index = {};\n let count = 0;\n chips.forEach(item => {\n index[item.user] = count;\n count ++;\n });\n return index;\n }\n\n // Have non-removable chips appear before all other chips.\n static sortChips(chips, keep) {\n const required = [];\n const normal = [];\n chips.forEach(item => {\n if (keep && keep.includes(item.user)) {\n required.push(item);\n } else {\n normal.push(item);\n }\n });\n return required.concat(normal);\n }\n\n handleTextInput(e) {\n this.setState({input: e.target.value});\n if (this.props.filterFunc) {\n this.props.filterFunc(e.target.value);\n }\n }\n\n removeChipAt(idx) {\n const removed = this.state.sortedChips[idx];\n this.props.onChipRemoved(removed.user, this.state.chipIndex[removed.user]);\n }\n\n handleChipCancel(item, idx) {\n this.removeChipAt(idx);\n }\n\n handleFocusGained() {\n this.setState({focused: true});\n }\n\n handleFocusLost() {\n this.setState({focused: false});\n if (this.props.onFocusLost) {\n this.props.onFocusLost(this.state.input);\n }\n }\n\n handleKeyDown(e) {\n if (e.key === 'Backspace') {\n if (this.state.input.length == 0 && this.state.sortedChips.length > 0) {\n const at = this.state.sortedChips.length - 1;\n if (this.state.sortedChips[at].user !== this.props.staticMembers) {\n this.removeChipAt(at);\n }\n }\n } else if (e.key === 'Enter') {\n if (this.props.onEnter) {\n this.props.onEnter(this.state.input);\n }\n } else if (e.key === 'Escape') {\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n }\n }\n\n render() {\n const chips = [];\n let count = 0;\n const staticMembers = this.props.staticMembers || [];\n this.state.sortedChips.forEach(item => {\n chips.push(\n \n );\n count++;\n });\n const className = \"chip-input\" + (this.state.focused ? ' focused' : '');\n const autoFocus = !(this.props.tabIndex > 0);\n return (\n
    \n {chips}\n \n
    \n );\n }\n};\n","import React from 'react';\n\nimport LetterTile from './letter-tile.jsx';\n\nexport default class Chip extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n handleCancel(e) {\n e.preventDefault();\n this.props.onCancel(this.props.topic, this.props.index);\n }\n\n render() {\n const title = this.props.title || this.props.topic;\n const className = this.props.invalid ? 'chip invalid' : 'chip';\n return (\n
    \n {this.props.noAvatar ?\n :\n
    \n \n
    \n }\n {title}\n {this.props.onCancel && !this.props.required ?\n ×\n : }\n
    \n );\n }\n};\n","// A panel included into a list of contacts with an action text.\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nclass ContactAction extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.onAction(this.props.action);\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
  • \n
    {formatMessage(this.props.title, this.props.values)}
    \n
  • \n );\n }\n};\n\nexport default injectIntl(ContactAction);\n","import React from 'react';\n\nconst icon_mapping = {'muted': 'notifications_off', 'banned': 'block', 'staff': 'verified_user'};\n\n/* Contact's labels: [you], or icons [muted], [blocked] */\nexport default class ContactBadges extends React.PureComponent {\n render() {\n let badges = null;\n if (this.props.badges && this.props.badges.length > 0) {\n badges = [];\n this.props.badges.forEach(b => {\n const color = (b.color ? ' ' + b.color : '');\n if (b.icon) {\n badges.push({icon_mapping[b.icon] || b.icon});\n } else {\n badges.push({b.name});\n }\n });\n return <>{badges};\n }\n return null;\n }\n};\n","// ContactList: component for showing a list of contacts,\n// such as a list of group members in a group chat.\nimport React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport { Drafty, Tinode } from 'tinode-sdk';\n\nimport Contact from './contact.jsx';\nimport ContactAction from './contact-action.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\nimport { MESSAGE_PREVIEW_LENGTH } from '../config.js';\n\nconst messages = defineMessages({\n badge_you: {\n id: 'badge_you',\n defaultMessage: 'you',\n description: 'Badge for indicating the current user'\n },\n badge_owner: {\n id: 'badge_owner',\n defaultMessage: 'owner',\n description: 'Badge for indicating the owner'\n }\n});\n\nclass ContactList extends React.PureComponent {\n render() {\n const { formatMessage } = this.props.intl;\n const showCheckmark = Array.isArray(this.props.topicSelected);\n const contactNodes = [];\n\n // Count of contacts, excluding action items.\n let contactsCount = 0;\n if (this.props.showSelfTopic) {\n const selected = showCheckmark ?\n (this.props.topicSelected.indexOf('slf') > -1) :\n (this.props.topicSelected === 'slf');\n contactNodes.push(\n \n );\n contactsCount ++;\n }\n if (this.props.contacts && this.props.contacts.length > 0) {\n // Used keys to prevent duplicates when the user comes both from the 'fnd' and the list of contacts.\n const usedKeys = {};\n this.props.contacts.forEach(c => {\n if (c.action) {\n // Action item\n contactNodes.push(\n );\n } else {\n // Normal contact\n const key = this.props.showMode ? c.user : (c.topic || c.user);\n if (usedKeys[key]) {\n return;\n }\n usedKeys[key] = true;\n // If filter function is provided, filter out the items\n // which don't satisfy the condition.\n if (this.props.filterFunc && this.props.filter) {\n const filterOn = [key];\n if (c.private && c.private.comment) {\n filterOn.push(('' + c.private.comment).toLowerCase());\n }\n if (c.public && c.public.fn) {\n filterOn.push(('' + c.public.fn).toLowerCase());\n }\n if (!this.props.filterFunc(this.props.filter, filterOn)) {\n return;\n }\n }\n\n const isChannel = Tinode.isChannelTopicName(key);\n const isGroup = !isChannel && Tinode.isGroupTopicName(key);\n const selected = showCheckmark ?\n (this.props.topicSelected.indexOf(key) > -1) :\n (this.props.topicSelected === key);\n const badges = [];\n if (this.props.showMode) {\n if (key == this.props.myUserId) {\n badges.push({name: formatMessage(messages.badge_you), color: 'green'});\n }\n if (c.acs && c.acs.isOwner()) {\n badges.push({name: formatMessage(messages.badge_owner), color: 'blue'});\n }\n }\n\n const comment = Array.isArray(c.private) ?\n c.private.join(',') : (c.private ? c.private.comment : null);\n let preview;\n let forwarded;\n let previewIsResponse;\n let deliveryStatus;\n if (!this.props.showMode && c.latestMessage) {\n const msg = c.latestMessage();\n if (msg) {\n forwarded = msg.head ? msg.head.forwarded : null;\n deliveryStatus = msg._status || c.msgStatus(msg, true);\n previewIsResponse = msg.from != this.props.myUserId;\n if (msg.content) {\n preview = typeof msg.content == 'string' ?\n msg.content.substr(0, MESSAGE_PREVIEW_LENGTH) :\n Drafty.preview(msg.content, MESSAGE_PREVIEW_LENGTH);\n }\n }\n }\n\n contactNodes.push(\n \n );\n contactsCount ++;\n }\n }, this);\n }\n\n return (\n
    \n {contactsCount == 0 ?\n
    \n {this.props.emptyListMessage}\n
    \n :\n null\n }\n {contactNodes.length > 0 ?\n
      \n {contactNodes}\n
    \n :\n null\n }\n
    \n );\n }\n};\n\nexport default injectIntl(ContactList);\n","// A single topic or user.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport ContactBadges from './contact-badges.jsx';\nimport LetterTile from './letter-tile.jsx';\nimport UnreadBadge from './unread-badge.jsx';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport { previewFormatter } from '../lib/formatters.js';\nimport { deliveryMarker } from '../lib/utils.js';\nimport { truncateString } from '../lib/strformat.js';\n\nconst messages = defineMessages({\n self_topic_name: {\n id: 'self_topic_name',\n defaultMessage: 'Saved messages',\n description: 'Name of self topic for UI'\n },\n self_topic_comment: {\n id: 'self_topic_comment',\n defaultMessage: 'Notes, messages, links, files saved for posterity',\n description: 'Comment for self topic for UI'\n }\n});\n\nclass Contact extends React.Component {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleContextClick = this.handleContextClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n if (this.props.onSelected) {\n // Index this.props.index is used by GroupManager.\n this.props.onSelected(this.props.item, this.props.index);\n }\n }\n\n handleContextClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.showContextMenu({\n topicName: this.props.item,\n topicTitle: this.props.title,\n y: e.pageY,\n x: e.pageX\n });\n }\n\n render() {\n let title = this.props.title;\n const self = Tinode.isSelfTopicName(this.props.item);\n if (!title) {\n if (self) {\n title = this.props.intl.formatMessage(messages.self_topic_name);\n } else {\n title = ;\n }\n } else if (title.length > 30) {\n // Have to support RTL languages too.\n title = truncateString(title, 30);\n }\n const online = this.props.now ? 'online' : 'offline';\n const avatar = this.props.avatar ? this.props.avatar : true;\n const badges = this.props.badges ? this.props.badges.slice() : [];\n const icon_badges = [];\n if (this.props.isVerified) {\n icon_badges.push({icon: 'verified', color: 'verified-color'});\n }\n if (this.props.isStaff) {\n icon_badges.push({icon: 'staff', color: 'staff-color'});\n }\n if (this.props.isDangerous) {\n icon_badges.push({icon: 'dangerous', color: 'danger-color'});\n }\n if (this.props.acs) {\n if (this.props.showMode) {\n badges.push({name: this.props.acs.getMode(), key: 'mode'});\n }\n if (this.props.acs.isMuted()) {\n icon_badges.push({icon: 'muted'});\n }\n if (!this.props.acs.isJoiner()) {\n icon_badges.push({icon: 'banned'});\n }\n }\n\n // The this.props.preview contains alreay shortened Drafty or string.\n let preview;\n if (typeof this.props.preview == 'string') {\n preview = this.props.preview;\n } else if (Drafty.isValid(this.props.preview)) {\n preview = React.createElement(React.Fragment, null, Drafty.format(this.props.preview, previewFormatter,\n {formatMessage: this.props.intl.formatMessage, previewIsResponse: this.props.previewIsResponse}));\n } else if (this.props.preview) {\n preview =\n <>warning_amber \n \n ;\n }\n\n const icon = deliveryMarker(this.props.received);\n const marker = icon ? {icon.name} : null;\n const titleClass = 'contact-title' + (this.props.deleted ? ' deleted' : '');\n\n const comment = preview || this.props.comment ||\n (self ? this.props.intl.formatMessage(messages.self_topic_comment) : '\\u00A0');\n const bgColor = this.props.showCheckmark ? null :\n (this.props.selected ? 'selected' : (this.props.pinned ? 'tpinned' : null));\n return (\n
  • \n
    \n \n {this.props.deleted ? cancel :\n (!self && this.props.showOnline) ? :\n (this.props.showCheckmark && this.props.selected) ?\n check_circle\n : null}\n
    \n
    \n
    {title}\n {this.props.isGroup ? group : null}\n {this.props.isChannel ? podcasts : null}\n {!self ? : null}\n {!this.props.deleted ? : null}\n
    \n {this.props.showMode ?\n :\n this.props.small ? null :
    {marker}{comment}
    }\n
    \n {this.props.showContextMenu ?\n \n \n expand_more\n \n : null}\n
  • \n );\n }\n};\n\nexport default injectIntl(Contact);\n","// Context Menu: popup/dropdown menu.\nimport React from 'react';\nimport { injectIntl, defineMessages } from 'react-intl';\n\nimport { REM_SIZE } from '../config.js';\n\nconst messages = defineMessages({\n info: {\n id: 'menu_item_info',\n defaultMessage: 'Info',\n description: 'Show extended topic information'\n },\n clear_messages: {\n id: 'menu_item_clear_messages',\n defaultMessage: 'Clear messages',\n description: 'Delete all messages'\n },\n clear_for_all: {\n id: 'menu_item_clear_messages_for_all',\n defaultMessage: 'Clear for All',\n description: 'Delete all message(s) for all members'\n },\n delete: {\n id: 'menu_item_delete',\n defaultMessage: 'Delete',\n description: 'Delete selected messages'\n },\n delete_for_all: {\n id: 'menu_item_delete_for_all',\n defaultMessage: 'Delete for All',\n description: 'Delete selected message(s) for all members'\n },\n send_retry: {\n id: 'menu_item_send_retry',\n defaultMessage: 'Retry',\n description: 'Retry sending message'\n },\n mute: {\n id: 'menu_item_mute',\n defaultMessage: 'Mute',\n description: 'Turn off notifications'\n },\n unmute: {\n id: 'menu_item_unmute',\n defaultMessage: 'Unmute',\n description: 'Turn notifications on'\n },\n reply: {\n id: 'menu_item_reply',\n defaultMessage: 'Reply',\n description: 'Reply to message'\n },\n forward: {\n id: 'menu_item_forward',\n defaultMessage: 'Forward',\n description: 'Forward message'\n },\n edit: {\n id: 'menu_item_edit',\n defaultMessage: 'Edit',\n description: 'Edit message'\n },\n topic_delete: {\n id: 'menu_item_delete_topic',\n defaultMessage: 'Delete',\n description: 'Delete entire topic'\n },\n topic_delete_warning: {\n id: 'topic_delete_warning',\n defaultMessage: 'Are you sure you want to delete this conversation? It cannot be undone.',\n description: 'Alert warning when deleting entire topic'\n },\n delete_messages_warning: {\n id: 'delete_messages_warning',\n defaultMessage: 'Are you sure you want to delete all messages for everyone? It cannot be undone.',\n description: 'Alert dialog warning when hard-deleting all messages.'\n },\n unblock: {\n id: 'menu_item_unblock',\n defaultMessage: 'Unblock',\n description: 'Unblock topic or user'\n },\n // Generic string suitable for either topic or user.\n block: {\n id: 'menu_item_block',\n defaultMessage: 'Block',\n description: 'Block topic or user'\n },\n topic_block_warning: {\n id: 'topic_block_warning',\n defaultMessage: 'Are you sure you want to block this conversation?',\n description: 'Alert warning when blocking a topic.'\n },\n member_delete: {\n id: 'menu_item_member_delete',\n defaultMessage: 'Remove',\n description: 'Remove user from topic'\n },\n archive: {\n id: 'menu_item_archive_topic',\n defaultMessage: 'Archive',\n description: 'Move topic from the list of active chats to archive'\n },\n unarchive: {\n id: 'menu_item_restore_topic',\n defaultMessage: 'Restore',\n description: 'Restore topic from archive'\n },\n edit_permissions: {\n id: 'menu_item_edit_permissions',\n defaultMessage: 'Edit permissions',\n description: 'Menu item [Edit permissions]'\n },\n clear_messages_warning: {\n id: 'clear_messages_warning',\n defaultMessage: 'Are you sure you want to clear all messages? It cannot be undone.',\n description: 'Alert dialog warning when deleting all messages.'\n },\n pin_message: {\n id: 'pin_message',\n defaultMessage: 'Pin',\n description: 'Menu item [Pin] for pinning message to the top.'\n },\n unpin_message: {\n id: 'unpin_message',\n defaultMessage: 'Unpin',\n description: 'Menu item [Unpin] for un-pinning the message.'\n },\n pin_chat: {\n id: 'pin_chat',\n defaultMessage: 'Pin',\n description: 'Menu item [Pin] for pinning chat to the top.'\n },\n unpin_chat: {\n id: 'unpin_chat',\n defaultMessage: 'Unpin',\n description: 'Menu item [Unpin] for un-pinning the chat.'\n },\n});\n\nclass ContextMenu extends React.Component {\n constructor(props) {\n super(props);\n\n this.selfRef = React.createRef();\n\n const {formatMessage} = props.intl;\n\n this.handlePageClick = this.handlePageClick.bind(this);\n this.handleEscapeKey = this.handleEscapeKey.bind(this);\n this.handleClick = this.handleClick.bind(this);\n\n // Preconfigured menu items.\n this.MenuItems = {\n 'topic_info': {\n id: 'topic_info',\n title: formatMessage(messages.info),\n handler: null\n },\n 'messages_clear': {\n id: 'messages_clear',\n title: formatMessage(messages.clear_messages),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n params.topicTitle || formatMessage(messages.clear_messages), // title\n formatMessage(messages.clear_messages_warning), // content\n (_ => { this.deleteMessages(true, false, params, errorHandler); }), // onConfirm\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'messages_clear_hard': {\n id: 'messages_clear_hard',\n title: formatMessage(messages.clear_for_all),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n params.topicTitle || formatMessage(messages.clear_for_all), // title\n formatMessage(messages.delete_messages_warning), // content\n (_ => { return this.deleteMessages(true, true, params, errorHandler); }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'message_delete': {\n id: 'message_delete',\n title: formatMessage(messages.delete),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, false, params, errorHandler);\n }\n },\n 'message_delete_hard': {\n id: 'message_delete_hard',\n title: formatMessage(messages.delete_for_all),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, true, params, errorHandler);\n }\n },\n // Hard-delete but with just 'Delete' title.\n 'message_delete_generic': {\n id: 'message_delete_generic',\n title: formatMessage(messages.delete),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, true, params, errorHandler);\n }\n },\n 'menu_item_send_retry': {\n id: 'menu_item_send_retry',\n title: formatMessage(messages.send_retry),\n handler: (params, errorHandler) => {\n return this.retryMessage(params, errorHandler);\n }\n },\n 'menu_item_reply': {\n id: 'menu_item_reply',\n title: formatMessage(messages.reply),\n handler: (params, errorHandler) => {\n return this.replyToMessage(params, errorHandler);\n }\n },\n 'menu_item_forward': {\n id: 'menu_item_forward',\n title: formatMessage(messages.forward),\n handler: _ => {} /* the action is taken directly in tinode-web */\n },\n 'menu_item_edit': {\n id: 'menu_item_edit',\n title: formatMessage(messages.edit),\n handler: (params, errorHandler) => {\n return this.editMessage(params, errorHandler);\n }\n },\n 'menu_item_pin': {\n id: 'menu_item_pin',\n title: formatMessage(messages.pin_message),\n handler: (params, errorHandler) => {\n return this.pinMessage(true, params, errorHandler);\n }\n },\n 'menu_item_unpin': {\n id: 'menu_item_unpin',\n title: formatMessage(messages.unpin_message),\n handler: (params, errorHandler) => {\n return this.pinMessage(false, params, errorHandler);\n }\n },\n 'topic_unmute': {\n id: 'topic_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'topic_mute': {\n id: 'topic_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'topic_unblock': {\n id: 'topic_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n 'topic_block': {\n id: 'topic_block',\n title: formatMessage(messages.block),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n params.topicTitle || formatMessage(messages.block), // title\n formatMessage(messages.topic_block_warning), // content\n (_ => this.topicPermissionSetter('-JP', params, errorHandler).then(ctrl => {\n this.props.onTopicRemoved(params.topicName);\n return ctrl;\n })),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_delete': {\n id: 'topic_delete',\n title: formatMessage(messages.topic_delete),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n params.topicTitle || formatMessage(messages.topic_delete), // title\n formatMessage(messages.topic_delete_warning), // content\n (_ => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.delTopic(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_archive': {\n id: 'topic_archive',\n title: formatMessage(messages.archive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'topic_restore': {\n id: 'topic_restore',\n title: formatMessage(messages.unarchive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(false).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'topic_pin': {\n id: 'topic_pin',\n title: formatMessage(messages.pin_chat),\n handler: (params, errorHandler) => {\n const me = this.props.tinode.getMeTopic();\n if (!me) {\n console.warn(\"'me' topic not found\");\n return;\n }\n return me.pinTopic(params.topicName, true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'topic_unpin': {\n id: 'topic_unpin',\n title: formatMessage(messages.unpin_chat),\n handler: (params, errorHandler) => {\n const me = this.props.tinode.getMeTopic();\n if (!me) {\n console.warn(\"'me' topic not found\");\n return;\n }\n return me.pinTopic(params.topicName, false).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n // menu_item_edit_permissions is defined elsewhere.\n 'permissions': {\n id: 'permissions',\n title: formatMessage(messages.edit_permissions),\n handler: null\n },\n 'member_delete': {\n id: 'member_delete',\n title: formatMessage(messages.member_delete),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic || !params.user) {\n console.warn(\"Topic or user not found: '\" + params.topicName + \"', '\" + params.user + \"'\");\n return;\n }\n return topic.delSubscription(params.user).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'member_mute': {\n id: 'member_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'member_unmute': {\n id: 'member_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'member_block': {\n id: 'member_block',\n title: formatMessage(messages.block),\n handler: this.topicPermissionSetter.bind(this, '-JP')\n },\n 'member_unblock': {\n id: 'member_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n };\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handlePageClick, false);\n document.addEventListener('keyup', this.handleEscapeKey, false);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handlePageClick, false);\n document.removeEventListener('keyup', this.handleEscapeKey, false);\n }\n\n handlePageClick(e) {\n if (this.selfRef.current.contains(e.target)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n }\n\n handleEscapeKey(e) {\n if (e.keyCode === 27) {\n this.props.hide();\n }\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n let item = this.props.items[e.currentTarget.dataset.id];\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n\n if (!item) {\n console.error(\"Invalid menu item ID\", e.currentTarget.dataset.id);\n } else {\n this.props.onAction(\n item.id,\n item.handler(this.props.params, this.props.onError),\n this.props.params);\n }\n }\n\n // Menu Actions\n\n deleteMessages(all, hard, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n\n // We don't know if the message is still pending (e.g. attachment is being uploaded),\n // so try cancelling first. No harm if we can't cancel.\n // The message can be cancelled if transmission to the server has not\n // started yet or if the message send has failed.\n if (!all && topic.cancelSend(params.seq)) {\n return;\n }\n\n const promise = all ?\n topic.delMessagesAll(hard) :\n params.replace > 0 ?\n topic.delMessagesEdits(params.replace, hard) :\n topic.delMessagesList([params.seq], hard);\n\n return promise.catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Retries sending failed message.\n retryMessage(params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n // Remove the existing message entry.\n if (!topic || !topic.flushMessage(params.seq)) {\n return;\n }\n const msg = topic.createMessage(params.content, false);\n return topic.publishDraft(msg).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Pin or unpin the message.\n pinMessage(pin, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n return;\n }\n topic.pinMessage(params.seq, pin)\n .catch(err => errorHandler ? errorHandler(err.message, 'err') : null);\n }\n\n // Function is used by context menu to set permissions.\n topicPermissionSetter(mode, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found\", params.topicName);\n return;\n }\n\n let result = topic.updateMode(params.user, mode);\n if (errorHandler) {\n result = result.catch(err => errorHandler(err.message, 'err'));\n }\n return result;\n }\n\n replyToMessage(params, errorHandler) {\n params.pickReply(params.seq, params.content, params.userFrom, params.userName, errorHandler);\n }\n\n editMessage(params, errorHandler) {\n params.editMessage(params.replace || params.seq, params.content, errorHandler);\n }\n\n render() {\n const menu = [];\n let count = 0;\n this.props.items.forEach(item => {\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n if (item && item.title) {\n const className = item.disabled ? 'disabled' : undefined;\n menu.push(\n item.title == '-' ?\n
  • \n :\n
  • {item.title}
  • \n );\n }\n count++;\n });\n\n // Ensure that menu is inside the app-container.\n const hSize = 12 * REM_SIZE;\n const vSize = REM_SIZE * (0.7 + menu.length * 2.5);\n const left = (this.props.bounds.right - this.props.clickAt.x < hSize) ?\n (this.props.clickAt.x - this.props.bounds.left - hSize) :\n (this.props.clickAt.x - this.props.bounds.left);\n const top = (this.props.bounds.bottom - this.props.clickAt.y < vSize) ?\n (this.props.clickAt.y - this.props.bounds.top - vSize) :\n (this.props.clickAt.y - this.props.bounds.top);\n\n const position = {\n left: left + 'px',\n top: top + 'px'\n };\n\n return (\n
      \n {menu}\n
    \n );\n }\n}\n\nexport default injectIntl(ContextMenu);\n","// Image zoom and crop widget.\n\nimport React from 'react';\n\nconst DEFAULT_MAX_ZOOM = 8;\n\nexport default class Cropper extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // Coordinates of the top left corner of the image in bounding box (container) coordinates.\n panX: 0,\n panY: 0,\n // Origin of the zoom in image coordinates.\n originX: 0,\n originY: 0,\n // Zoom scale.\n zoom: 1,\n // Zoom min and max.\n minZoom: 0.001,\n maxZoom: DEFAULT_MAX_ZOOM,\n };\n\n // References to DOM elements for hooking up events and getting screen dimensions.\n // The transparent element which captures mouse moves (moves with the image).\n this.overlay = React.createRef();\n // The image cutout window or view port (static).\n this.cutout = React.createRef();\n // Scaled and translated image preview.\n this.preview = React.createRef();\n // The main container (static).\n this.boundingBox = React.createRef();\n\n // The original image width and height before any scaling (does not change).\n this.imageWidth = 0;\n this.imageHeight = 0;\n\n // Mouse position when dragging.\n this.mouseX = 0\n this.mouseY = 0;\n // Length of the previous mouse move when dragging.\n this.prevDistance = 0;\n\n // Bounding rectangles of static elements (does not change).\n this.cutoutRect = {};\n this.bBoxRect = {};\n // Center of the bounding box (does not change).\n this.originX = 0;\n this.originY = 0;\n\n this.initScaling = this.initScaling.bind(this);\n this.onZoom = this.onZoom.bind(this);\n this.handleZoom = this.handleZoom.bind(this);\n this.mouseDown = this.mouseDown.bind(this);\n this.mouseUp = this.mouseUp.bind(this);\n this.mouseMove = this.mouseMove.bind(this);\n this.mouseTouch = this.mouseTouch.bind(this);\n this.positionAll = this.positionAll.bind(this);\n this.translate = this.translate.bind(this);\n }\n\n componentDidMount() {\n this.overlay.current.addEventListener('mousedown', this.mouseDown, { passive: true });\n this.overlay.current.addEventListener('touchstart', this.mouseDown, { passive: true });\n\n // The rectangle position is in viewport coordinates.\n this.bBoxRect = this.boundingBox.current.getBoundingClientRect();\n // Center of the bounding box in container coordinates.\n this.originX = this.bBoxRect.width / 2;\n this.originY = this.bBoxRect.height / 2;\n\n // The cutout circle bounds in viewport coordinates.\n this.cutoutRect = this.cutout.current.getBoundingClientRect();\n }\n\n componentWillUnmount() {\n if (this.overlay.current) {\n this.overlay.current.removeEventListener('mousedown', this.mouseDown);\n this.overlay.current.removeEventListener('touchstart', this.mouseDown);\n }\n }\n\n // Position all elements.\n positionAll(panX, panY, zoom) {\n // Zoom origin in image preview coordinates.\n this.setState({\n panX: panX,\n panY: panY,\n zoom: zoom,\n originX: this.originX - panX,\n originY: this.originY - panY,\n });\n\n // Pass cut out coordinates to caller.\n const left = (this.originX - panX) * zoom - this.originX;\n const top = (this.originY - panY) * zoom - this.originY;\n this.props.onChange(\n (left + this.cutoutRect.left - this.bBoxRect.left) / zoom,\n (top + this.cutoutRect.top - this.bBoxRect.top) / zoom,\n this.cutoutRect.width / zoom,\n this.cutoutRect.height / zoom,\n zoom);\n }\n\n // Check if new location is within the limits.\n static checkBound(currPan, img, cutout, delta) {\n let nextDiff = Math.min(0, cutout[0] - img[0] - delta, img[1] - cutout[1] + delta);\n if (nextDiff == 0) {\n // Cutout is completely within the image.\n currPan += delta;\n } else if (Math.min(0, cutout[0] - img[0], img[1] - cutout[1]) < nextDiff) {\n // Cutout is outside of the range but closer to the bound.\n currPan += delta;\n }\n return currPan;\n }\n\n initScaling() {\n // Initialize components.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n this.imageWidth = imgRect.width;\n this.imageHeight = imgRect.height;\n\n // Set zoom slider's min and max values. Make sure the scaled image cannot be smaller than the cutout.\n const minZoom = Math.max(this.cutoutRect.width / imgRect.width, this.cutoutRect.height / imgRect.height);\n this.setState({\n minZoom: minZoom,\n maxZoom: minZoom * DEFAULT_MAX_ZOOM\n });\n\n // Initial zoom level fills the bounding box at the smallest image dimension and overflows the largest, i.e. \"fill\" not \"fit\".\n const zoom = Math.max(this.bBoxRect.width / imgRect.width, this.bBoxRect.height / imgRect.height);\n // Converting from viewport coordinates to container, then panning.\n const panX = this.cutoutRect.left - this.bBoxRect.left -\n (imgRect.width - this.cutoutRect.width) / 2;\n const panY = this.cutoutRect.top - this.bBoxRect.top -\n (imgRect.height - this.cutoutRect.height) / 2;\n\n this.positionAll(panX, panY, zoom);\n }\n\n onZoom(e) {\n this.handleZoom(e.target.value);\n }\n\n handleZoom(zoom) {\n let panX = this.state.panX;\n let panY = this.state.panY;\n\n // Ensure that the image at the new zoom is not outside of the cutout boundaries.\n\n // Calculate image coordinates at the new zoom.\n const imgLeft = this.originX - (this.originX - panX) * zoom;\n const imgRight = imgLeft + this.imageWidth * zoom;\n const imgTop = this.originY - (this.originY - panY) * zoom;\n const imgBottom = imgTop + this.imageHeight * zoom;\n\n // Cutout in the same coordinates as the image.\n const coLeft = this.cutoutRect.left - this.bBoxRect.left;\n const coRight = coLeft + this.cutoutRect.width;\n const coTop = this.cutoutRect.top - this.bBoxRect.top;\n const coBottom = coTop + this.cutoutRect.height;\n\n if (coLeft < imgLeft) {\n panX -= (imgLeft - coLeft) / zoom;\n } else if (coRight > imgRight) {\n panX += (coRight - imgRight) / zoom;\n }\n\n if (coTop < imgTop) {\n panY -= (imgTop - coTop) / zoom;\n } else if (coBottom > imgBottom) {\n panY += (coBottom - imgBottom) /zoom;\n }\n\n this.positionAll(panX, panY, zoom);\n }\n\n mouseDown(e) {\n if (e.touches) {\n this.mouseX = e.touches[0].pageX;\n this.mouseY = e.touches[0].pageY;\n } else {\n this.mouseX = e.pageX;\n this.mouseY = e.pageY;\n }\n\n window.addEventListener('mousemove', this.mouseMove, { passive: false });\n window.addEventListener('touchmove', this.mouseTouch, { passive: false });\n window.addEventListener('mouseup', this.mouseUp, { passive: true });\n window.addEventListener('touchend', this.mouseUp, { passive: true });\n // Disable text selection in the entire document.\n document.body.style['userSelect'] = 'none';\n }\n\n // Perform image panning.\n translate(pageX, pageY) {\n const dX = (pageX - this.mouseX) / this.state.zoom;\n const dY = (pageY - this.mouseY) / this.state.zoom;\n\n this.mouseX = pageX;\n this.mouseY = pageY;\n\n // Make sure the image is within the cutout window.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n // Check if the new position is within the boundaries, and if not if it's closer to them.\n const panX = Cropper.checkBound(this.state.panX, [imgRect.left, imgRect.right],\n [this.cutoutRect.left, this.cutoutRect.right], dX);\n const panY = Cropper.checkBound(this.state.panY, [imgRect.top, imgRect.bottom],\n [this.cutoutRect.top, this.cutoutRect.bottom], dY);\n\n this.positionAll(panX, panY, this.state.zoom);\n }\n\n // Image panning.\n mouseMove(e) {\n e.preventDefault();\n this.translate(e.pageX, e.pageY);\n }\n\n mouseTouch(e) {\n e.preventDefault();\n\n if (e.touches.length == 1) {\n this.translate(e.touches[0].pageX, e.touches[0].pageY);\n return;\n }\n\n // Image zooming by pinching.\n const [touch0, touch1] = e.touches;\n const distance = Math.sqrt((touch0.pageX - touch1.pageX) * (touch0.pageX - touch1.pageX) +\n (touch0.pageY - touch1.pageY) * (touch0.pageY - touch1.pageY));\n\n if (!this.prevDistance) {\n this.prevDistance = distance / this.state.zoom;\n }\n\n let scale = (distance / this.prevDistance);\n this.handleZoom(Math.max(this.minZoom, Math.min(this.maxZoom, scale)));\n }\n\n mouseUp(e) {\n window.removeEventListener('mousemove', this.mouseMove);\n window.removeEventListener('touchmove', this.mouseTouch);\n window.removeEventListener('mouseup', this.mouseUp);\n window.removeEventListener('touchend', this.mouseUp);\n // Re-enable text selection.\n document.body.style['userSelect'] = '';\n\n this.positionAll(this.state.panX, this.state.panY, this.state.zoom);\n }\n\n render() {\n // transform3d: position and scale.\n const t3d = `translate3d(${this.state.panX}px, ${this.state.panY}px, 0) scale(${this.state.zoom})`;\n // transformOrigin: zoom origin.\n const orig = `${this.state.originX}px ${this.state.originY}px`;\n\n // Overlay position and size are exactly equal to the position and size of the transformed image\n // except it uses different coordinates.\n const overlay = {\n top: `${this.originY - this.state.originY * this.state.zoom}px`,\n left: `${this.originX - this.state.originX * this.state.zoom}px`,\n width: `${this.imageWidth * this.state.zoom}px`,\n height: `${this.imageHeight * this.state.zoom}px`\n };\n return (\n
    \n
    \n \"\"\n\n
    \n
    \n
    \n
    \n \n
    \n
    \n );\n }\n}\n","import React from 'react';\n\nimport MenuCancel from './menu-cancel.jsx';\n\nexport default class ErrorPanel extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n show: false,\n };\n\n this.hide = this.hide.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.level !== this.props.level) {\n this.setState({\n show: !(!this.props.level)\n });\n }\n }\n\n hide() {\n this.setState({show: false});\n if (this.props.onClearError) {\n this.props.onClearError();\n }\n }\n\n render() {\n const icons = {err: 'error', warn: 'warning', info: 'info'}\n const level = icons[this.props.level] || '';\n const className = 'info-box ' + level;\n return (\n
    \n
    {level}
    \n \n {this.props.text}\n {this.props.action ?\n <>\n   {e.preventDefault(); this.props.action();}}>\n {this.props.actionText}\n \n \n : null}\n \n
    \n
    \n );\n }\n};\n","// File uload/download progress indicator with a cancel inside.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class FileProgress extends React.PureComponent {\n render() {\n return (\n
    \n
    \n {this.props.progress < 0.999 ?\n {e.preventDefault(); this.props.onCancel();}}>\n close \n \n :\n \n }\n
    \n );\n }\n}\n","// Forward Menu: message forwarding popup/dropdown menu.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport ContactList from './contact-list.jsx';\nimport SearchContacts from './search-contacts.jsx';\n\nexport default class ForwardDialog extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n query: null\n };\n\n this.handleEscapeKey = this.handleEscapeKey.bind(this);\n this.handleClose = this.handleClose.bind(this);\n\n this.handleSearchContacts = this.handleSearchContacts.bind(this);\n this.handleContactSelected = this.handleContactSelected.bind(this);\n }\n\n componentDidMount() {\n this.props.onInitFind();\n }\n\n handleEscapeKey(e) {\n if (e.keyCode === 27) {\n // Not forwarding the message.\n this.props.hide(false);\n }\n }\n\n handleClose(e) {\n e.preventDefault();\n this.props.hide(false);\n }\n\n handleSearchContacts(query) {\n this.setState({ query: Tinode.isNullValue(query) ? null : query });\n this.props.onSearchContacts(query);\n }\n\n handleContactSelected(uid) {\n this.props.onTopicSelected(uid);\n this.props.hide(true);\n }\n\n render() {\n let contacts = this.state.query != null ? this.props.searchResults : this.props.contacts;\n // Filter out contacts without a 'W' or 'J' permissions as well as the current topic.\n contacts = contacts.filter((c) => {\n return (c.name != this.props.topicSelected) && c.acs.isJoiner() && c.acs.isWriter();\n });\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n {\n (search_placeholder) => \n }\n {\n (not_found_placeholder) => \n }\n
    \n
    \n );\n }\n}\n","import React from 'react';\n\nimport { KNOWN_HOSTS } from '../config.js';\n\n/* Combobox for selecting host name */\n\nexport default class HostSelector extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n hostName: props.serverAddress,\n changed: false\n };\n\n this.handleHostNameChange = this.handleHostNameChange.bind(this);\n this.handleEditingFinished = this.handleEditingFinished.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n handleHostNameChange(e) {\n this.setState({hostName: e.target.value, changed: true});\n }\n\n handleEditingFinished() {\n if (this.state.changed) {\n this.setState({changed: false});\n this.props.onServerAddressChange(this.state.hostName.trim());\n }\n }\n\n handleKeyDown(e) {\n if (e.key == 'Enter') {\n this.handleEditingFinished();\n }\n }\n\n render() {\n const hostOptions = [];\n for (let key in KNOWN_HOSTS) {\n let item = KNOWN_HOSTS[key];\n hostOptions.push(\n